RSA: Add RSA key types
authorRichard Levitte <levitte@openssl.org>
Sat, 2 May 2020 09:22:23 +0000 (11:22 +0200)
committerRichard Levitte <levitte@openssl.org>
Thu, 14 May 2020 10:16:34 +0000 (12:16 +0200)
commit484d1a73c70000ad07b156f04368b3922f9910b7
tree65fdbb21a5603cccad8463b0f2012ec11358586e
parenta87820e16bbbbb1f8a68ddaf3aa1159da886acca
RSA: Add RSA key types

The support of restricted RSA key types (OAEP and PSS) was lacking, or
dependent on the presence of restriction parameters.  For example,
this means that even though an RSA-PSS key may have been generated, it
may appear as a plain unrestricted RSA key if parameters weren't
present (which is the case when default restriction parameters are
used)

To make it clearer what an RSA key is intended for, and avoid
depending in an EVP_PKEY, we introduce RSA key types.  This is done by
reserving a section of the RSA flags (4 bits, which allows a total of
16 different types).

This isn't terribly important for EVP_PKEY_ASN1_METHOD code, as that
has access to the wrapping EVP_PKEY.  This is very important for
provider code, which has no access to the wrapping EVP_PKEY.

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/11710)
crypto/rsa/rsa_ameth.c
include/openssl/rsa.h