diff --git a/crypto/evp/p_rsa.c b/crypto/evp/p_rsa.c index edc61b1f..629c33a6 100644 --- a/crypto/evp/p_rsa.c +++ b/crypto/evp/p_rsa.c @@ -646,15 +646,14 @@ int EVP_PKEY_CTX_get_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD **out_md) { EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void*) out_md); } -int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx, const uint8_t *label, +int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx, uint8_t *label, size_t label_len) { - int label_len_int = label_len; - if (((size_t) label_len_int) != label_len) { + if (label_len > INT_MAX) { return 0; } return EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, - EVP_PKEY_CTRL_RSA_OAEP_LABEL, label_len, + EVP_PKEY_CTRL_RSA_OAEP_LABEL, (int)label_len, (void *)label); } diff --git a/include/openssl/evp.h b/include/openssl/evp.h index 2ec88616..86349539 100644 --- a/include/openssl/evp.h +++ b/include/openssl/evp.h @@ -649,7 +649,7 @@ OPENSSL_EXPORT int EVP_PKEY_CTX_get_rsa_mgf1_md(EVP_PKEY_CTX *ctx, * * Returns one on success or zero on error. */ OPENSSL_EXPORT int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx, - const uint8_t *label, + uint8_t *label, size_t label_len); /* EVP_PKEY_CTX_get0_rsa_oaep_label sets |*out_label| to point to the internal