Allow EVP_PKEY_get0_RSA for RSA-PSS keys
authorTobias Nießen <tniessen@tnie.de>
Fri, 18 Oct 2019 18:44:49 +0000 (20:44 +0200)
committerMatt Caswell <matt@openssl.org>
Mon, 28 Oct 2019 11:07:10 +0000 (11:07 +0000)
RSA-PSS keys use the same internal structure as RSA keys but do not
allow accessing it through EVP_PKEY_get0_RSA. This commit changes that
behavior.

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/10217)

crypto/evp/p_lib.c

index 0453006..0e93786 100644 (file)
@@ -493,7 +493,7 @@ int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key)
 
 RSA *EVP_PKEY_get0_RSA(const EVP_PKEY *pkey)
 {
-    if (pkey->type != EVP_PKEY_RSA) {
+    if (pkey->type != EVP_PKEY_RSA && pkey->type != EVP_PKEY_RSA_PSS) {
         EVPerr(EVP_F_EVP_PKEY_GET0_RSA, EVP_R_EXPECTING_AN_RSA_KEY);
         return NULL;
     }