diff options
Diffstat (limited to 'crypto/openssl/crypto/asn1/p5_pbe.c')
-rw-r--r-- | crypto/openssl/crypto/asn1/p5_pbe.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/crypto/openssl/crypto/asn1/p5_pbe.c b/crypto/openssl/crypto/asn1/p5_pbe.c index b831836e7b08..a147ac329536 100644 --- a/crypto/openssl/crypto/asn1/p5_pbe.c +++ b/crypto/openssl/crypto/asn1/p5_pbe.c @@ -82,8 +82,8 @@ PBEPARAM *PBEPARAM_new(void) PBEPARAM *ret=NULL; ASN1_CTX c; M_ASN1_New_Malloc(ret, PBEPARAM); - M_ASN1_New(ret->iter,ASN1_INTEGER_new); - M_ASN1_New(ret->salt,ASN1_OCTET_STRING_new); + M_ASN1_New(ret->iter,M_ASN1_INTEGER_new); + M_ASN1_New(ret->salt,M_ASN1_OCTET_STRING_new); return (ret); M_ASN1_New_Error(ASN1_F_PBEPARAM_NEW); } @@ -101,9 +101,9 @@ PBEPARAM *d2i_PBEPARAM(PBEPARAM **a, unsigned char **pp, long length) void PBEPARAM_free (PBEPARAM *a) { if(a==NULL) return; - ASN1_OCTET_STRING_free(a->salt); - ASN1_INTEGER_free (a->iter); - Free ((char *)a); + M_ASN1_OCTET_STRING_free(a->salt); + M_ASN1_INTEGER_free (a->iter); + Free (a); } /* Return an algorithm identifier for a PKCS#5 PBE algorithm */ @@ -129,7 +129,8 @@ X509_ALGOR *PKCS5_pbe_set(int alg, int iter, unsigned char *salt, } pbe->salt->length = saltlen; if (salt) memcpy (pbe->salt->data, salt, saltlen); - else RAND_bytes (pbe->salt->data, saltlen); + else if (RAND_pseudo_bytes (pbe->salt->data, saltlen) < 0) + return NULL; if (!(astype = ASN1_TYPE_new())) { ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE); |