// NetCryptLib.h
#pragma once
using namespace System;
#include "../CryptoLib/infoformat.h"
namespace NetCryptLib {
public enum class TNETEnumZip
{
TNETZipNone = 0,
TNETZipGZip = 1,
TNETZipZLib = 2,
};
public enum class TNETEnumEncrypt
{
TNETEncryptNone = 0,
TNETEncryptDEM = 1,
TNETEncryptRSA = 2,
TNETEncryptBlowFish = 3,
TNETEncryptAES = 4
};
public enum class TNETEnumOutput
{
TNETOutputNone = 0,
TNETOutputBinary = 1,
TNETOutputOctal = 2,
TNETOutputHex = 3,
TNETOutputBase64 = 4
};
public enum class TNETEnumOperation
{
TNETOperEncode = 0,
TNETOperDecode = 1
};
public ref class CNETBuffer
{
public:
void Create();
void Destroy();
TNETEnumZip optNetzip;
TNETEnumEncrypt optNetencrypt;
TNETEnumOutput optNetoutput;
TNETEnumOperation optNetoper;
COptionsBuf* optbuf;
array<System::Byte> ^NETbuffer;
int NETbufferlen;
array<System::Byte> ^NETencleft;
int NETencleftlen;
void AssignObject();
void RetrieveFromObject();
void AssignParams();
};
public ref class CNETKeys
{
public:
CKeys* keys;
void Create();
void Destroy();
cli::array<System::Byte> ^NETRSAmodulus, ^NETRSAexponent, ^NETRSAdp, ^NETRSAdq, ^NETRSAp, ^NETRSAq, ^NETRSAinverseq, ^NETRSAd;
int NETRSAmodulus_size, NETRSAexponent_size, NETRSAdp_size, NETRSAdq_size, NETRSAp_size, NETRSAq_size, NETRSAinverseq_size, NETRSAd_size;
cli::array<System::Byte> ^NETstrDEMKey;
int NETiDEMlenKey;
int NETRSAKeySize;
cli::array<System::Byte> ^NETbfiv, ^NETbfkey;
int NETbfkeylen;
cli::array<System::Byte> ^NETAESiv, ^NETAESkey;
int NETAESkeylen;
void SetRSABufferSizes();
void SetBlowFishSizes();
void SetAESSizes();
void GenerateRandomRSAKeys() { keys->GenerateRandomRSAKeys(); }
void GenerateRandomBlowFishKeys() { keys->GenerateRandomBlowFishKeys(); }
void GenerateRandomAESKeys() { keys->GenerateRandomAESKeys(); }
void AssignObject();
void RetrieveFromObject();
};
public ref class CNETInfoFormat
{
public:
CNETInfoFormat();
~CNETInfoFormat();
CNETBuffer^ NETbuf;
CNETKeys^ NETkeys;
void Create();
void Destroy();
CInfoFormat* infoformat;
void Initialize();
void OpOpen();
void OpClose();
};
}