summaryrefslogtreecommitdiff
path: root/src/lib/libssl/src/crypto/pkcs12/p12_decr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/src/crypto/pkcs12/p12_decr.c')
-rw-r--r--src/lib/libssl/src/crypto/pkcs12/p12_decr.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/lib/libssl/src/crypto/pkcs12/p12_decr.c b/src/lib/libssl/src/crypto/pkcs12/p12_decr.c
index 4be44eac50..8cd7e2f414 100644
--- a/src/lib/libssl/src/crypto/pkcs12/p12_decr.c
+++ b/src/lib/libssl/src/crypto/pkcs12/p12_decr.c
@@ -65,7 +65,7 @@
65 65
66 66
67/* Encrypt/Decrypt a buffer based on password and algor, result in a 67/* Encrypt/Decrypt a buffer based on password and algor, result in a
68 * Malloc'ed buffer 68 * OPENSSL_malloc'ed buffer
69 */ 69 */
70 70
71unsigned char * PKCS12_pbe_crypt (X509_ALGOR *algor, const char *pass, 71unsigned char * PKCS12_pbe_crypt (X509_ALGOR *algor, const char *pass,
@@ -83,7 +83,7 @@ unsigned char * PKCS12_pbe_crypt (X509_ALGOR *algor, const char *pass,
83 return NULL; 83 return NULL;
84 } 84 }
85 85
86 if(!(out = Malloc (inlen + EVP_CIPHER_CTX_block_size(&ctx)))) { 86 if(!(out = OPENSSL_malloc (inlen + EVP_CIPHER_CTX_block_size(&ctx)))) {
87 PKCS12err(PKCS12_F_PKCS12_PBE_CRYPT,ERR_R_MALLOC_FAILURE); 87 PKCS12err(PKCS12_F_PKCS12_PBE_CRYPT,ERR_R_MALLOC_FAILURE);
88 return NULL; 88 return NULL;
89 } 89 }
@@ -91,7 +91,7 @@ unsigned char * PKCS12_pbe_crypt (X509_ALGOR *algor, const char *pass,
91 EVP_CipherUpdate (&ctx, out, &i, in, inlen); 91 EVP_CipherUpdate (&ctx, out, &i, in, inlen);
92 outlen = i; 92 outlen = i;
93 if(!EVP_CipherFinal (&ctx, out + i, &i)) { 93 if(!EVP_CipherFinal (&ctx, out + i, &i)) {
94 Free (out); 94 OPENSSL_free (out);
95 PKCS12err(PKCS12_F_PKCS12_PBE_CRYPT,PKCS12_R_PKCS12_CIPHERFINAL_ERROR); 95 PKCS12err(PKCS12_F_PKCS12_PBE_CRYPT,PKCS12_R_PKCS12_CIPHERFINAL_ERROR);
96 return NULL; 96 return NULL;
97 } 97 }
@@ -109,7 +109,7 @@ unsigned char * PKCS12_pbe_crypt (X509_ALGOR *algor, const char *pass,
109 */ 109 */
110 110
111char * PKCS12_decrypt_d2i (X509_ALGOR *algor, char * (*d2i)(), 111char * PKCS12_decrypt_d2i (X509_ALGOR *algor, char * (*d2i)(),
112 void (*free_func)(), const char *pass, int passlen, 112 void (*free_func)(void *), const char *pass, int passlen,
113 ASN1_OCTET_STRING *oct, int seq) 113 ASN1_OCTET_STRING *oct, int seq)
114{ 114{
115 unsigned char *out, *p; 115 unsigned char *out, *p;
@@ -139,7 +139,7 @@ char * PKCS12_decrypt_d2i (X509_ALGOR *algor, char * (*d2i)(),
139 else ret = d2i(NULL, &p, outlen); 139 else ret = d2i(NULL, &p, outlen);
140 if (seq & 2) memset(out, 0, outlen); 140 if (seq & 2) memset(out, 0, outlen);
141 if(!ret) PKCS12err(PKCS12_F_PKCS12_DECRYPT_D2I,PKCS12_R_DECODE_ERROR); 141 if(!ret) PKCS12err(PKCS12_F_PKCS12_DECRYPT_D2I,PKCS12_R_DECODE_ERROR);
142 Free (out); 142 OPENSSL_free (out);
143 return ret; 143 return ret;
144} 144}
145 145
@@ -166,7 +166,7 @@ ASN1_OCTET_STRING *PKCS12_i2d_encrypt (X509_ALGOR *algor, int (*i2d)(),
166 PKCS12err(PKCS12_F_PKCS12_I2D_ENCRYPT,PKCS12_R_ENCODE_ERROR); 166 PKCS12err(PKCS12_F_PKCS12_I2D_ENCRYPT,PKCS12_R_ENCODE_ERROR);
167 return NULL; 167 return NULL;
168 } 168 }
169 if (!(in = Malloc (inlen))) { 169 if (!(in = OPENSSL_malloc (inlen))) {
170 PKCS12err(PKCS12_F_PKCS12_I2D_ENCRYPT,ERR_R_MALLOC_FAILURE); 170 PKCS12err(PKCS12_F_PKCS12_I2D_ENCRYPT,ERR_R_MALLOC_FAILURE);
171 return NULL; 171 return NULL;
172 } 172 }
@@ -177,9 +177,11 @@ ASN1_OCTET_STRING *PKCS12_i2d_encrypt (X509_ALGOR *algor, int (*i2d)(),
177 if (!PKCS12_pbe_crypt (algor, pass, passlen, in, inlen, &oct->data, 177 if (!PKCS12_pbe_crypt (algor, pass, passlen, in, inlen, &oct->data,
178 &oct->length, 1)) { 178 &oct->length, 1)) {
179 PKCS12err(PKCS12_F_PKCS12_I2D_ENCRYPT,PKCS12_R_ENCRYPT_ERROR); 179 PKCS12err(PKCS12_F_PKCS12_I2D_ENCRYPT,PKCS12_R_ENCRYPT_ERROR);
180 Free(in); 180 OPENSSL_free(in);
181 return NULL; 181 return NULL;
182 } 182 }
183 Free (in); 183 OPENSSL_free (in);
184 return oct; 184 return oct;
185} 185}
186
187IMPLEMENT_PKCS12_STACK_OF(PKCS7)