diff options
author | 2015-02-11 04:05:14 +0000 | |
---|---|---|
committer | 2015-02-11 04:05:14 +0000 | |
commit | 7d5ac8b869fdc3d54946f92dbcdcb56c785984f9 (patch) | |
tree | 25700ed2844031279785864b3793be34a5498997 /lib/libcrypto/rsa/rsa_pmeth.c | |
parent | initialize a variable in case "goto done" makes us compare it (diff) | |
download | wireguard-openbsd-7d5ac8b869fdc3d54946f92dbcdcb56c785984f9.tar.xz wireguard-openbsd-7d5ac8b869fdc3d54946f92dbcdcb56c785984f9.zip |
Guenther has plans for OPENSSL_NO_CMS, so revert this for the moment.
Diffstat (limited to 'lib/libcrypto/rsa/rsa_pmeth.c')
-rw-r--r-- | lib/libcrypto/rsa/rsa_pmeth.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/lib/libcrypto/rsa/rsa_pmeth.c b/lib/libcrypto/rsa/rsa_pmeth.c index 6d38a7c923c..09166e105b7 100644 --- a/lib/libcrypto/rsa/rsa_pmeth.c +++ b/lib/libcrypto/rsa/rsa_pmeth.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rsa_pmeth.c,v 1.15 2015/02/11 03:55:42 beck Exp $ */ +/* $OpenBSD: rsa_pmeth.c,v 1.16 2015/02/11 04:05:14 beck Exp $ */ /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL * project 2006. */ @@ -69,6 +69,9 @@ #include <openssl/rsa.h> #include <openssl/x509.h> +#ifndef OPENSSL_NO_CMS +#include <openssl/cms.h> +#endif #include "evp_locl.h" #include "rsa_locl.h" @@ -459,6 +462,26 @@ bad_pad: case EVP_PKEY_CTRL_PKCS7_DECRYPT: case EVP_PKEY_CTRL_PKCS7_SIGN: return 1; +#ifndef OPENSSL_NO_CMS + case EVP_PKEY_CTRL_CMS_DECRYPT: + { + X509_ALGOR *alg = NULL; + ASN1_OBJECT *encalg = NULL; + + if (p2) + CMS_RecipientInfo_ktri_get0_algs(p2, NULL, + NULL, &alg); + if (alg) + X509_ALGOR_get0(&encalg, NULL, NULL, alg); + if (encalg && OBJ_obj2nid(encalg) == NID_rsaesOaep) + rctx->pad_mode = RSA_PKCS1_OAEP_PADDING; + } + /* FALLTHROUGH */ + + case EVP_PKEY_CTRL_CMS_ENCRYPT: + case EVP_PKEY_CTRL_CMS_SIGN: + return 1; +#endif case EVP_PKEY_CTRL_PEER_KEY: RSAerr(RSA_F_PKEY_RSA_CTRL, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); |