forked from wolfSSL/wolfssl
fix for PKCS12 create with small stack
This commit is contained in:
@ -2318,13 +2318,12 @@ int UnTraditionalEnc(byte* key, word32 keySz, byte* out, word32* outSz,
|
|||||||
|
|
||||||
if (salt == NULL || saltSz <= 0) {
|
if (salt == NULL || saltSz <= 0) {
|
||||||
saltSz = 8;
|
saltSz = 8;
|
||||||
salt = saltTmp;
|
|
||||||
|
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
saltTmp = (byte*)XMALLOC(saltSz, heap, DYNAMIC_TYPE_TMP_BUFFER);
|
saltTmp = (byte*)XMALLOC(saltSz, heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
if (saltTmp == NULL)
|
if (saltTmp == NULL)
|
||||||
return MEMORY_E;
|
return MEMORY_E;
|
||||||
#endif
|
#endif
|
||||||
|
salt = saltTmp;
|
||||||
|
|
||||||
if ((ret = wc_RNG_GenerateBlock(rng, saltTmp, saltSz)) != 0) {
|
if ((ret = wc_RNG_GenerateBlock(rng, saltTmp, saltSz)) != 0) {
|
||||||
WOLFSSL_MSG("Error generating random salt");
|
WOLFSSL_MSG("Error generating random salt");
|
||||||
@ -2344,7 +2343,7 @@ int UnTraditionalEnc(byte* key, word32 keySz, byte* out, word32* outSz,
|
|||||||
out[inOutIdx++] = ASN_OCTET_STRING; sz++;
|
out[inOutIdx++] = ASN_OCTET_STRING; sz++;
|
||||||
tmpSz = SetLength(saltSz, out + inOutIdx);
|
tmpSz = SetLength(saltSz, out + inOutIdx);
|
||||||
inOutIdx += tmpSz; sz += tmpSz;
|
inOutIdx += tmpSz; sz += tmpSz;
|
||||||
XMEMCPY(&out[inOutIdx], salt, saltSz);
|
XMEMCPY(out + inOutIdx, salt, saltSz);
|
||||||
inOutIdx += saltSz; sz += saltSz;
|
inOutIdx += saltSz; sz += saltSz;
|
||||||
|
|
||||||
/* place itteration count in buffer */
|
/* place itteration count in buffer */
|
||||||
@ -2690,13 +2689,12 @@ int EncryptContent(byte* input, word32 inputSz, byte* out, word32* outSz,
|
|||||||
/* create random salt if one not provided */
|
/* create random salt if one not provided */
|
||||||
if (salt == NULL || saltSz <= 0) {
|
if (salt == NULL || saltSz <= 0) {
|
||||||
saltSz = 8;
|
saltSz = 8;
|
||||||
salt = saltTmp;
|
|
||||||
|
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
saltTmp = (byte*)XMALLOC(saltSz, heap, DYNAMIC_TYPE_TMP_BUFFER);
|
saltTmp = (byte*)XMALLOC(saltSz, heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
if (saltTmp == NULL)
|
if (saltTmp == NULL)
|
||||||
return MEMORY_E;
|
return MEMORY_E;
|
||||||
#endif
|
#endif
|
||||||
|
salt = saltTmp;
|
||||||
|
|
||||||
if ((ret = wc_RNG_GenerateBlock(rng, saltTmp, saltSz)) != 0) {
|
if ((ret = wc_RNG_GenerateBlock(rng, saltTmp, saltSz)) != 0) {
|
||||||
WOLFSSL_MSG("Error generating random salt");
|
WOLFSSL_MSG("Error generating random salt");
|
||||||
|
Reference in New Issue
Block a user