From: Hubert Kario Date: Wed, 26 Jul 2017 14:27:06 +0000 (+0200) Subject: handle scrypt PBKDF in PKCS#12 files info X-Git-Tag: OpenSSL_1_1_1-pre1~971 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=75f163d33575bac299258cea58e1da80fba01769;ds=sidebyside handle scrypt PBKDF in PKCS#12 files info Print the parameters for scrypt PBKDF when used in PKCS#12 files. Reviewed-by: Richard Levitte Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/1334) --- diff --git a/apps/pkcs12.c b/apps/pkcs12.c index 122dcab10a..e8c1c87cb3 100644 --- a/apps/pkcs12.c +++ b/apps/pkcs12.c @@ -819,6 +819,22 @@ static int alg_print(const X509_ALGOR *alg) BIO_printf(bio_err, ", Iteration %ld, PRF %s", ASN1_INTEGER_get(kdf->iter), OBJ_nid2sn(prfnid)); PBKDF2PARAM_free(kdf); + } else if (pbenid == NID_id_scrypt) { + SCRYPT_PARAMS *kdf = NULL; + + if (aparamtype == V_ASN1_SEQUENCE) + kdf = ASN1_item_unpack(aparam, ASN1_ITEM_rptr(SCRYPT_PARAMS)); + if (kdf == NULL) { + BIO_puts(bio_err, ", "); + goto done; + } + BIO_printf(bio_err, ", Salt length: %d, Cost(N): %ld, " + "Block size(r): %ld, Paralelizm(p): %ld", + ASN1_STRING_length(kdf->salt), + ASN1_INTEGER_get(kdf->costParameter), + ASN1_INTEGER_get(kdf->blockSize), + ASN1_INTEGER_get(kdf->parallelizationParameter)); + SCRYPT_PARAMS_free(kdf); } PBE2PARAM_free(pbe2); } else {