summaryrefslogtreecommitdiff
path: root/crypto/openssl/crypto/asn1/p5_pbe.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/openssl/crypto/asn1/p5_pbe.c')
-rw-r--r--crypto/openssl/crypto/asn1/p5_pbe.c13
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);