mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2024-12-25 01:29:53 +03:00
src/Mayaqua/Encrypt.c: remove unused functions (#506)
[src/Mayaqua/Encrypt.c:1524]: (style) The function 'ByteToStr' is never used. [src/Mayaqua/Encrypt.c:2762]: (style) The function 'CheckX' is never used. [src/Mayaqua/Encrypt.c:4346]: (style) The function 'Des3Decrypt' is never used. [src/Mayaqua/Encrypt.c:4290]: (style) The function 'Des3Encrypt' is never used. [src/Mayaqua/Encrypt.c:4434]: (style) The function 'Des3RandKey' is never used. [src/Mayaqua/Encrypt.c:4474]: (style) The function 'DesFreeKey' is never used. [src/Mayaqua/Encrypt.c:4499]: (style) The function 'DesNewKey' is never used. [src/Mayaqua/Encrypt.c:4446]: (style) The function 'DesRandKey' is never used. [src/Mayaqua/Encrypt.c:4892]: (style) The function 'DhToBuf' is never used. [src/Mayaqua/Encrypt.c:293]: (style) The function 'EasyDecrypt' is never used. [src/Mayaqua/Encrypt.c:259]: (style) The function 'EasyEncrypt' is never used. [src/Mayaqua/Encrypt.c:3144]: (style) The function 'FileToK' is never used. [src/Mayaqua/Encrypt.c:1358]: (style) The function 'FileToP12' is never used. [src/Mayaqua/Encrypt.c:1061]: (style) The function 'GetAllNameFromA' is never used. [src/Mayaqua/Encrypt.c:973]: (style) The function 'GetAllNameFromXExA' is never used. [src/Mayaqua/Encrypt.c:4182]: (style) The function 'HashSha256' is never used. [src/Mayaqua/Encrypt.c:3192]: (style) The function 'KToFile' is never used. [src/Mayaqua/Encrypt.c:4721]: (style) The function 'MacSha196' is never used. [src/Mayaqua/Encrypt.c:1324]: (style) The function 'P12ToFile' is never used. [src/Mayaqua/Encrypt.c:3983]: (style) The function 'Rand128' is never used. [src/Mayaqua/Encrypt.c:670]: (style) The function 'RsaBinToPublic' is never used. [src/Mayaqua/Encrypt.c:2556]: (style) The function 'RsaPrivateDecrypt' is never used. [src/Mayaqua/Encrypt.c:2525]: (style) The function 'RsaPrivateEncrypt' is never used. [src/Mayaqua/Encrypt.c:2494]: (style) The function 'RsaPublicDecrypt' is never used. [src/Mayaqua/Encrypt.c:2584]: (style) The function 'RsaPublicEncrypt' is never used. [src/Mayaqua/Encrypt.c:771]: (style) The function 'RsaPublicToBin' is never used. [src/Mayaqua/Encrypt.c:4263]: (style) The function 'Sha1__' is never used. [src/Mayaqua/Encrypt.c:3672]: (style) The function 'SkipBufBeforeString' is never used.
This commit is contained in:
parent
e4840106c5
commit
13cadf6492
@ -255,74 +255,6 @@ void Enc_tls1_PRF(unsigned char *label, int label_len, const unsigned char *sec,
|
||||
Free(out2);
|
||||
}
|
||||
|
||||
// Easy encryption
|
||||
BUF *EasyEncrypt(BUF *src_buf)
|
||||
{
|
||||
UCHAR key[SHA1_SIZE];
|
||||
BUF *tmp_data;
|
||||
CRYPT *rc4;
|
||||
BUF *ret;
|
||||
// Validate arguments
|
||||
if (src_buf == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Rand(key, SHA1_SIZE);
|
||||
|
||||
tmp_data = CloneBuf(src_buf);
|
||||
|
||||
rc4 = NewCrypt(key, SHA1_SIZE);
|
||||
|
||||
Encrypt(rc4, tmp_data->Buf, tmp_data->Buf, tmp_data->Size);
|
||||
|
||||
ret = NewBuf();
|
||||
|
||||
WriteBuf(ret, key, SHA1_SIZE);
|
||||
WriteBufBuf(ret, tmp_data);
|
||||
|
||||
FreeCrypt(rc4);
|
||||
FreeBuf(tmp_data);
|
||||
|
||||
SeekBufToBegin(ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// Easy decryption
|
||||
BUF *EasyDecrypt(BUF *src_buf)
|
||||
{
|
||||
UCHAR key[SHA1_SIZE];
|
||||
BUF *tmp_buf;
|
||||
CRYPT *rc4;
|
||||
// Validate arguments
|
||||
if (src_buf == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SeekBufToBegin(src_buf);
|
||||
|
||||
if (ReadBuf(src_buf, key, SHA1_SIZE) != SHA1_SIZE)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
tmp_buf = ReadRemainBuf(src_buf);
|
||||
if (tmp_buf == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
rc4 = NewCrypt(key, SHA1_SIZE);
|
||||
Encrypt(rc4, tmp_buf->Buf, tmp_buf->Buf, tmp_buf->Size);
|
||||
FreeCrypt(rc4);
|
||||
|
||||
SeekBufToBegin(tmp_buf);
|
||||
|
||||
return tmp_buf;
|
||||
}
|
||||
|
||||
// Calculation of HMAC (MD5)
|
||||
void HMacMd5(void *dst, void *key, UINT key_size, void *data, UINT data_size)
|
||||
{
|
||||
@ -666,62 +598,6 @@ void FreeCipher(CIPHER *c)
|
||||
Free(c);
|
||||
}
|
||||
|
||||
// Convert the buffer to the public key
|
||||
K *RsaBinToPublic(void *data, UINT size)
|
||||
{
|
||||
RSA *rsa;
|
||||
K *k;
|
||||
BIO *bio;
|
||||
#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
||||
BIGNUM *e, *n;
|
||||
#endif
|
||||
// Validate arguments
|
||||
if (data == NULL || size < 4)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
rsa = RSA_new();
|
||||
|
||||
#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
||||
e = BN_new();
|
||||
BN_set_word(e, RSA_F4);
|
||||
|
||||
n = BinToBigNum(data, size);
|
||||
|
||||
RSA_set0_key(rsa, n, e, NULL);
|
||||
#else
|
||||
if (rsa->e != NULL)
|
||||
{
|
||||
BN_free(rsa->e);
|
||||
}
|
||||
|
||||
rsa->e = BN_new();
|
||||
BN_set_word(rsa->e, RSA_F4);
|
||||
|
||||
if (rsa->n != NULL)
|
||||
{
|
||||
BN_free(rsa->n);
|
||||
}
|
||||
|
||||
rsa->n = BinToBigNum(data, size);
|
||||
#endif
|
||||
|
||||
bio = NewBio();
|
||||
Lock(openssl_lock);
|
||||
{
|
||||
i2d_RSA_PUBKEY_bio(bio, rsa);
|
||||
}
|
||||
Unlock(openssl_lock);
|
||||
BIO_seek(bio, 0);
|
||||
k = BioToK(bio, false, false, NULL);
|
||||
FreeBio(bio);
|
||||
|
||||
RSA_free(rsa);
|
||||
|
||||
return k;
|
||||
}
|
||||
|
||||
// Convert the public key to a buffer
|
||||
BUF *RsaPublicToBuf(K *k)
|
||||
{
|
||||
@ -767,27 +643,6 @@ BUF *RsaPublicToBuf(K *k)
|
||||
return b;
|
||||
}
|
||||
|
||||
// Convert the public key to a binary
|
||||
void RsaPublicToBin(K *k, void *data)
|
||||
{
|
||||
BUF *b;
|
||||
// Validate arguments
|
||||
if (data == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
b = RsaPublicToBuf(k);
|
||||
if (b == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Copy(data, b->Buf, b->Size);
|
||||
|
||||
FreeBuf(b);
|
||||
}
|
||||
|
||||
// Get public key size
|
||||
UINT RsaPublicSize(K *k)
|
||||
{
|
||||
@ -970,19 +825,6 @@ void GetAllNameFromXEx(wchar_t *str, UINT size, X *x)
|
||||
|
||||
GetAllNameFromNameEx(str, size, x->subject_name);
|
||||
}
|
||||
void GetAllNameFromXExA(char *str, UINT size, X *x)
|
||||
{
|
||||
wchar_t tmp[MAX_SIZE];
|
||||
// Validate arguments
|
||||
if (str == NULL || x == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
GetAllNameFromXEx(tmp, sizeof(tmp), x);
|
||||
|
||||
UniToStr(str, size, tmp);
|
||||
}
|
||||
|
||||
// Get the display name from NAME
|
||||
void GetPrintNameFromName(wchar_t *str, UINT size, NAME *name)
|
||||
@ -1058,18 +900,6 @@ void GetAllNameFromX(wchar_t *str, UINT size, X *x)
|
||||
UniFormat(tmp3, sizeof(tmp3), L" (Digest: MD5=\"%S\", SHA1=\"%S\")", tmp1, tmp2);
|
||||
UniStrCat(str, size, tmp3);
|
||||
}
|
||||
void GetAllNameFromA(char *str, UINT size, X *x)
|
||||
{
|
||||
wchar_t tmp[MAX_SIZE];
|
||||
// Validate arguments
|
||||
if (str == NULL || x == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
GetAllNameFromX(tmp, sizeof(tmp), x);
|
||||
UniToStr(str, size, tmp);
|
||||
}
|
||||
|
||||
// Get the all name strings from NAME
|
||||
void GetAllNameFromName(wchar_t *str, UINT size, NAME *name)
|
||||
@ -1321,13 +1151,6 @@ bool ParseP12(P12 *p12, X **x, K **k, char *password)
|
||||
}
|
||||
|
||||
// Write the P12 to a file
|
||||
bool P12ToFile(P12 *p12, char *filename)
|
||||
{
|
||||
wchar_t *filename_w = CopyStrToUni(filename);
|
||||
bool ret = P12ToFileW(p12, filename_w);
|
||||
|
||||
return ret;
|
||||
}
|
||||
bool P12ToFileW(P12 *p12, wchar_t *filename)
|
||||
{
|
||||
BUF *b;
|
||||
@ -1355,15 +1178,6 @@ bool P12ToFileW(P12 *p12, wchar_t *filename)
|
||||
}
|
||||
|
||||
// Read a P12 from the file
|
||||
P12 *FileToP12(char *filename)
|
||||
{
|
||||
wchar_t *filename_w = CopyStrToUni(filename);
|
||||
P12 *ret = FileToP12W(filename_w);
|
||||
|
||||
Free(filename_w);
|
||||
|
||||
return ret;
|
||||
}
|
||||
P12 *FileToP12W(wchar_t *filename)
|
||||
{
|
||||
BUF *b;
|
||||
@ -1520,33 +1334,6 @@ P12 *PKCS12ToP12(PKCS12 *pkcs12)
|
||||
return p12;
|
||||
}
|
||||
|
||||
// Convert a binary to a string
|
||||
char *ByteToStr(BYTE *src, UINT src_size)
|
||||
{
|
||||
UINT size;
|
||||
char *dst;
|
||||
UINT i;
|
||||
// Validate arguments
|
||||
if (src == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
size = MAX(src_size * 3, 1);
|
||||
dst = Malloc(size);
|
||||
dst[size - 1] = 0;
|
||||
for (i = 0;i < src_size;i++)
|
||||
{
|
||||
char tmp[3];
|
||||
Format(tmp, sizeof(tmp), "%02x", src[i]);
|
||||
dst[i * 3 + 0] = tmp[0];
|
||||
dst[i * 3 + 1] = tmp[1];
|
||||
dst[i * 3 + 2] = ((i == (src_size - 1) ? 0 : ' '));
|
||||
}
|
||||
|
||||
return dst;
|
||||
}
|
||||
|
||||
// Release of X_SERIAL
|
||||
void FreeXSerial(X_SERIAL *serial)
|
||||
{
|
||||
@ -2490,124 +2277,6 @@ bool HashForSign(void *dst, UINT dst_size, void *src, UINT src_size)
|
||||
return true;
|
||||
}
|
||||
|
||||
// Decrypt with the RSA public key
|
||||
bool RsaPublicDecrypt(void *dst, void *src, UINT size, K *k)
|
||||
{
|
||||
void *tmp;
|
||||
int ret;
|
||||
// Validate arguments
|
||||
if (src == NULL || size == 0 || k == NULL)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
tmp = ZeroMalloc(size);
|
||||
Lock(openssl_lock);
|
||||
{
|
||||
ret = RSA_public_decrypt(size, src, tmp, EVP_PKEY_get0_RSA(k->pkey), RSA_NO_PADDING);
|
||||
}
|
||||
Unlock(openssl_lock);
|
||||
if (ret <= 0)
|
||||
{
|
||||
/* Debug("RSA Error: 0x%x\n",
|
||||
ERR_get_error());
|
||||
*/ Free(tmp);
|
||||
return false;
|
||||
}
|
||||
|
||||
Copy(dst, tmp, size);
|
||||
Free(tmp);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Encrypt with the RSA private key
|
||||
bool RsaPrivateEncrypt(void *dst, void *src, UINT size, K *k)
|
||||
{
|
||||
void *tmp;
|
||||
int ret;
|
||||
// Validate arguments
|
||||
if (src == NULL || size == 0 || k == NULL)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
tmp = ZeroMalloc(size);
|
||||
Lock(openssl_lock);
|
||||
{
|
||||
ret = RSA_private_encrypt(size, src, tmp, EVP_PKEY_get0_RSA(k->pkey), RSA_NO_PADDING);
|
||||
}
|
||||
Unlock(openssl_lock);
|
||||
if (ret <= 0)
|
||||
{
|
||||
/* Debug("RSA Error: %u\n",
|
||||
ERR_GET_REASON(ERR_get_error()));
|
||||
*/ Free(tmp);
|
||||
return false;
|
||||
}
|
||||
|
||||
Copy(dst, tmp, size);
|
||||
Free(tmp);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Decrypt with the RSA private key
|
||||
bool RsaPrivateDecrypt(void *dst, void *src, UINT size, K *k)
|
||||
{
|
||||
void *tmp;
|
||||
int ret;
|
||||
// Validate arguments
|
||||
if (src == NULL || size == 0 || k == NULL)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
tmp = ZeroMalloc(size);
|
||||
Lock(openssl_lock);
|
||||
{
|
||||
ret = RSA_private_decrypt(size, src, tmp, EVP_PKEY_get0_RSA(k->pkey), RSA_NO_PADDING);
|
||||
}
|
||||
Unlock(openssl_lock);
|
||||
if (ret <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Copy(dst, tmp, size);
|
||||
Free(tmp);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Encrypt with the RSA public key
|
||||
bool RsaPublicEncrypt(void *dst, void *src, UINT size, K *k)
|
||||
{
|
||||
void *tmp;
|
||||
int ret;
|
||||
// Validate arguments
|
||||
if (src == NULL || size == 0 || k == NULL)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
tmp = ZeroMalloc(size);
|
||||
Lock(openssl_lock);
|
||||
{
|
||||
ret = RSA_public_encrypt(size, src, tmp, EVP_PKEY_get0_RSA(k->pkey), RSA_NO_PADDING);
|
||||
}
|
||||
Unlock(openssl_lock);
|
||||
if (ret <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Copy(dst, tmp, size);
|
||||
Free(tmp);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// RSA operating environment check
|
||||
bool RsaCheckEx()
|
||||
{
|
||||
@ -2759,10 +2428,6 @@ bool RsaGen(K **priv, K **pub, UINT bit)
|
||||
}
|
||||
|
||||
// Confirm whether the certificate X is signed by the issuer of the certificate x_issuer
|
||||
bool CheckX(X *x, X *x_issuer)
|
||||
{
|
||||
return CheckXEx(x, x_issuer, false, false);
|
||||
}
|
||||
bool CheckXEx(X *x, X *x_issuer, bool check_name, bool check_date)
|
||||
{
|
||||
K *k;
|
||||
@ -3141,17 +2806,6 @@ bool XToFileW(X *x, wchar_t *filename, bool text)
|
||||
}
|
||||
|
||||
// Read a K from the file
|
||||
K *FileToK(char *filename, bool private_key, char *password)
|
||||
{
|
||||
wchar_t *filename_w = CopyStrToUni(filename);
|
||||
K *ret;
|
||||
|
||||
ret = FileToKW(filename_w, private_key, password);
|
||||
|
||||
Free(filename_w);
|
||||
|
||||
return ret;
|
||||
}
|
||||
K *FileToKW(wchar_t *filename, bool private_key, char *password)
|
||||
{
|
||||
bool text;
|
||||
@ -3189,15 +2843,6 @@ K *FileToKW(wchar_t *filename, bool private_key, char *password)
|
||||
}
|
||||
|
||||
// Save the K to a file
|
||||
bool KToFile(K *k, char *filename, bool text, char *password)
|
||||
{
|
||||
wchar_t *filename_w = CopyStrToUni(filename);
|
||||
bool ret = KToFileW(k, filename_w, text, password);
|
||||
|
||||
Free(filename_w);
|
||||
|
||||
return ret;
|
||||
}
|
||||
bool KToFileW(K *k, wchar_t *filename, bool text, char *password)
|
||||
{
|
||||
BUF *b;
|
||||
@ -3668,39 +3313,6 @@ X *BufToX(BUF *b, bool text)
|
||||
return x;
|
||||
}
|
||||
|
||||
// Create a new buffer by skipping the contents of the buffer to the specified string
|
||||
BUF *SkipBufBeforeString(BUF *b, char *str)
|
||||
{
|
||||
char *tmp;
|
||||
UINT tmp_size;
|
||||
BUF *ret;
|
||||
UINT i;
|
||||
UINT offset = 0;
|
||||
// Validate arguments
|
||||
if (b == NULL || str == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
tmp_size = b->Size + 1;
|
||||
tmp = ZeroMalloc(tmp_size);
|
||||
Copy(tmp, b->Buf, b->Size);
|
||||
|
||||
i = SearchStrEx(tmp, str, 0, false);
|
||||
if (i != INFINITE)
|
||||
{
|
||||
offset = i;
|
||||
}
|
||||
|
||||
ret = NewBuf();
|
||||
WriteBuf(ret, ((UCHAR *)b->Buf) + offset, b->Size - offset);
|
||||
SeekBuf(ret, 0, 0);
|
||||
|
||||
Free(tmp);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// Get a digest of the X
|
||||
void GetXDigest(X *x, UCHAR *buf, bool sha1)
|
||||
{
|
||||
@ -3979,12 +3591,6 @@ BIO *BufToBio(BUF *b)
|
||||
return bio;
|
||||
}
|
||||
|
||||
// 128-bit random number generation
|
||||
void Rand128(void *buf)
|
||||
{
|
||||
Rand(buf, 16);
|
||||
}
|
||||
|
||||
// 64-bit random number generation
|
||||
UINT64 Rand64()
|
||||
{
|
||||
@ -4178,17 +3784,6 @@ void HashSha1(void *dst, void *src, UINT size)
|
||||
SHA1(src, size, dst);
|
||||
}
|
||||
|
||||
// SHA-256 specific hash function
|
||||
void HashSha256(void *dst, void *src, UINT size)
|
||||
{
|
||||
// Validate arguments
|
||||
if (dst == NULL || (size != 0 && src == NULL))
|
||||
{
|
||||
return;
|
||||
}
|
||||
SHA256(src, size, dst);
|
||||
}
|
||||
|
||||
// Creating a new CRYPT object
|
||||
CRYPT *NewCrypt(void *key, UINT size)
|
||||
{
|
||||
@ -4260,10 +3855,6 @@ void Sha1(void *dst, void *src, UINT size)
|
||||
SHA1(src, size, dst);
|
||||
}
|
||||
|
||||
void Sha1__(void *dst, void *src, UINT size) {
|
||||
Sha(SHA1_160, dst, src, size);
|
||||
}
|
||||
|
||||
void Sha2_256(void *dst, void *src, UINT size) {
|
||||
Sha(SHA2_256, dst, src, size);
|
||||
}
|
||||
@ -4287,24 +3878,6 @@ void Md5(void *dst, void *src, UINT size)
|
||||
}
|
||||
|
||||
// 3DES encryption
|
||||
void Des3Encrypt(void *dest, void *src, UINT size, DES_KEY *key, void *ivec)
|
||||
{
|
||||
UCHAR ivec_copy[DES_IV_SIZE];
|
||||
// Validate arguments
|
||||
if (dest == NULL || src == NULL || size == 0 || key == NULL || ivec == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Copy(ivec_copy, ivec, DES_IV_SIZE);
|
||||
|
||||
DES_ede3_cbc_encrypt(src, dest, size,
|
||||
key->k1->KeySchedule,
|
||||
key->k2->KeySchedule,
|
||||
key->k3->KeySchedule,
|
||||
(DES_cblock *)ivec_copy,
|
||||
1);
|
||||
}
|
||||
void Des3Encrypt2(void *dest, void *src, UINT size, DES_KEY_VALUE *k1, DES_KEY_VALUE *k2, DES_KEY_VALUE *k3, void *ivec)
|
||||
{
|
||||
UCHAR ivec_copy[DES_IV_SIZE];
|
||||
@ -4343,24 +3916,6 @@ void DesEncrypt(void *dest, void *src, UINT size, DES_KEY_VALUE *k, void *ivec)
|
||||
}
|
||||
|
||||
// 3DES decryption
|
||||
void Des3Decrypt(void *dest, void *src, UINT size, DES_KEY *key, void *ivec)
|
||||
{
|
||||
UCHAR ivec_copy[DES_IV_SIZE];
|
||||
// Validate arguments
|
||||
if (dest == NULL || src == NULL || size == 0 || key == NULL || ivec == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Copy(ivec_copy, ivec, DES_IV_SIZE);
|
||||
|
||||
DES_ede3_cbc_encrypt(src, dest, size,
|
||||
key->k1->KeySchedule,
|
||||
key->k2->KeySchedule,
|
||||
key->k3->KeySchedule,
|
||||
(DES_cblock *)ivec_copy,
|
||||
0);
|
||||
}
|
||||
void Des3Decrypt2(void *dest, void *src, UINT size, DES_KEY_VALUE *k1, DES_KEY_VALUE *k2, DES_KEY_VALUE *k3, void *ivec)
|
||||
{
|
||||
UCHAR ivec_copy[DES_IV_SIZE];
|
||||
@ -4430,30 +3985,6 @@ void DesDecrypt(void *dest, void *src, UINT size, DES_KEY_VALUE *k, void *ivec)
|
||||
0);
|
||||
}
|
||||
|
||||
// Generate a random 3DES key
|
||||
DES_KEY *Des3RandKey()
|
||||
{
|
||||
DES_KEY *k = ZeroMalloc(sizeof(DES_KEY));
|
||||
|
||||
k->k1 = DesRandKeyValue();
|
||||
k->k2 = DesRandKeyValue();
|
||||
k->k3 = DesRandKeyValue();
|
||||
|
||||
return k;
|
||||
}
|
||||
|
||||
// Generate a random DES key
|
||||
DES_KEY *DesRandKey()
|
||||
{
|
||||
DES_KEY *k = ZeroMalloc(sizeof(DES_KEY));
|
||||
|
||||
k->k1 = DesRandKeyValue();
|
||||
k->k2 = DesNewKeyValue(k->k1->KeyValue);
|
||||
k->k3 = DesNewKeyValue(k->k1->KeyValue);
|
||||
|
||||
return k;
|
||||
}
|
||||
|
||||
// Release the 3DES key
|
||||
void Des3FreeKey(DES_KEY *k)
|
||||
{
|
||||
@ -4470,12 +4001,6 @@ void Des3FreeKey(DES_KEY *k)
|
||||
Free(k);
|
||||
}
|
||||
|
||||
// Release the DES key
|
||||
void DesFreeKey(DES_KEY *k)
|
||||
{
|
||||
Des3FreeKey(k);
|
||||
}
|
||||
|
||||
// Create a 3DES key
|
||||
DES_KEY *Des3NewKey(void *k1, void *k2, void *k3)
|
||||
{
|
||||
@ -4495,12 +4020,6 @@ DES_KEY *Des3NewKey(void *k1, void *k2, void *k3)
|
||||
return k;
|
||||
}
|
||||
|
||||
// Create a DES key
|
||||
DES_KEY *DesNewKey(void *k1)
|
||||
{
|
||||
return Des3NewKey(k1, k1, k1);
|
||||
}
|
||||
|
||||
// Create a new DES key element
|
||||
DES_KEY_VALUE *DesNewKeyValue(void *value)
|
||||
{
|
||||
@ -4717,21 +4236,6 @@ void AesDecryptWithIntel(void *dest, void *src, UINT size, AES_KEY_VALUE *k, voi
|
||||
}
|
||||
#endif // USE_INTEL_AESNI_LIBRARY
|
||||
|
||||
// Calculation of HMAC-SHA-1-96
|
||||
void MacSha196(void *dst, void *key, void *data, UINT data_size)
|
||||
{
|
||||
UCHAR tmp[HMAC_SHA1_SIZE];
|
||||
// Validate arguments
|
||||
if (dst == NULL || key == NULL || data == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
MacSha1(tmp, key, HMAC_SHA1_96_KEY_SIZE, data, data_size);
|
||||
|
||||
Copy(dst, tmp, HMAC_SHA1_96_HASH_SIZE);
|
||||
}
|
||||
|
||||
// Calculation of HMAC-SHA-1
|
||||
void MacSha1(void *dst, void *key, UINT key_size, void *data, UINT data_size)
|
||||
{
|
||||
@ -4888,31 +4392,6 @@ DH_CTX *DhNewFromBits(UINT bits)
|
||||
}
|
||||
}
|
||||
|
||||
// Convert the DH parameters to file
|
||||
BUF *DhToBuf(DH_CTX *dh)
|
||||
{
|
||||
BIO *bio;
|
||||
BUF *buf = NULL;
|
||||
int r;
|
||||
// Validate arguments
|
||||
if (dh == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bio = NewBio();
|
||||
|
||||
r = i2d_DHparams_bio(bio, dh->dh);
|
||||
if (r > 1)
|
||||
{
|
||||
buf = BioToBuf(bio);
|
||||
}
|
||||
|
||||
FreeBio(bio);
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
// Creating a new DH
|
||||
DH_CTX *DhNew(char *prime, UINT g)
|
||||
{
|
||||
|
@ -374,12 +374,10 @@ void FreeCrypt(CRYPT *c);
|
||||
void Encrypt(CRYPT *c, void *dst, void *src, UINT size);
|
||||
void Hash(void *dst, void *src, UINT size, bool sha);
|
||||
void HashSha1(void *dst, void *src, UINT size);
|
||||
void HashSha256(void *dst, void *src, UINT size);
|
||||
void HashMd4(void *dst, void *src, UINT size);
|
||||
void HashMd4(void *dst, void *src, UINT size);
|
||||
void InitCryptLibrary();
|
||||
void Rand(void *buf, UINT size);
|
||||
void Rand128(void *buf);
|
||||
UINT HashToUINT(void *data, UINT size);
|
||||
UINT64 Rand64();
|
||||
UINT Rand32();
|
||||
@ -394,7 +392,6 @@ BIO *NewBio();
|
||||
void FreeBio(BIO *bio);
|
||||
X *BioToX(BIO *bio, bool text);
|
||||
X *BufToX(BUF *b, bool text);
|
||||
BUF *SkipBufBeforeString(BUF *b, char *str);
|
||||
void FreeX509(X509 *x509);
|
||||
void FreeX(X *x);
|
||||
BIO *XToBio(X *x, bool text);
|
||||
@ -412,9 +409,7 @@ X *FileToX(char *filename);
|
||||
X *FileToXW(wchar_t *filename);
|
||||
bool XToFile(X *x, char *filename, bool text);
|
||||
bool XToFileW(X *x, wchar_t *filename, bool text);
|
||||
K *FileToK(char *filename, bool private_key, char *password);
|
||||
K *FileToKW(wchar_t *filename, bool private_key, char *password);
|
||||
bool KToFile(K *k, char *filename, bool text, char *password);
|
||||
bool KToFileW(K *k, wchar_t *filename, bool text, char *password);
|
||||
bool CheckXandK(X *x, K *k);
|
||||
bool CompareX(X *x1, X *x2);
|
||||
@ -427,7 +422,6 @@ bool CompareName(NAME *n1, NAME *n2);
|
||||
K *GetKFromX(X *x);
|
||||
bool CheckSignature(X *x, K *k);
|
||||
X *X509ToX(X509 *x509);
|
||||
bool CheckX(X *x, X *x_issuer);
|
||||
bool CheckXEx(X *x, X *x_issuer, bool check_name, bool check_date);
|
||||
bool Asn1TimeToSystem(SYSTEMTIME *s, void *asn1_time);
|
||||
bool StrToSystem(SYSTEMTIME *s, char *str);
|
||||
@ -451,7 +445,6 @@ UINT GetDaysUntil2038();
|
||||
UINT GetDaysUntil2038Ex();
|
||||
X_SERIAL *NewXSerial(void *data, UINT size);
|
||||
void FreeXSerial(X_SERIAL *serial);
|
||||
char *ByteToStr(BYTE *src, UINT src_size);
|
||||
P12 *BioToP12(BIO *bio);
|
||||
P12 *PKCS12ToP12(PKCS12 *pkcs12);
|
||||
P12 *BufToP12(BUF *b);
|
||||
@ -459,9 +452,7 @@ BIO *P12ToBio(P12 *p12);
|
||||
BUF *P12ToBuf(P12 *p12);
|
||||
void FreePKCS12(PKCS12 *pkcs12);
|
||||
void FreeP12(P12 *p12);
|
||||
P12 *FileToP12(char *filename);
|
||||
P12 *FileToP12W(wchar_t *filename);
|
||||
bool P12ToFile(P12 *p12, char *filename);
|
||||
bool P12ToFileW(P12 *p12, wchar_t *filename);
|
||||
bool ParseP12(P12 *p12, X **x, K **k, char *password);
|
||||
bool IsEncryptedP12(P12 *p12);
|
||||
@ -473,11 +464,9 @@ void GetPrintNameFromX(wchar_t *str, UINT size, X *x);
|
||||
void GetPrintNameFromXA(char *str, UINT size, X *x);
|
||||
void GetPrintNameFromName(wchar_t *str, UINT size, NAME *name);
|
||||
void GetAllNameFromX(wchar_t *str, UINT size, X *x);
|
||||
void GetAllNameFromA(char *str, UINT size, X *x);
|
||||
void GetAllNameFromName(wchar_t *str, UINT size, NAME *name);
|
||||
void GetAllNameFromNameEx(wchar_t *str, UINT size, NAME *name);
|
||||
void GetAllNameFromXEx(wchar_t *str, UINT size, X *x);
|
||||
void GetAllNameFromXExA(char *str, UINT size, X *x);
|
||||
BUF *BigNumToBuf(const BIGNUM *bn);
|
||||
BIGNUM *BinToBigNum(void *data, UINT size);
|
||||
X_SERIAL *CloneXSerial(X_SERIAL *src);
|
||||
@ -489,32 +478,20 @@ NAME *CopyName(NAME *n);
|
||||
bool RsaGen(K **priv, K **pub, UINT bit);
|
||||
bool RsaCheck();
|
||||
bool RsaCheckEx();
|
||||
bool RsaPublicEncrypt(void *dst, void *src, UINT size, K *k);
|
||||
bool RsaPrivateDecrypt(void *dst, void *src, UINT size, K *k);
|
||||
bool RsaPrivateEncrypt(void *dst, void *src, UINT size, K *k);
|
||||
bool RsaPublicDecrypt(void *dst, void *src, UINT size, K *k);
|
||||
bool RsaSign(void *dst, void *src, UINT size, K *k);
|
||||
bool RsaSignEx(void *dst, void *src, UINT size, K *k, UINT bits);
|
||||
bool HashForSign(void *dst, UINT dst_size, void *src, UINT src_size);
|
||||
bool RsaVerify(void *data, UINT data_size, void *sign, K *k);
|
||||
bool RsaVerifyEx(void *data, UINT data_size, void *sign, K *k, UINT bits);
|
||||
UINT RsaPublicSize(K *k);
|
||||
void RsaPublicToBin(K *k, void *data);
|
||||
BUF *RsaPublicToBuf(K *k);
|
||||
K *RsaBinToPublic(void *data, UINT size);
|
||||
|
||||
DES_KEY_VALUE *DesNewKeyValue(void *value);
|
||||
DES_KEY_VALUE *DesRandKeyValue();
|
||||
void DesFreeKeyValue(DES_KEY_VALUE *v);
|
||||
DES_KEY *Des3NewKey(void *k1, void *k2, void *k3);
|
||||
void Des3FreeKey(DES_KEY *k);
|
||||
DES_KEY *DesNewKey(void *k1);
|
||||
void DesFreeKey(DES_KEY *k);
|
||||
DES_KEY *Des3RandKey();
|
||||
DES_KEY *DesRandKey();
|
||||
void Des3Encrypt(void *dest, void *src, UINT size, DES_KEY *key, void *ivec);
|
||||
void Des3Encrypt2(void *dest, void *src, UINT size, DES_KEY_VALUE *k1, DES_KEY_VALUE *k2, DES_KEY_VALUE *k3, void *ivec);
|
||||
void Des3Decrypt(void *dest, void *src, UINT size, DES_KEY *key, void *ivec);
|
||||
void Des3Decrypt2(void *dest, void *src, UINT size, DES_KEY_VALUE *k1, DES_KEY_VALUE *k2, DES_KEY_VALUE *k3, void *ivec);
|
||||
void Sha(UINT sha_type, void *dst, void *src, UINT size);
|
||||
void Sha1(void *dst, void *src, UINT size);
|
||||
@ -524,7 +501,6 @@ void Sha2_512(void *dst, void *src, UINT size);
|
||||
|
||||
void Md5(void *dst, void *src, UINT size);
|
||||
void MacSha1(void *dst, void *key, UINT key_size, void *data, UINT data_size);
|
||||
void MacSha196(void *dst, void *key, void *data, UINT data_size);
|
||||
void DesEncrypt(void *dest, void *src, UINT size, DES_KEY_VALUE *k, void *ivec);
|
||||
void DesDecrypt(void *dest, void *src, UINT size, DES_KEY_VALUE *k, void *ivec);
|
||||
void DesEcbEncrypt(void *dst, void *src, void *key_7bytes);
|
||||
@ -540,7 +516,6 @@ DH_CTX *DhNew4096();
|
||||
DH_CTX *DhNewFromBits(UINT bits);
|
||||
DH_CTX *DhNew(char *prime, UINT g);
|
||||
void DhFree(DH_CTX *dh);
|
||||
BUF *DhToBuf(DH_CTX *dh);
|
||||
|
||||
AES_KEY_VALUE *AesNewKey(void *data, UINT size);
|
||||
void AesFreeKey(AES_KEY_VALUE *k);
|
||||
@ -576,9 +551,6 @@ void Enc_tls1_PRF(unsigned char *label, int label_len, const unsigned char *sec,
|
||||
void HMacSha1(void *dst, void *key, UINT key_size, void *data, UINT data_size);
|
||||
void HMacMd5(void *dst, void *key, UINT key_size, void *data, UINT data_size);
|
||||
|
||||
BUF *EasyEncrypt(BUF *src_buf);
|
||||
BUF *EasyDecrypt(BUF *src_buf);
|
||||
|
||||
void DisableIntelAesAccel();
|
||||
|
||||
int GetSslClientCertIndex();
|
||||
|
Loading…
Reference in New Issue
Block a user