summaryrefslogtreecommitdiffstats
path: root/crypto/evp
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2015-10-12 21:14:04 +0100
committerDr. Stephen Henson <steve@openssl.org>2015-10-13 23:02:44 +0100
commita20d9422cf7a516cd576be8f91fe90738459ef42 (patch)
tree785ac9e8fef0a7323731758230077d17b8485414 /crypto/evp
parentbf9d61d1abfc4d36562aa799cd9dc59c7bb46e57 (diff)
RFC5753 compliance.
RFC5753 requires that we omit parameters for AES key wrap and set them to NULL for 3DES wrap. OpenSSL decrypt uses the received algorithm parameters so can transparently handle either form. Reviewed-by: Andy Polyakov <appro@openssl.org> (cherry picked from commit 4ec36aff2a3c221b640dafa56ac838312e6724f4)
Diffstat (limited to 'crypto/evp')
-rw-r--r--crypto/evp/evp_lib.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/evp/evp_lib.c b/crypto/evp/evp_lib.c
index d2c9ae4d59..7e0bab90d4 100644
--- a/crypto/evp/evp_lib.c
+++ b/crypto/evp/evp_lib.c
@@ -74,7 +74,8 @@ int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
else if (c->cipher->flags & EVP_CIPH_FLAG_DEFAULT_ASN1) {
switch (EVP_CIPHER_CTX_mode(c)) {
case EVP_CIPH_WRAP_MODE:
- ASN1_TYPE_set(type, V_ASN1_NULL, NULL);
+ if (EVP_CIPHER_CTX_nid(c) == NID_id_smime_alg_CMS3DESwrap)
+ ASN1_TYPE_set(type, V_ASN1_NULL, NULL);
ret = 1;
break;