summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAaron Thompson <dev@aaront.org>2020-04-07 00:18:09 +0000
committerDmitry Belyavskiy <beldmit@gmail.com>2020-04-14 17:58:17 +0300
commitff1f7cdeb159e89ce305422b6e2a7e4002d825ab (patch)
tree84c03fb009b4be1564009aae97d66509be9e3e19 /include
parent0437435a960123be1ced766d18d715f939698345 (diff)
Add ex_data to EVP_PKEY.
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> (Merged from https://github.com/openssl/openssl/pull/11515)
Diffstat (limited to 'include')
-rw-r--r--include/crypto/evp.h3
-rw-r--r--include/openssl/crypto.h3
-rw-r--r--include/openssl/evp.h5
3 files changed, 10 insertions, 1 deletions
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);