5 BIO_get_ex_new_index, BIO_set_ex_data, BIO_get_ex_data,
6 BIO_set_app_data, BIO_get_app_data,
7 DH_get_ex_new_index, DH_set_ex_data, DH_get_ex_data,
8 DSA_get_ex_new_index, DSA_set_ex_data, DSA_get_ex_data,
9 ECDH_get_ex_new_index, ECDH_set_ex_data, ECDH_get_ex_data,
10 EC_KEY_get_ex_new_index, EC_KEY_set_ex_data, EC_KEY_get_ex_data,
11 ENGINE_get_ex_new_index, ENGINE_set_ex_data, ENGINE_get_ex_data,
12 EVP_PKEY_get_ex_new_index, EVP_PKEY_set_ex_data, EVP_PKEY_get_ex_data,
13 RAND_DRBG_set_ex_data, RAND_DRBG_get_ex_data, RAND_DRBG_get_ex_new_index,
14 RSA_get_ex_new_index, RSA_set_ex_data, RSA_get_ex_data,
15 RSA_set_app_data, RSA_get_app_data,
16 SSL_get_ex_new_index, SSL_set_ex_data, SSL_get_ex_data,
17 SSL_set_app_data, SSL_get_app_data,
18 SSL_CTX_get_ex_new_index, SSL_CTX_set_ex_data, SSL_CTX_get_ex_data,
19 SSL_CTX_set_app_data, SSL_CTX_get_app_data,
20 SSL_SESSION_get_ex_new_index, SSL_SESSION_set_ex_data, SSL_SESSION_get_ex_data,
21 SSL_SESSION_set_app_data, SSL_SESSION_get_app_data,
22 UI_get_ex_new_index, UI_set_ex_data, UI_get_ex_data,
23 UI_set_app_data, UI_get_app_data,
24 X509_STORE_CTX_get_ex_new_index, X509_STORE_CTX_set_ex_data, X509_STORE_CTX_get_ex_data,
25 X509_STORE_CTX_set_app_data, X509_STORE_CTX_get_app_data,
26 X509_STORE_get_ex_new_index, X509_STORE_set_ex_data, X509_STORE_get_ex_data,
27 X509_get_ex_new_index, X509_set_ex_data, X509_get_ex_data
28 - application-specific data
34 #include <openssl/x509.h>
36 int TYPE_get_ex_new_index(long argl, void *argp,
37 CRYPTO_EX_new *new_func,
38 CRYPTO_EX_dup *dup_func,
39 CRYPTO_EX_free *free_func);
41 int TYPE_set_ex_data(TYPE *d, int idx, void *arg);
43 void *TYPE_get_ex_data(const TYPE *d, int idx);
45 #define TYPE_set_app_data(TYPE *d, void *arg)
46 #define TYPE_get_app_data(TYPE *d)
50 In the description here, I<TYPE> is used a placeholder
51 for any of the OpenSSL datatypes listed in
52 L<CRYPTO_get_ex_new_index(3)>.
54 These functions handle application-specific data for OpenSSL data
57 TYPE_get_ex_new_index() is a macro that calls CRYPTO_get_ex_new_index()
58 with the correct B<index> value.
60 TYPE_set_ex_data() is a function that calls CRYPTO_set_ex_data() with
61 an offset into the opaque exdata part of the TYPE object.
63 TYPE_get_ex_data() is a function that calls CRYPTO_get_ex_data() with
64 an offset into the opaque exdata part of the TYPE object.
66 For compatibility with previous releases, the exdata index of zero is
67 reserved for "application data." There are two convenience functions for
69 TYPE_set_app_data() is a macro that invokes TYPE_set_ex_data() with
71 TYPE_get_app_data() is a macro that invokes TYPE_get_ex_data() with
73 Note that these functions are not defined for the B<RAND_DRBG> type because
74 there are no backward compatibility concerns.
78 TYPE_get_ex_new_index() returns a new index on success or -1 on error.
80 TYPE_set_ex_data() returns 1 on success or 0 on error.
82 TYPE_get_ex_data() returns the application data or NULL if an error occurred.
86 L<CRYPTO_get_ex_new_index(3)>.
90 The ENGINE_get_ex_new_index(), ENGINE_set_ex_data() and ENGINE_get_ex_data()
91 functions were deprecated in OpenSSL 3.0.
95 Copyright 2015-2020 The OpenSSL Project Authors. All Rights Reserved.
97 Licensed under the Apache License 2.0 (the "License"). You may not use
98 this file except in compliance with the License. You can obtain a copy
99 in the file LICENSE in the source distribution or at
100 L<https://www.openssl.org/source/license.html>.