|
@@ -1786,7 +1786,8 @@ static int get_rsa_payload_n(enum state state,
|
|
|
{
|
|
|
const BIGNUM *bn = NULL;
|
|
|
|
|
|
- if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA)
|
|
|
+ if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA
|
|
|
+ && EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA_PSS)
|
|
|
return 0;
|
|
|
bn = RSA_get0_n(EVP_PKEY_get0_RSA(ctx->p2));
|
|
|
|
|
@@ -1799,7 +1800,8 @@ static int get_rsa_payload_e(enum state state,
|
|
|
{
|
|
|
const BIGNUM *bn = NULL;
|
|
|
|
|
|
- if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA)
|
|
|
+ if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA
|
|
|
+ && EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA_PSS)
|
|
|
return 0;
|
|
|
bn = RSA_get0_e(EVP_PKEY_get0_RSA(ctx->p2));
|
|
|
|
|
@@ -1812,7 +1814,8 @@ static int get_rsa_payload_d(enum state state,
|
|
|
{
|
|
|
const BIGNUM *bn = NULL;
|
|
|
|
|
|
- if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA)
|
|
|
+ if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA
|
|
|
+ && EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA_PSS)
|
|
|
return 0;
|
|
|
bn = RSA_get0_d(EVP_PKEY_get0_RSA(ctx->p2));
|
|
|
|
|
@@ -1912,7 +1915,8 @@ static int get_rsa_payload_coefficient(enum state state,
|
|
|
const struct translation_st *translation, \
|
|
|
struct translation_ctx_st *ctx) \
|
|
|
{ \
|
|
|
- if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA) \
|
|
|
+ if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA \
|
|
|
+ && EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA_PSS) \
|
|
|
return 0; \
|
|
|
return get_rsa_payload_factor(state, translation, ctx, n - 1); \
|
|
|
}
|
|
@@ -1923,7 +1927,8 @@ static int get_rsa_payload_coefficient(enum state state,
|
|
|
const struct translation_st *translation, \
|
|
|
struct translation_ctx_st *ctx) \
|
|
|
{ \
|
|
|
- if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA) \
|
|
|
+ if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA \
|
|
|
+ && EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA_PSS) \
|
|
|
return 0; \
|
|
|
return get_rsa_payload_exponent(state, translation, ctx, \
|
|
|
n - 1); \
|
|
@@ -1935,7 +1940,8 @@ static int get_rsa_payload_coefficient(enum state state,
|
|
|
const struct translation_st *translation, \
|
|
|
struct translation_ctx_st *ctx) \
|
|
|
{ \
|
|
|
- if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA) \
|
|
|
+ if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA \
|
|
|
+ && EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA_PSS) \
|
|
|
return 0; \
|
|
|
return get_rsa_payload_coefficient(state, translation, ctx, \
|
|
|
n - 1); \
|
|
@@ -2271,10 +2277,10 @@ static const struct translation_st evp_pkey_ctx_translations[] = {
|
|
|
{ SET, EVP_PKEY_RSA, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN,
|
|
|
EVP_PKEY_CTRL_RSA_KEYGEN_BITS, "rsa_keygen_bits", NULL,
|
|
|
OSSL_PKEY_PARAM_RSA_BITS, OSSL_PARAM_UNSIGNED_INTEGER, NULL },
|
|
|
- { SET, EVP_PKEY_RSA, 0, EVP_PKEY_OP_KEYGEN,
|
|
|
+ { SET, EVP_PKEY_RSA, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN,
|
|
|
EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, "rsa_keygen_pubexp", NULL,
|
|
|
OSSL_PKEY_PARAM_RSA_E, OSSL_PARAM_UNSIGNED_INTEGER, NULL },
|
|
|
- { SET, EVP_PKEY_RSA, 0, EVP_PKEY_OP_KEYGEN,
|
|
|
+ { SET, EVP_PKEY_RSA, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN,
|
|
|
EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES, "rsa_keygen_primes", NULL,
|
|
|
OSSL_PKEY_PARAM_RSA_PRIMES, OSSL_PARAM_UNSIGNED_INTEGER, NULL },
|
|
|
|