]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man3/BIO_get_ex_new_index.pod
Add ex_data to EVP_PKEY.
[thirdparty/openssl.git] / doc / man3 / BIO_get_ex_new_index.pod
CommitLineData
e6390aca
RS
1=pod
2
3=head1 NAME
4
5BIO_get_ex_new_index, BIO_set_ex_data, BIO_get_ex_data,
d318389e 6BIO_set_app_data, BIO_get_app_data,
e6390aca
RS
7DH_get_ex_new_index, DH_set_ex_data, DH_get_ex_data,
8DSA_get_ex_new_index, DSA_set_ex_data, DSA_get_ex_data,
9ECDH_get_ex_new_index, ECDH_set_ex_data, ECDH_get_ex_data,
9b02dc97 10EC_KEY_get_ex_new_index, EC_KEY_set_ex_data, EC_KEY_get_ex_data,
d318389e 11ENGINE_get_ex_new_index, ENGINE_set_ex_data, ENGINE_get_ex_data,
ff1f7cde 12EVP_PKEY_get_ex_new_index, EVP_PKEY_set_ex_data, EVP_PKEY_get_ex_data,
d318389e
RS
13RAND_DRBG_set_ex_data, RAND_DRBG_get_ex_data, RAND_DRBG_get_ex_new_index,
14RSA_get_ex_new_index, RSA_set_ex_data, RSA_get_ex_data,
15RSA_set_app_data, RSA_get_app_data,
16SSL_get_ex_new_index, SSL_set_ex_data, SSL_get_ex_data,
17SSL_set_app_data, SSL_get_app_data,
18SSL_CTX_get_ex_new_index, SSL_CTX_set_ex_data, SSL_CTX_get_ex_data,
19SSL_CTX_set_app_data, SSL_CTX_get_app_data,
20SSL_SESSION_get_ex_new_index, SSL_SESSION_set_ex_data, SSL_SESSION_get_ex_data,
21SSL_SESSION_set_app_data, SSL_SESSION_get_app_data,
22UI_get_ex_new_index, UI_set_ex_data, UI_get_ex_data,
23UI_set_app_data, UI_get_app_data,
24X509_STORE_CTX_get_ex_new_index, X509_STORE_CTX_set_ex_data, X509_STORE_CTX_get_ex_data,
25X509_STORE_CTX_set_app_data, X509_STORE_CTX_get_app_data,
26X509_STORE_get_ex_new_index, X509_STORE_set_ex_data, X509_STORE_get_ex_data,
27X509_get_ex_new_index, X509_set_ex_data, X509_get_ex_data
e6390aca
RS
28- application-specific data
29
c952780c 30=head1 SYNOPSIS
e6390aca 31
bb82531f 32=for openssl generic
b97fdb57 33
e6390aca
RS
34 #include <openssl/x509.h>
35
c952780c 36 int TYPE_get_ex_new_index(long argl, void *argp,
e9b77246
BB
37 CRYPTO_EX_new *new_func,
38 CRYPTO_EX_dup *dup_func,
39 CRYPTO_EX_free *free_func);
e6390aca 40
c952780c 41 int TYPE_set_ex_data(TYPE *d, int idx, void *arg);
e6390aca 42
8cc86b81 43 void *TYPE_get_ex_data(const TYPE *d, int idx);
e6390aca 44
d318389e
RS
45 #define TYPE_set_app_data(TYPE *d, void *arg)
46 #define TYPE_get_app_data(TYPE *d)
47
e6390aca
RS
48=head1 DESCRIPTION
49
c952780c
RS
50In the description here, I<TYPE> is used a placeholder
51for any of the OpenSSL datatypes listed in
52L<CRYPTO_get_ex_new_index(3)>.
53
54These functions handle application-specific data for OpenSSL data
e6390aca
RS
55structures.
56
fe41c06e 57TYPE_get_ex_new_index() is a macro that calls CRYPTO_get_ex_new_index()
c952780c
RS
58with the correct B<index> value.
59
60TYPE_set_ex_data() is a function that calls CRYPTO_set_ex_data() with
61an offset into the opaque exdata part of the TYPE object.
62
a970b14f 63TYPE_get_ex_data() is a function that calls CRYPTO_get_ex_data() with
c952780c 64an offset into the opaque exdata part of the TYPE object.
e6390aca 65
d318389e
RS
66For compatibility with previous releases, the exdata index of zero is
67reserved for "application data." There are two convenience functions for
68this.
69TYPE_set_app_data() is a macro that invokes TYPE_set_ex_data() with
70B<idx> set to zero.
71TYPE_get_app_data() is a macro that invokes TYPE_get_ex_data() with
72B<idx> set to zero.
73Note that these functions are not defined for the B<RAND_DRBG> type because
74there are no backward compatibility concerns.
75
1f13ad31
PY
76=head1 RETURN VALUES
77
fe41c06e 78TYPE_get_ex_new_index() returns a new index on success or -1 on error.
1f13ad31
PY
79
80TYPE_set_ex_data() returns 1 on success or 0 on error.
81
82TYPE_get_ex_data() returns the application data or NULL if an error occurred.
83
e6390aca
RS
84=head1 SEE ALSO
85
86L<CRYPTO_get_ex_new_index(3)>.
87
e2f92610
RS
88=head1 COPYRIGHT
89
61f805c1 90Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
e2f92610 91
4746f25a 92Licensed under the Apache License 2.0 (the "License"). You may not use
e2f92610
RS
93this file except in compliance with the License. You can obtain a copy
94in the file LICENSE in the source distribution or at
95L<https://www.openssl.org/source/license.html>.
96
97=cut