mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-01 19:54:40 +02:00
add DYNAMIC_TYPE_USER_CRYPTO tag for malloced memory
This commit is contained in:
@@ -164,20 +164,20 @@ static int SetIndividualExternal(WOLFSSL_BIGNUM** bn, IppsBigNumState* in)
|
|||||||
if (ret != ippStsNoErr)
|
if (ret != ippStsNoErr)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
data = XMALLOC(sz, NULL, DYNAMIC_TYPE_ARRAYS);
|
data = XMALLOC(sz, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (data == NULL)
|
if (data == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
ret = ippsGetOctString_BN(data, sz, in);
|
ret = ippsGetOctString_BN(data, sz, in);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
XFREE(data, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(data, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* store the data into a wolfSSL Big Number */
|
/* store the data into a wolfSSL Big Number */
|
||||||
*bn = wolfSSL_BN_bin2bn(data, sz, *bn);
|
*bn = wolfSSL_BN_bin2bn(data, sz, *bn);
|
||||||
|
|
||||||
XFREE(data, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(data, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -204,7 +204,7 @@ static int SetIndividualInternal(WOLFSSL_BIGNUM* bn, IppsBigNumState** mpi)
|
|||||||
if (ret != ippStsNoErr)
|
if (ret != ippStsNoErr)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
*mpi = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
*mpi = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (*mpi == NULL)
|
if (*mpi == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -223,24 +223,24 @@ static int SetIndividualInternal(WOLFSSL_BIGNUM* bn, IppsBigNumState** mpi)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
data = XMALLOC(length, NULL, DYNAMIC_TYPE_ARRAYS);
|
data = XMALLOC(length, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (data == NULL)
|
if (data == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
/* extract the wolfSSL BigNum and store it into IPP BigNum */
|
/* extract the wolfSSL BigNum and store it into IPP BigNum */
|
||||||
if (wolfSSL_BN_bn2bin(bn, data) < 0) {
|
if (wolfSSL_BN_bn2bin(bn, data) < 0) {
|
||||||
XFREE(data, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(data, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
USER_DEBUG(("error in getting bin from wolfssl bn\n"));
|
USER_DEBUG(("error in getting bin from wolfssl bn\n"));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = ippsSetOctString_BN(data, length, *mpi);
|
ret = ippsSetOctString_BN(data, length, *mpi);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
XFREE(data, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(data, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
XFREE(data, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(data, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -403,13 +403,14 @@ int SetRsaInternal(WOLFSSL_RSA* rsa)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
key->pPub = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_KEY);
|
key->pPub = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->pPub == NULL)
|
if (key->pPub == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
ret = ippsRSA_InitPublicKey(key->nSz, key->eSz, key->pPub, ctxSz);
|
ret = ippsRSA_InitPublicKey(key->nSz, key->eSz, key->pPub, ctxSz);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
USER_DEBUG(("ippsRSA_InitPublicKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_InitPublicKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -455,13 +456,14 @@ int SetRsaInternal(WOLFSSL_RSA* rsa)
|
|||||||
}
|
}
|
||||||
|
|
||||||
key->prvSz = ctxSz;
|
key->prvSz = ctxSz;
|
||||||
key->pPrv = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_KEY);
|
key->pPrv = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->pPrv == NULL)
|
if (key->pPrv == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
ret = ippsRSA_InitPrivateKeyType2(pSz, qSz, key->pPrv, ctxSz);
|
ret = ippsRSA_InitPrivateKeyType2(pSz, qSz, key->pPrv, ctxSz);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
USER_DEBUG(("ippsRSA_InitPrivateKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_InitPrivateKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -572,54 +574,54 @@ int wc_FreeRsaKey(RsaKey* key)
|
|||||||
USER_DEBUG(("Entering wc_FreeRsaKey\n"));
|
USER_DEBUG(("Entering wc_FreeRsaKey\n"));
|
||||||
|
|
||||||
if (key->pPub != NULL) {
|
if (key->pPub != NULL) {
|
||||||
XFREE(key->pPub, NULL, DYNAMIC_TYPE_KEY);
|
XFREE(key->pPub, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
key->pPub = NULL;
|
key->pPub = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key->pPrv != NULL) {
|
if (key->pPrv != NULL) {
|
||||||
/* write over senstive information */
|
/* write over senstive information */
|
||||||
ForceZero(key->pPrv, key->prvSz);
|
ForceZero(key->pPrv, key->prvSz);
|
||||||
XFREE(key->pPrv, NULL, DYNAMIC_TYPE_KEY);
|
XFREE(key->pPrv, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
key->pPrv = NULL;
|
key->pPrv = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key->n != NULL) {
|
if (key->n != NULL) {
|
||||||
XFREE(key->n, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(key->n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
key->n = NULL;
|
key->n = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key->e != NULL) {
|
if (key->e != NULL) {
|
||||||
XFREE(key->e, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(key->e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
key->e = NULL;
|
key->e = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key->dipp != NULL) {
|
if (key->dipp != NULL) {
|
||||||
XFREE(key->dipp, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(key->dipp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
key->dipp = NULL;
|
key->dipp = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key->pipp != NULL) {
|
if (key->pipp != NULL) {
|
||||||
XFREE(key->pipp, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(key->pipp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
key->pipp = NULL;
|
key->pipp = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key->qipp != NULL) {
|
if (key->qipp != NULL) {
|
||||||
XFREE(key->qipp, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(key->qipp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
key->qipp = NULL;
|
key->qipp = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key->dPipp != NULL) {
|
if (key->dPipp != NULL) {
|
||||||
XFREE(key->dPipp, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(key->dPipp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
key->dPipp = NULL;
|
key->dPipp = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key->dQipp != NULL) {
|
if (key->dQipp != NULL) {
|
||||||
XFREE(key->dQipp, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(key->dQipp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
key->dQipp = NULL;
|
key->dQipp = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key->uipp != NULL) {
|
if (key->uipp != NULL) {
|
||||||
XFREE(key->uipp, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(key->uipp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
key->uipp = NULL;
|
key->uipp = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -699,7 +701,7 @@ static int GetInt(IppsBigNumState** mpi, const byte* input, word32* inOutIdx,
|
|||||||
if (ret != ippStsNoErr)
|
if (ret != ippStsNoErr)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
*mpi = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
*mpi = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (*mpi == NULL)
|
if (*mpi == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -806,19 +808,21 @@ int wc_RsaPrivateKeyDecode(const byte* input, word32* inOutIdx, RsaKey* key,
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
key->pPub = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_KEY);
|
key->pPub = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->pPub == NULL)
|
if (key->pPub == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
ret = ippsRSA_InitPublicKey(key->nSz, key->eSz, key->pPub, ctxSz);
|
ret = ippsRSA_InitPublicKey(key->nSz, key->eSz, key->pPub, ctxSz);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
USER_DEBUG(("ippsRSA_InitPublicKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_InitPublicKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = ippsRSA_SetPublicKey(key->n, key->e, key->pPub);
|
ret = ippsRSA_SetPublicKey(key->n, key->e, key->pPub);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
USER_DEBUG(("ippsRSA_SetPublicKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_SetPublicKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -856,20 +860,22 @@ int wc_RsaPrivateKeyDecode(const byte* input, word32* inOutIdx, RsaKey* key,
|
|||||||
}
|
}
|
||||||
|
|
||||||
key->prvSz = ctxSz;
|
key->prvSz = ctxSz;
|
||||||
key->pPrv = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_KEY);
|
key->pPrv = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->pPrv == NULL)
|
if (key->pPrv == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
ret = ippsRSA_InitPrivateKeyType2(pSz, qSz, key->pPrv, ctxSz);
|
ret = ippsRSA_InitPrivateKeyType2(pSz, qSz, key->pPrv, ctxSz);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
USER_DEBUG(("ippsRSA_InitPrivateKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_InitPrivateKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = ippsRSA_SetPrivateKeyType2(key->pipp, key->qipp, key->dPipp,
|
ret = ippsRSA_SetPrivateKeyType2(key->pipp, key->qipp, key->dPipp,
|
||||||
key->dQipp, key->uipp, key->pPrv);
|
key->dQipp, key->uipp, key->pPrv);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
USER_DEBUG(("ippsRSA_SetPrivateKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_SetPrivateKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -972,19 +978,21 @@ int wc_RsaPublicKeyDecode(const byte* input, word32* inOutIdx, RsaKey* key,
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
key->pPub = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_KEY);
|
key->pPub = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->pPub == NULL)
|
if (key->pPub == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
ret = ippsRSA_InitPublicKey(key->nSz, key->eSz, key->pPub, ctxSz);
|
ret = ippsRSA_InitPublicKey(key->nSz, key->eSz, key->pPub, ctxSz);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
USER_DEBUG(("ippsRSA_InitPublicKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_InitPublicKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = ippsRSA_SetPublicKey(key->n, key->e, key->pPub);
|
ret = ippsRSA_SetPublicKey(key->n, key->e, key->pPub);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
USER_DEBUG(("ippsRSA_SetPublicKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_SetPublicKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1011,7 +1019,7 @@ int wc_RsaPublicKeyDecodeRaw(const byte* n, word32 nSz, const byte* e,
|
|||||||
if (ret != ippStsNoErr)
|
if (ret != ippStsNoErr)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
key->n = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
key->n = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->n == NULL)
|
if (key->n == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1028,7 +1036,7 @@ int wc_RsaPublicKeyDecodeRaw(const byte* n, word32 nSz, const byte* e,
|
|||||||
if (ret != ippStsNoErr)
|
if (ret != ippStsNoErr)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
key->e = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
key->e = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->e == NULL)
|
if (key->e == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1053,19 +1061,21 @@ int wc_RsaPublicKeyDecodeRaw(const byte* n, word32 nSz, const byte* e,
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
key->pPub = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_KEY);
|
key->pPub = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->pPub == NULL)
|
if (key->pPub == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
ret = ippsRSA_InitPublicKey(nSz, eSz, key->pPub, ctxSz);
|
ret = ippsRSA_InitPublicKey(nSz, eSz, key->pPub, ctxSz);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
USER_DEBUG(("ippsRSA_InitPublicKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_InitPublicKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = ippsRSA_SetPublicKey(key->n,key->e, key->pPub);
|
ret = ippsRSA_SetPublicKey(key->n,key->e, key->pPub);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
USER_DEBUG(("ippsRSA_SetPublicKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_SetPublicKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1096,19 +1106,20 @@ int wc_RsaPublicEncrypt(const byte* in, word32 inLen, byte* out, word32 outLen,
|
|||||||
if (ret != ippStsNoErr)
|
if (ret != ippStsNoErr)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
scratchBuffer = XMALLOC(scratchSz*(sizeof(Ipp8u)), 0, DYNAMIC_TYPE_ARRAYS);
|
scratchBuffer = XMALLOC(scratchSz*(sizeof(Ipp8u)), 0,
|
||||||
|
DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (scratchBuffer == NULL)
|
if (scratchBuffer == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
ret = ippsRSAEncrypt_PKCSv15((Ipp8u*)in, inLen, NULL, (Ipp8u*)out,
|
ret = ippsRSAEncrypt_PKCSv15((Ipp8u*)in, inLen, NULL, (Ipp8u*)out,
|
||||||
key->pPub, scratchBuffer);
|
key->pPub, scratchBuffer);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
USER_DEBUG(("encrypt error of %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("encrypt error of %s\n", ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
|
|
||||||
(void)rng;
|
(void)rng;
|
||||||
return key->sz;
|
return key->sz;
|
||||||
@@ -1138,7 +1149,8 @@ int wc_RsaPrivateDecrypt(const byte* in, word32 inLen, byte* out, word32 outLen,
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
scratchBuffer = XMALLOC(scratchSz*(sizeof(Ipp8u)), 0, DYNAMIC_TYPE_ARRAYS);
|
scratchBuffer = XMALLOC(scratchSz*(sizeof(Ipp8u)), 0,
|
||||||
|
DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (scratchBuffer == NULL) {
|
if (scratchBuffer == NULL) {
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
@@ -1147,12 +1159,12 @@ int wc_RsaPrivateDecrypt(const byte* in, word32 inLen, byte* out, word32 outLen,
|
|||||||
ret = ippsRSADecrypt_PKCSv15((Ipp8u*)in, (Ipp8u*)out, &outSz, key->pPrv,
|
ret = ippsRSADecrypt_PKCSv15((Ipp8u*)in, (Ipp8u*)out, &outSz, key->pPrv,
|
||||||
scratchBuffer);
|
scratchBuffer);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
USER_DEBUG(("decrypt error of %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("decrypt error of %s\n", ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
|
|
||||||
return outSz;
|
return outSz;
|
||||||
}
|
}
|
||||||
@@ -1168,7 +1180,7 @@ int wc_RsaPrivateDecryptInline(byte* in, word32 inLen, byte** out, RsaKey* key)
|
|||||||
USER_DEBUG(("Entering wc_RsaPrivateDecryptInline\n"));
|
USER_DEBUG(("Entering wc_RsaPrivateDecryptInline\n"));
|
||||||
|
|
||||||
/* allocate a buffer for max decrypted text */
|
/* allocate a buffer for max decrypted text */
|
||||||
tmp = XMALLOC(key->sz, NULL, DYNAMIC_TYPE_ARRAYS);
|
tmp = XMALLOC(key->sz, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (tmp == NULL)
|
if (tmp == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1178,11 +1190,11 @@ int wc_RsaPrivateDecryptInline(byte* in, word32 inLen, byte** out, RsaKey* key)
|
|||||||
*out = in;
|
*out = in;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
XFREE(tmp, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(tmp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
XFREE(tmp, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(tmp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
USER_DEBUG(("\tExit wc_RsaPrivateDecryptInline\n"));
|
USER_DEBUG(("\tExit wc_RsaPrivateDecryptInline\n"));
|
||||||
|
|
||||||
return outSz;
|
return outSz;
|
||||||
@@ -1194,13 +1206,13 @@ static int FreeHelper(IppsBigNumState* pTxt, IppsBigNumState* cTxt,
|
|||||||
Ipp8u* scratchBuffer, void* pPub)
|
Ipp8u* scratchBuffer, void* pPub)
|
||||||
{
|
{
|
||||||
if (pTxt != NULL)
|
if (pTxt != NULL)
|
||||||
XFREE(pTxt, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(pTxt, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (cTxt != NULL)
|
if (cTxt != NULL)
|
||||||
XFREE(cTxt, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(cTxt, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (scratchBuffer != NULL)
|
if (scratchBuffer != NULL)
|
||||||
XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (pPub != NULL)
|
if (pPub != NULL)
|
||||||
XFREE(pPub, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(pPub, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1240,14 +1252,15 @@ int wc_RsaSSL_VerifyInline(byte* in, word32 inLen, byte** out, RsaKey* key)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
pPub = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_KEY);
|
pPub = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (pPub == NULL)
|
if (pPub == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
ret = ippsRSA_InitPrivateKeyType1(key->nSz, key->eSz, pPub, ctxSz);
|
ret = ippsRSA_InitPrivateKeyType1(key->nSz, key->eSz, pPub, ctxSz);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
|
FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
|
||||||
USER_DEBUG(("ippsRSA_InitPrivateKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_InitPrivateKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1255,7 +1268,8 @@ int wc_RsaSSL_VerifyInline(byte* in, word32 inLen, byte** out, RsaKey* key)
|
|||||||
ret = ippsRSA_SetPrivateKeyType1(key->n, key->e, pPub);
|
ret = ippsRSA_SetPrivateKeyType1(key->n, key->e, pPub);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
|
FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
|
||||||
USER_DEBUG(("ippsRSA_SetPrivateKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_SetPrivateKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1266,7 +1280,8 @@ int wc_RsaSSL_VerifyInline(byte* in, word32 inLen, byte** out, RsaKey* key)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
scratchBuffer = XMALLOC(scratchSz*(sizeof(Ipp8u)), 0, DYNAMIC_TYPE_ARRAYS);
|
scratchBuffer = XMALLOC(scratchSz*(sizeof(Ipp8u)), 0,
|
||||||
|
DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (scratchBuffer == NULL) {
|
if (scratchBuffer == NULL) {
|
||||||
FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
|
FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
@@ -1279,7 +1294,7 @@ int wc_RsaSSL_VerifyInline(byte* in, word32 inLen, byte** out, RsaKey* key)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
pTxt = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
pTxt = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (pTxt == NULL) {
|
if (pTxt == NULL) {
|
||||||
FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
|
FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
@@ -1304,7 +1319,7 @@ int wc_RsaSSL_VerifyInline(byte* in, word32 inLen, byte** out, RsaKey* key)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
cTxt = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
cTxt = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (cTxt == NULL) {
|
if (cTxt == NULL) {
|
||||||
FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
|
FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
@@ -1356,7 +1371,7 @@ int wc_RsaSSL_Verify(const byte* in, word32 inLen, byte* out, word32 outLen,
|
|||||||
if (out == NULL || in == NULL || key == NULL)
|
if (out == NULL || in == NULL || key == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
tmp = (byte*)XMALLOC(inLen, key->heap, DYNAMIC_TYPE_RSA);
|
tmp = (byte*)XMALLOC(inLen, key->heap, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (tmp == NULL) {
|
if (tmp == NULL) {
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
@@ -1366,7 +1381,7 @@ int wc_RsaSSL_Verify(const byte* in, word32 inLen, byte* out, word32 outLen,
|
|||||||
/* verify signature and test if output buffer is large enough */
|
/* verify signature and test if output buffer is large enough */
|
||||||
plainLen = wc_RsaSSL_VerifyInline(tmp, inLen, &pad, key);
|
plainLen = wc_RsaSSL_VerifyInline(tmp, inLen, &pad, key);
|
||||||
if (plainLen < 0) {
|
if (plainLen < 0) {
|
||||||
XFREE(tmp, NULL, DYNAMIC_TYPE_RSA);
|
XFREE(tmp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
return plainLen;
|
return plainLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1376,7 +1391,7 @@ int wc_RsaSSL_Verify(const byte* in, word32 inLen, byte* out, word32 outLen,
|
|||||||
XMEMCPY(out, pad, plainLen);
|
XMEMCPY(out, pad, plainLen);
|
||||||
|
|
||||||
ForceZero(tmp, inLen);
|
ForceZero(tmp, inLen);
|
||||||
XFREE(tmp, NULL, DYNAMIC_TYPE_RSA);
|
XFREE(tmp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
|
|
||||||
return plainLen;
|
return plainLen;
|
||||||
}
|
}
|
||||||
@@ -1407,7 +1422,7 @@ int wc_RsaSSL_Sign(const byte* in, word32 inLen, byte* out, word32 outLen,
|
|||||||
}
|
}
|
||||||
|
|
||||||
prvSz = ctxSz; /* used later to overright sensitive memory */
|
prvSz = ctxSz; /* used later to overright sensitive memory */
|
||||||
pPrv = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_KEY);
|
pPrv = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (pPrv == NULL) {
|
if (pPrv == NULL) {
|
||||||
USER_DEBUG(("memeory error assinging pPrv\n"));
|
USER_DEBUG(("memeory error assinging pPrv\n"));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
@@ -1416,14 +1431,16 @@ int wc_RsaSSL_Sign(const byte* in, word32 inLen, byte* out, word32 outLen,
|
|||||||
ret = ippsRSA_InitPublicKey(key->nSz, key->dSz, pPrv, ctxSz);
|
ret = ippsRSA_InitPublicKey(key->nSz, key->dSz, pPrv, ctxSz);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
FreeHelper(pTxt, cTxt, scratchBuffer, pPrv);
|
FreeHelper(pTxt, cTxt, scratchBuffer, pPrv);
|
||||||
USER_DEBUG(("ippsRSA_InitPrivateKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_InitPrivateKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = ippsRSA_SetPublicKey(key->n, key->dipp, pPrv);
|
ret = ippsRSA_SetPublicKey(key->n, key->dipp, pPrv);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
FreeHelper(pTxt, cTxt, scratchBuffer, pPrv);
|
FreeHelper(pTxt, cTxt, scratchBuffer, pPrv);
|
||||||
USER_DEBUG(("ippsRSA_SetPrivateKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_SetPrivateKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1436,7 +1453,8 @@ int wc_RsaSSL_Sign(const byte* in, word32 inLen, byte* out, word32 outLen,
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
scratchBuffer = XMALLOC(scratchSz*(sizeof(Ipp8u)), 0, DYNAMIC_TYPE_ARRAYS);
|
scratchBuffer = XMALLOC(scratchSz*(sizeof(Ipp8u)), 0,
|
||||||
|
DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (scratchBuffer == NULL) {
|
if (scratchBuffer == NULL) {
|
||||||
FreeHelper(pTxt, cTxt, scratchBuffer, pPrv);
|
FreeHelper(pTxt, cTxt, scratchBuffer, pPrv);
|
||||||
USER_DEBUG(("memory error assigning scratch buffer\n"));
|
USER_DEBUG(("memory error assigning scratch buffer\n"));
|
||||||
@@ -1456,7 +1474,7 @@ int wc_RsaSSL_Sign(const byte* in, word32 inLen, byte* out, word32 outLen,
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
pTxt = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
pTxt = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (pTxt == NULL) {
|
if (pTxt == NULL) {
|
||||||
FreeHelper(pTxt, cTxt, scratchBuffer, pPrv);
|
FreeHelper(pTxt, cTxt, scratchBuffer, pPrv);
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
@@ -1481,7 +1499,7 @@ int wc_RsaSSL_Sign(const byte* in, word32 inLen, byte* out, word32 outLen,
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
cTxt = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
cTxt = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (cTxt == NULL) {
|
if (cTxt == NULL) {
|
||||||
FreeHelper(pTxt, cTxt, scratchBuffer, pPrv);
|
FreeHelper(pTxt, cTxt, scratchBuffer, pPrv);
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
@@ -1624,7 +1642,7 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
rndParam = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_ARRAYS);
|
rndParam = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (rndParam == NULL)
|
if (rndParam == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1642,7 +1660,7 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
pPrime = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_ARRAYS);
|
pPrime = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (pPrime == NULL)
|
if (pPrime == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1668,7 +1686,7 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
}
|
}
|
||||||
|
|
||||||
key->prvSz = ctxSz; /* used when freeing private key */
|
key->prvSz = ctxSz; /* used when freeing private key */
|
||||||
key->pPrv = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_ARRAYS);
|
key->pPrv = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->pPrv == NULL)
|
if (key->pPrv == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1688,7 +1706,7 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
scratchBuffer = XMALLOC(scratchSz, 0, DYNAMIC_TYPE_ARRAYS);
|
scratchBuffer = XMALLOC(scratchSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (scratchBuffer == NULL)
|
if (scratchBuffer == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1698,7 +1716,7 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
if (ret != ippStsNoErr)
|
if (ret != ippStsNoErr)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
pSrcPublicExp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
pSrcPublicExp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (pSrcPublicExp == NULL)
|
if (pSrcPublicExp == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1714,7 +1732,7 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
if (ret != ippStsNoErr)
|
if (ret != ippStsNoErr)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
key->n = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
key->n = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->n == NULL)
|
if (key->n == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1728,7 +1746,7 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
if (ret != ippStsNoErr)
|
if (ret != ippStsNoErr)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
key->e = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
key->e = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->e == NULL)
|
if (key->e == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1741,7 +1759,7 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
if (ret != ippStsNoErr)
|
if (ret != ippStsNoErr)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
key->dipp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
key->dipp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->dipp == NULL)
|
if (key->dipp == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1789,19 +1807,21 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
key->pPub = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_KEY);
|
key->pPub = XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->pPub == NULL)
|
if (key->pPub == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
ret = ippsRSA_InitPublicKey(key->nSz, key->eSz, key->pPub, ctxSz);
|
ret = ippsRSA_InitPublicKey(key->nSz, key->eSz, key->pPub, ctxSz);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
USER_DEBUG(("ippsRSA_InitPublicKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_InitPublicKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = ippsRSA_SetPublicKey(key->n, key->e, key->pPub);
|
ret = ippsRSA_SetPublicKey(key->n, key->e, key->pPub);
|
||||||
if (ret != ippStsNoErr) {
|
if (ret != ippStsNoErr) {
|
||||||
USER_DEBUG(("ippsRSA_SetPublicKey error %s\n", ippGetStatusString(ret)));
|
USER_DEBUG(("ippsRSA_SetPublicKey error %s\n",
|
||||||
|
ippGetStatusString(ret)));
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1811,7 +1831,7 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
if (ret != ippStsNoErr)
|
if (ret != ippStsNoErr)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
key->pipp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
key->pipp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->pipp == NULL)
|
if (key->pipp == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1820,7 +1840,7 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
/* set up q BN for key */
|
/* set up q BN for key */
|
||||||
key->qipp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
key->qipp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->qipp == NULL)
|
if (key->qipp == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1829,7 +1849,7 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
/* set up dP BN for key */
|
/* set up dP BN for key */
|
||||||
key->dPipp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
key->dPipp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->dPipp == NULL)
|
if (key->dPipp == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1838,7 +1858,7 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
/* set up dQ BN for key */
|
/* set up dQ BN for key */
|
||||||
key->dQipp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
key->dQipp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->dQipp == NULL)
|
if (key->dQipp == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1847,7 +1867,7 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
/* set up u BN for key */
|
/* set up u BN for key */
|
||||||
key->uipp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_ARRAYS);
|
key->uipp = XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (key->uipp == NULL)
|
if (key->uipp == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
|
|
||||||
@@ -1865,10 +1885,10 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* clean up memory used */
|
/* clean up memory used */
|
||||||
XFREE(pSrcPublicExp, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(pSrcPublicExp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
XFREE(pPrime, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(pPrime, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
XFREE(rndParam, NULL, DYNAMIC_TYPE_ARRAYS);
|
XFREE(rndParam, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
|
|
||||||
(void)rng;
|
(void)rng;
|
||||||
|
|
||||||
@@ -2025,7 +2045,7 @@ static int SetRsaPublicKey(byte* output, RsaKey* key,
|
|||||||
|
|
||||||
/* n */
|
/* n */
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
n = (byte*)XMALLOC(MAX_RSA_INT_SZ, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
n = (byte*)XMALLOC(MAX_RSA_INT_SZ, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (n == NULL)
|
if (n == NULL)
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
#endif
|
#endif
|
||||||
@@ -2046,24 +2066,24 @@ static int SetRsaPublicKey(byte* output, RsaKey* key,
|
|||||||
nSz += rawLen;
|
nSz += rawLen;
|
||||||
else {
|
else {
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
XFREE(n, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
#endif
|
#endif
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
XFREE(n, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
#endif
|
#endif
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* e */
|
/* e */
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
e = (byte*)XMALLOC(MAX_RSA_E_SZ, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
e = (byte*)XMALLOC(MAX_RSA_E_SZ, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (e == NULL) {
|
if (e == NULL) {
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
XFREE(n, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
#endif
|
#endif
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
@@ -2085,16 +2105,16 @@ static int SetRsaPublicKey(byte* output, RsaKey* key,
|
|||||||
eSz += rawLen;
|
eSz += rawLen;
|
||||||
else {
|
else {
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
XFREE(n, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
XFREE(e, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
#endif
|
#endif
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
XFREE(n, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
XFREE(e, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
#endif
|
#endif
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
@@ -2104,8 +2124,8 @@ static int SetRsaPublicKey(byte* output, RsaKey* key,
|
|||||||
/* check output size */
|
/* check output size */
|
||||||
if ( (seqSz + nSz + eSz) > outLen) {
|
if ( (seqSz + nSz + eSz) > outLen) {
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
XFREE(n, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
XFREE(e, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
#endif
|
#endif
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
@@ -2116,10 +2136,10 @@ static int SetRsaPublicKey(byte* output, RsaKey* key,
|
|||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
byte* algo = NULL;
|
byte* algo = NULL;
|
||||||
|
|
||||||
algo = (byte*)XMALLOC(MAX_ALGO_SZ, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
algo = (byte*)XMALLOC(MAX_ALGO_SZ, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (algo == NULL) {
|
if (algo == NULL) {
|
||||||
XFREE(n, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
XFREE(e, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
@@ -2135,9 +2155,9 @@ static int SetRsaPublicKey(byte* output, RsaKey* key,
|
|||||||
/* check output size */
|
/* check output size */
|
||||||
if ( (idx + algoSz + 1 + lenSz + seqSz + nSz + eSz) > outLen) {
|
if ( (idx + algoSz + 1 + lenSz + seqSz + nSz + eSz) > outLen) {
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
XFREE(n, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
XFREE(e, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
XFREE(algo, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(algo, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return USER_CRYPTO_ERROR;
|
return USER_CRYPTO_ERROR;
|
||||||
@@ -2152,7 +2172,7 @@ static int SetRsaPublicKey(byte* output, RsaKey* key,
|
|||||||
XMEMCPY(output + idx, len, lenSz);
|
XMEMCPY(output + idx, len, lenSz);
|
||||||
idx += lenSz;
|
idx += lenSz;
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
XFREE(algo, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(algo, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -2169,8 +2189,8 @@ static int SetRsaPublicKey(byte* output, RsaKey* key,
|
|||||||
idx += eSz;
|
idx += eSz;
|
||||||
|
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
XFREE(n, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
XFREE(e, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return idx;
|
return idx;
|
||||||
@@ -2208,7 +2228,7 @@ static INLINE void FreeTmpRsas(byte** tmps, void* heap)
|
|||||||
(void)heap;
|
(void)heap;
|
||||||
|
|
||||||
for (i = 0; i < RSA_INTS; i++)
|
for (i = 0; i < RSA_INTS; i++)
|
||||||
XFREE(tmps[i], heap, DYNAMIC_TYPE_RSA);
|
XFREE(tmps[i], heap, DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2252,7 +2272,7 @@ int wc_RsaKeyToDer(RsaKey* key, byte* output, word32 inLen)
|
|||||||
rawLen += lbit;
|
rawLen += lbit;
|
||||||
|
|
||||||
tmps[i] = (byte*)XMALLOC(rawLen + MAX_SEQ_SZ, key->heap,
|
tmps[i] = (byte*)XMALLOC(rawLen + MAX_SEQ_SZ, key->heap,
|
||||||
DYNAMIC_TYPE_RSA);
|
DYNAMIC_TYPE_USER_CRYPTO);
|
||||||
if (tmps[i] == NULL) {
|
if (tmps[i] == NULL) {
|
||||||
ret = USER_CRYPTO_ERROR;
|
ret = USER_CRYPTO_ERROR;
|
||||||
break;
|
break;
|
||||||
|
@@ -286,7 +286,8 @@
|
|||||||
DYNAMIC_TYPE_SIGNATURE = 45,
|
DYNAMIC_TYPE_SIGNATURE = 45,
|
||||||
DYNAMIC_TYPE_HASHES = 46,
|
DYNAMIC_TYPE_HASHES = 46,
|
||||||
DYNAMIC_TYPE_SRP = 47,
|
DYNAMIC_TYPE_SRP = 47,
|
||||||
DYNAMIC_TYPE_COOKIE_PWD = 48
|
DYNAMIC_TYPE_COOKIE_PWD = 48,
|
||||||
|
DYNAMIC_TYPE_USER_CRYPTO = 49
|
||||||
};
|
};
|
||||||
|
|
||||||
/* max error buffer string size */
|
/* max error buffer string size */
|
||||||
|
Reference in New Issue
Block a user