From ff1f7cdeb159e89ce305422b6e2a7e4002d825ab Mon Sep 17 00:00:00 2001 From: Aaron Thompson Date: Tue, 7 Apr 2020 00:18:09 +0000 Subject: Add ex_data to EVP_PKEY. Reviewed-by: Matt Caswell Reviewed-by: Dmitry Belyavskiy (Merged from https://github.com/openssl/openssl/pull/11515) --- include/crypto/evp.h | 3 +++ include/openssl/crypto.h | 3 ++- include/openssl/evp.h | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/crypto/evp.h b/include/crypto/evp.h index 63b6dad9c6..8acbc6a73e 100644 --- a/include/crypto/evp.h +++ b/include/crypto/evp.h @@ -557,6 +557,9 @@ struct evp_pkey_st { CRYPTO_RWLOCK *lock; STACK_OF(X509_ATTRIBUTE) *attributes; /* [ 0 ] */ int save_parameters; +#ifndef FIPS_MODE + CRYPTO_EX_DATA ex_data; +#endif /* == Provider attributes == */ diff --git a/include/openssl/crypto.h b/include/openssl/crypto.h index 3508144b4a..c184d847f8 100644 --- a/include/openssl/crypto.h +++ b/include/openssl/crypto.h @@ -192,7 +192,8 @@ DEFINE_STACK_OF(void) # define CRYPTO_EX_INDEX_RAND_DRBG 15 # define CRYPTO_EX_INDEX_DRBG CRYPTO_EX_INDEX_RAND_DRBG # define CRYPTO_EX_INDEX_OPENSSL_CTX 16 -# define CRYPTO_EX_INDEX__COUNT 17 +# define CRYPTO_EX_INDEX_EVP_PKEY 17 +# define CRYPTO_EX_INDEX__COUNT 18 typedef void CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, int idx, long argl, void *argp); diff --git a/include/openssl/evp.h b/include/openssl/evp.h index a14e899202..3945e43fac 100644 --- a/include/openssl/evp.h +++ b/include/openssl/evp.h @@ -1616,6 +1616,11 @@ int EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); int EVP_PKEY_private_check(EVP_PKEY_CTX *ctx); int EVP_PKEY_pairwise_check(EVP_PKEY_CTX *ctx); +# define EVP_PKEY_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_EVP_PKEY, l, p, newf, dupf, freef) +int EVP_PKEY_set_ex_data(EVP_PKEY *key, int idx, void *arg); +void *EVP_PKEY_get_ex_data(const EVP_PKEY *key, int idx); + void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); -- cgit v1.2.3