diff options
Diffstat (limited to 'src/lib/libcrypto/evp/evp_pbe.c')
| -rw-r--r-- | src/lib/libcrypto/evp/evp_pbe.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/lib/libcrypto/evp/evp_pbe.c b/src/lib/libcrypto/evp/evp_pbe.c index 353c3ad667..224a422b12 100644 --- a/src/lib/libcrypto/evp/evp_pbe.c +++ b/src/lib/libcrypto/evp/evp_pbe.c | |||
| @@ -92,7 +92,8 @@ int EVP_PBE_CipherInit (ASN1_OBJECT *pbe_obj, const char *pass, int passlen, | |||
| 92 | ERR_add_error_data(2, "TYPE=", obj_tmp); | 92 | ERR_add_error_data(2, "TYPE=", obj_tmp); |
| 93 | return 0; | 93 | return 0; |
| 94 | } | 94 | } |
| 95 | if (passlen == -1) passlen = strlen(pass); | 95 | if(!pass) passlen = 0; |
| 96 | else if (passlen == -1) passlen = strlen(pass); | ||
| 96 | pbetmp = (EVP_PBE_CTL *)sk_value (pbe_algs, i); | 97 | pbetmp = (EVP_PBE_CTL *)sk_value (pbe_algs, i); |
| 97 | i = (*pbetmp->keygen)(ctx, pass, passlen, param, pbetmp->cipher, | 98 | i = (*pbetmp->keygen)(ctx, pass, passlen, param, pbetmp->cipher, |
| 98 | pbetmp->md, en_de); | 99 | pbetmp->md, en_de); |
| @@ -103,8 +104,9 @@ int EVP_PBE_CipherInit (ASN1_OBJECT *pbe_obj, const char *pass, int passlen, | |||
| 103 | return 1; | 104 | return 1; |
| 104 | } | 105 | } |
| 105 | 106 | ||
| 106 | static int pbe_cmp (EVP_PBE_CTL **pbe1, EVP_PBE_CTL **pbe2) | 107 | static int pbe_cmp(const char * const *a, const char * const *b) |
| 107 | { | 108 | { |
| 109 | EVP_PBE_CTL **pbe1 = (EVP_PBE_CTL **) a, **pbe2 = (EVP_PBE_CTL **)b; | ||
| 108 | return ((*pbe1)->pbe_nid - (*pbe2)->pbe_nid); | 110 | return ((*pbe1)->pbe_nid - (*pbe2)->pbe_nid); |
| 109 | } | 111 | } |
| 110 | 112 | ||
| @@ -114,8 +116,8 @@ int EVP_PBE_alg_add (int nid, EVP_CIPHER *cipher, EVP_MD *md, | |||
| 114 | EVP_PBE_KEYGEN *keygen) | 116 | EVP_PBE_KEYGEN *keygen) |
| 115 | { | 117 | { |
| 116 | EVP_PBE_CTL *pbe_tmp; | 118 | EVP_PBE_CTL *pbe_tmp; |
| 117 | if (!pbe_algs) pbe_algs = sk_new (pbe_cmp); | 119 | if (!pbe_algs) pbe_algs = sk_new(pbe_cmp); |
| 118 | if (!(pbe_tmp = (EVP_PBE_CTL*) Malloc (sizeof(EVP_PBE_CTL)))) { | 120 | if (!(pbe_tmp = (EVP_PBE_CTL*) OPENSSL_malloc (sizeof(EVP_PBE_CTL)))) { |
| 119 | EVPerr(EVP_F_EVP_PBE_ALG_ADD,ERR_R_MALLOC_FAILURE); | 121 | EVPerr(EVP_F_EVP_PBE_ALG_ADD,ERR_R_MALLOC_FAILURE); |
| 120 | return 0; | 122 | return 0; |
| 121 | } | 123 | } |
| @@ -129,6 +131,6 @@ int EVP_PBE_alg_add (int nid, EVP_CIPHER *cipher, EVP_MD *md, | |||
| 129 | 131 | ||
| 130 | void EVP_PBE_cleanup(void) | 132 | void EVP_PBE_cleanup(void) |
| 131 | { | 133 | { |
| 132 | sk_pop_free(pbe_algs, FreeFunc); | 134 | sk_pop_free(pbe_algs, OPENSSL_freeFunc); |
| 133 | pbe_algs = NULL; | 135 | pbe_algs = NULL; |
| 134 | } | 136 | } |
