SSL_GET_EX_NEW_INDEX(3) | Library Functions Manual | SSL_GET_EX_NEW_INDEX(3)

# NAME

`SSL_get_ex_new_index`, `SSL_set_ex_data`, `SSL_get_ex_data` — internal application specific data functions

# SYNOPSIS

library “libssl” libcrypto
`#include <openssl/ssl.h>`

int
`SSL_get_ex_new_index`(long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);

int
`SSL_set_ex_data`(SSL *ssl, int idx, void *arg);

void *
`SSL_get_ex_data`(const SSL *ssl, int idx);

    typedef int new_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
                   int idx, long argl, void *argp);
    typedef void free_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
                   int idx, long argl, void *argp);
    typedef int dup_func(CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, void *from_d,
                   int idx, long argl, void *argp);

# DESCRIPTION

Several OpenSSL structures can have application specific data attached to them. These functions are used internally by OpenSSL to manipulate application specific data attached to a specific structure.

`SSL_get_ex_new_index`() is used to register a new index for application specific data.

`SSL_set_ex_data`() is used to store application data at arg for idx into the ssl object.

`SSL_get_ex_data`() is used to retrieve the information for idx from ssl.

A detailed description for the `*_get_ex_new_index`() functionality can be found in RSA_get_ex_new_index(3). The `*_get_ex_data`() and `*_set_ex_data`() functionality is described in CRYPTO_set_ex_data(3).

# EXAMPLES

An example of how to use the functionality is included in the example `verify_callback`() in SSL_CTX_set_verify(3).

# SEE ALSO

CRYPTO_set_ex_data(3), RSA_get_ex_new_index(3), ssl(3), SSL_CTX_set_verify(3)

# HISTORY

Precursor functions `SSL_set_app_data`() and `SSL_get_app_data`() first appeared in SSLeay 0.6.1.

`SSL_get_ex_new_index`(), `SSL_set_ex_data`(), and `SSL_get_ex_data`() first appeared in SSLeay 0.9.0 and have been available since OpenBSD 2.4.

June 8, 2025 | Debian