aboutsummaryrefslogtreecommitdiff
path: root/crypto/evp/p5_crpt.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2015-03-28 15:10:54 +0000
committerDr. Stephen Henson <steve@openssl.org>2015-03-30 22:01:31 +0100
commite93c8748ab40d876285147e3112c7a520d68880e (patch)
tree189c788dcf2e364274cfd87c6b7c883836ac5bc2 /crypto/evp/p5_crpt.c
parent22f5bd3dd2a660f6f50ef86de78985b995c63a85 (diff)
downloadopenssl-e93c8748ab40d876285147e3112c7a520d68880e.zip
openssl-e93c8748ab40d876285147e3112c7a520d68880e.tar.gz
openssl-e93c8748ab40d876285147e3112c7a520d68880e.tar.bz2
Remove duplicate code.
Update code to use ASN1_TYPE_pack_sequence and ASN1_TYPE_unpack_sequence instead of performing the same operation manually. Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'crypto/evp/p5_crpt.c')
-rw-r--r--crypto/evp/p5_crpt.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/crypto/evp/p5_crpt.c b/crypto/evp/p5_crpt.c
index d06ab90..921006c 100644
--- a/crypto/evp/p5_crpt.c
+++ b/crypto/evp/p5_crpt.c
@@ -82,7 +82,6 @@ int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *cctx, const char *pass, int passlen,
PBEPARAM *pbe;
int saltlen, iter;
unsigned char *salt;
- const unsigned char *pbuf;
int mdsize;
int rv = 0;
EVP_MD_CTX_init(&ctx);
@@ -94,8 +93,8 @@ int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *cctx, const char *pass, int passlen,
return 0;
}
- pbuf = param->value.sequence->data;
- if (!(pbe = d2i_PBEPARAM(NULL, &pbuf, param->value.sequence->length))) {
+ pbe = ASN1_TYPE_unpack_sequence(ASN1_ITEM_rptr(PBEPARAM), param);
+ if (pbe == NULL) {
EVPerr(EVP_F_PKCS5_PBE_KEYIVGEN, EVP_R_DECODE_ERROR);
return 0;
}