mirror of
https://github.com/openssl/openssl.git
synced 2025-04-06 20:20:50 +08:00
Fix libctx passing for CMS PWRI use
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/26937)
This commit is contained in:
parent
7e431da4d8
commit
5045712d3d
@ -168,7 +168,8 @@ CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms,
|
||||
|
||||
/* Setup PBE algorithm */
|
||||
|
||||
pwri->keyDerivationAlgorithm = PKCS5_pbkdf2_set(iter, NULL, 0, -1, -1);
|
||||
pwri->keyDerivationAlgorithm = PKCS5_pbkdf2_set_ex(iter, NULL, 0, -1, -1,
|
||||
cms_ctx->libctx);
|
||||
|
||||
if (pwri->keyDerivationAlgorithm == NULL)
|
||||
goto err;
|
||||
@ -368,9 +369,10 @@ int ossl_cms_RecipientInfo_pwri_crypt(const CMS_ContentInfo *cms,
|
||||
|
||||
/* Finish password based key derivation to setup key in "ctx" */
|
||||
|
||||
if (EVP_PBE_CipherInit(algtmp->algorithm,
|
||||
(char *)pwri->pass, pwri->passlen,
|
||||
algtmp->parameter, kekctx, en_de) < 0) {
|
||||
if (EVP_PBE_CipherInit_ex(algtmp->algorithm,
|
||||
(char *)pwri->pass, pwri->passlen,
|
||||
algtmp->parameter, kekctx, en_de,
|
||||
cms_ctx->libctx, cms_ctx->propq) < 0) {
|
||||
ERR_raise(ERR_LIB_CMS, ERR_R_EVP_LIB);
|
||||
goto err;
|
||||
}
|
||||
|
@ -40,7 +40,8 @@ static const EVP_PBE_CTL builtin_pbe[] = {
|
||||
{EVP_PBE_TYPE_OUTER, NID_pbeWithSHA1AndRC2_CBC,
|
||||
NID_rc2_64_cbc, NID_sha1, PKCS5_PBE_keyivgen, PKCS5_PBE_keyivgen_ex},
|
||||
|
||||
{EVP_PBE_TYPE_OUTER, NID_id_pbkdf2, -1, -1, PKCS5_v2_PBKDF2_keyivgen},
|
||||
{EVP_PBE_TYPE_OUTER, NID_id_pbkdf2, -1, -1, PKCS5_v2_PBKDF2_keyivgen,
|
||||
PKCS5_v2_PBKDF2_keyivgen_ex},
|
||||
|
||||
{EVP_PBE_TYPE_OUTER, NID_pbe_WithSHA1And128BitRC4,
|
||||
NID_rc4, NID_sha1, PKCS12_PBE_keyivgen, &PKCS12_PBE_keyivgen_ex},
|
||||
|
@ -354,6 +354,16 @@ my @smime_cms_tests = (
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "enveloped content test streaming PEM format, AES-128-CBC cipher, password",
|
||||
[ "{cmd1}", @prov, "-encrypt", "-in", $smcont, "-outform", "PEM", "-aes128",
|
||||
"-stream", "-out", "{output}.cms",
|
||||
"-pwri_password", "test" ],
|
||||
[ "{cmd2}", @prov, "-decrypt", "-in", "{output}.cms", "-out", "{output}.txt",
|
||||
"-inform", "PEM",
|
||||
"-pwri_password", "test" ],
|
||||
\&final_compare
|
||||
],
|
||||
|
||||
[ "data content test streaming PEM format",
|
||||
[ "{cmd1}", @prov, "-data_create", "-in", $smcont, "-outform", "PEM",
|
||||
"-nodetach", "-stream", "-out", "{output}.cms" ],
|
||||
|
Loading…
x
Reference in New Issue
Block a user