diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/rsa/rsa_ameth.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/src/lib/libcrypto/rsa/rsa_ameth.c b/src/lib/libcrypto/rsa/rsa_ameth.c index 0c27ee621e..b4dbff2683 100644 --- a/src/lib/libcrypto/rsa/rsa_ameth.c +++ b/src/lib/libcrypto/rsa/rsa_ameth.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: rsa_ameth.c,v 1.39 2023/11/07 16:12:36 tb Exp $ */ | 1 | /* $OpenBSD: rsa_ameth.c,v 1.40 2023/11/07 16:22:04 tb Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -734,20 +734,6 @@ rsa_pss_params_create(const EVP_MD *sigmd, const EVP_MD *mgf1md, int saltlen) | |||
| 734 | return NULL; | 734 | return NULL; |
| 735 | } | 735 | } |
| 736 | 736 | ||
| 737 | static ASN1_STRING * | ||
| 738 | rsa_ctx_to_pss_string(EVP_PKEY_CTX *pkey_ctx) | ||
| 739 | { | ||
| 740 | RSA_PSS_PARAMS *pss = rsa_ctx_to_pss(pkey_ctx); | ||
| 741 | ASN1_STRING *os; | ||
| 742 | |||
| 743 | if (pss == NULL) | ||
| 744 | return NULL; | ||
| 745 | |||
| 746 | os = ASN1_item_pack(pss, &RSA_PSS_PARAMS_it, NULL); | ||
| 747 | RSA_PSS_PARAMS_free(pss); | ||
| 748 | return os; | ||
| 749 | } | ||
| 750 | |||
| 751 | /* | 737 | /* |
| 752 | * From PSS AlgorithmIdentifier set public key parameters. If pkey isn't NULL | 738 | * From PSS AlgorithmIdentifier set public key parameters. If pkey isn't NULL |
| 753 | * then the EVP_MD_CTX is setup and initialised. If it is NULL parameters are | 739 | * then the EVP_MD_CTX is setup and initialised. If it is NULL parameters are |
| @@ -897,13 +883,16 @@ rsa_alg_set_pkcs1_padding(X509_ALGOR *alg) | |||
| 897 | static int | 883 | static int |
| 898 | rsa_alg_set_pss_padding(X509_ALGOR *alg, EVP_PKEY_CTX *pkey_ctx) | 884 | rsa_alg_set_pss_padding(X509_ALGOR *alg, EVP_PKEY_CTX *pkey_ctx) |
| 899 | { | 885 | { |
| 886 | RSA_PSS_PARAMS *pss = NULL; | ||
| 900 | ASN1_STRING *astr = NULL; | 887 | ASN1_STRING *astr = NULL; |
| 901 | int ret = 0; | 888 | int ret = 0; |
| 902 | 889 | ||
| 903 | if (pkey_ctx == NULL) | 890 | if (pkey_ctx == NULL) |
| 904 | goto err; | 891 | goto err; |
| 905 | 892 | ||
| 906 | if ((astr = rsa_ctx_to_pss_string(pkey_ctx)) == NULL) | 893 | if ((pss = rsa_ctx_to_pss(pkey_ctx)) == NULL) |
| 894 | goto err; | ||
| 895 | if ((astr = ASN1_item_pack(pss, &RSA_PSS_PARAMS_it, NULL)) == NULL) | ||
| 907 | goto err; | 896 | goto err; |
| 908 | if (!X509_ALGOR_set0_by_nid(alg, EVP_PKEY_RSA_PSS, V_ASN1_SEQUENCE, astr)) | 897 | if (!X509_ALGOR_set0_by_nid(alg, EVP_PKEY_RSA_PSS, V_ASN1_SEQUENCE, astr)) |
| 909 | goto err; | 898 | goto err; |
| @@ -913,6 +902,7 @@ rsa_alg_set_pss_padding(X509_ALGOR *alg, EVP_PKEY_CTX *pkey_ctx) | |||
| 913 | 902 | ||
| 914 | err: | 903 | err: |
| 915 | ASN1_STRING_free(astr); | 904 | ASN1_STRING_free(astr); |
| 905 | RSA_PSS_PARAMS_free(pss); | ||
| 916 | 906 | ||
| 917 | return ret; | 907 | return ret; |
| 918 | } | 908 | } |
