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.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/lib/libssl/src/crypto/pkcs12/p12_decr.c b/src/lib/libssl/src/crypto/pkcs12/p12_decr.c
index 74c961a92b..b5684a83ba 100644
--- a/src/lib/libssl/src/crypto/pkcs12/p12_decr.c
+++ b/src/lib/libssl/src/crypto/pkcs12/p12_decr.c
@@ -113,14 +113,13 @@ unsigned char * PKCS12_pbe_crypt(X509_ALGOR *algor, const char *pass,
113void * PKCS12_item_decrypt_d2i(X509_ALGOR *algor, const ASN1_ITEM *it, 113void * PKCS12_item_decrypt_d2i(X509_ALGOR *algor, const ASN1_ITEM *it,
114 const char *pass, int passlen, ASN1_OCTET_STRING *oct, int zbuf) 114 const char *pass, int passlen, ASN1_OCTET_STRING *oct, int zbuf)
115{ 115{
116 unsigned char *out; 116 unsigned char *out, *p;
117 const unsigned char *p;
118 void *ret; 117 void *ret;
119 int outlen; 118 int outlen;
120 119
121 if (!PKCS12_pbe_crypt(algor, pass, passlen, oct->data, oct->length, 120 if (!PKCS12_pbe_crypt(algor, pass, passlen, oct->data, oct->length,
122 &out, &outlen, 0)) { 121 &out, &outlen, 0)) {
123 PKCS12err(PKCS12_F_PKCS12_ITEM_DECRYPT_D2I,PKCS12_R_PKCS12_PBE_CRYPT_ERROR); 122 PKCS12err(PKCS12_F_PKCS12_DECRYPT_D2I,PKCS12_R_PKCS12_PBE_CRYPT_ERROR);
124 return NULL; 123 return NULL;
125 } 124 }
126 p = out; 125 p = out;
@@ -138,7 +137,7 @@ void * PKCS12_item_decrypt_d2i(X509_ALGOR *algor, const ASN1_ITEM *it,
138#endif 137#endif
139 ret = ASN1_item_d2i(NULL, &p, outlen, it); 138 ret = ASN1_item_d2i(NULL, &p, outlen, it);
140 if (zbuf) OPENSSL_cleanse(out, outlen); 139 if (zbuf) OPENSSL_cleanse(out, outlen);
141 if(!ret) PKCS12err(PKCS12_F_PKCS12_ITEM_DECRYPT_D2I,PKCS12_R_DECODE_ERROR); 140 if(!ret) PKCS12err(PKCS12_F_PKCS12_DECRYPT_D2I,PKCS12_R_DECODE_ERROR);
142 OPENSSL_free(out); 141 OPENSSL_free(out);
143 return ret; 142 return ret;
144} 143}
@@ -155,17 +154,17 @@ ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, const ASN1_ITEM *i
155 unsigned char *in = NULL; 154 unsigned char *in = NULL;
156 int inlen; 155 int inlen;
157 if (!(oct = M_ASN1_OCTET_STRING_new ())) { 156 if (!(oct = M_ASN1_OCTET_STRING_new ())) {
158 PKCS12err(PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT,ERR_R_MALLOC_FAILURE); 157 PKCS12err(PKCS12_F_PKCS12_I2D_ENCRYPT,ERR_R_MALLOC_FAILURE);
159 return NULL; 158 return NULL;
160 } 159 }
161 inlen = ASN1_item_i2d(obj, &in, it); 160 inlen = ASN1_item_i2d(obj, &in, it);
162 if (!in) { 161 if (!in) {
163 PKCS12err(PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT,PKCS12_R_ENCODE_ERROR); 162 PKCS12err(PKCS12_F_PKCS12_I2D_ENCRYPT,PKCS12_R_ENCODE_ERROR);
164 return NULL; 163 return NULL;
165 } 164 }
166 if (!PKCS12_pbe_crypt(algor, pass, passlen, in, inlen, &oct->data, 165 if (!PKCS12_pbe_crypt(algor, pass, passlen, in, inlen, &oct->data,
167 &oct->length, 1)) { 166 &oct->length, 1)) {
168 PKCS12err(PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT,PKCS12_R_ENCRYPT_ERROR); 167 PKCS12err(PKCS12_F_PKCS12_I2D_ENCRYPT,PKCS12_R_ENCRYPT_ERROR);
169 OPENSSL_free(in); 168 OPENSSL_free(in);
170 return NULL; 169 return NULL;
171 } 170 }