27#ifndef MC_CRYPTO_API_H
28#define MC_CRYPTO_API_H
36typedef struct CRYPT_MD5_CTX {
40int CRYPT_MD5_Initialize(CRYPT_MD5_CTX*);
41int CRYPT_MD5_DataAdd(CRYPT_MD5_CTX*,
const unsigned char*,
unsigned int);
42int CRYPT_MD5_Finalize(CRYPT_MD5_CTX*,
unsigned char*);
43int CRYPT_MD5_DataSizeSet(CRYPT_MD5_CTX* md5,
unsigned int sz);
46 CRYPT_MD5_DIGEST_SIZE = 16
56int CRYPT_SHA_DataAdd(
CRYPT_SHA_CTX*,
const unsigned char*,
unsigned int);
58int CRYPT_SHA_DataSizeSet(
CRYPT_SHA_CTX* sha,
unsigned int sz);
61 CRYPT_SHA_DIGEST_SIZE = 20
71int CRYPT_SHA256_DataAdd(
CRYPT_SHA256_CTX*,
const unsigned char*,
unsigned int);
76 CRYPT_SHA256_DIGEST_SIZE = 32
86int CRYPT_SHA384_DataAdd(
CRYPT_SHA384_CTX*,
const unsigned char*,
unsigned int);
90 CRYPT_SHA384_DIGEST_SIZE = 48
100int CRYPT_SHA512_DataAdd(
CRYPT_SHA512_CTX*,
const unsigned char*,
unsigned int);
104 CRYPT_SHA512_DIGEST_SIZE = 64
110 long long holder[98];
113int CRYPT_HMAC_SetKey(
CRYPT_HMAC_CTX*,
int,
const unsigned char*,
unsigned int);
114int CRYPT_HMAC_DataAdd(
CRYPT_HMAC_CTX*,
const unsigned char*,
unsigned int);
120 CRYPT_HMAC_SHA256 = 6,
121 CRYPT_HMAC_SHA384 = 7,
122 CRYPT_HMAC_SHA512 = 8
127int CRYPT_HUFFMAN_Compress(
unsigned char*,
unsigned int,
const unsigned char*,
128 unsigned int,
unsigned int);
129int CRYPT_HUFFMAN_DeCompress(
unsigned char*,
unsigned int,
const unsigned char*,
134 CRYPT_HUFFMAN_COMPRESS_STATIC = 1
145int CRYPT_RNG_BlockGenerate(
CRYPT_RNG_CTX*,
unsigned char*,
unsigned int);
154 const unsigned char*,
int);
157 const unsigned char*,
unsigned int);
159 const unsigned char*,
unsigned int);
163 CRYPT_TDES_ENCRYPTION = 0,
164 CRYPT_TDES_DECRYPTION = 1
174int CRYPT_AES_KeySet(
CRYPT_AES_CTX*,
const unsigned char*,
unsigned int,
175 const unsigned char*,
int);
180 const unsigned char*,
unsigned int);
182 const unsigned char*,
unsigned int);
186 const unsigned char*,
unsigned int);
190 const unsigned char*);
192 const unsigned char*);
196 CRYPT_AES_ENCRYPTION = 0,
197 CRYPT_AES_DECRYPTION = 1,
198 CRYPT_AES_BLOCK_SIZE = 16
213int CRYPT_RSA_PublicKeyDecode(
CRYPT_RSA_CTX*,
const unsigned char*,
215int CRYPT_RSA_PrivateKeyDecode(
CRYPT_RSA_CTX*,
const unsigned char*,
220 unsigned int,
const unsigned char*,
unsigned int,
223 unsigned int,
const unsigned char*,
unsigned int);
241int CRYPT_ECC_PublicExport(
CRYPT_ECC_CTX*,
unsigned char*,
unsigned int,
243int CRYPT_ECC_PublicImport(
CRYPT_ECC_CTX*,
const unsigned char*,
unsigned int);
244int CRYPT_ECC_PrivateImport(
CRYPT_ECC_CTX*,
const unsigned char*,
unsigned int,
245 const unsigned char*,
unsigned int);
250 unsigned char*,
unsigned int,
unsigned int*);
254 unsigned int,
unsigned int*,
const unsigned char*,
unsigned int);
255int CRYPT_ECC_DSA_HashVerify(
CRYPT_ECC_CTX*,
const unsigned char*,
256 unsigned int,
unsigned char*,
unsigned int,
int*);
264int CRYPT_ERROR_StringGet(
int,
char*);