X509_STORE_CTX_GET_EX_NEW_INDEX(3) | Library Functions Manual | X509_STORE_CTX_GET_EX_NEW_INDEX(3)

# NAME

`X509_STORE_CTX_get_ex_new_index`, `X509_STORE_CTX_set_ex_data`, `X509_STORE_CTX_get_ex_data`, `X509_STORE_CTX_set_app_data`, `X509_STORE_CTX_get_app_data` — add application specific data to X509_STORE_CTX structures

# SYNOPSIS

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

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

int
`X509_STORE_CTX_set_ex_data`(X509_STORE_CTX *d, int idx, void *arg);

void *
`X509_STORE_CTX_get_ex_data`(X509_STORE_CTX *d, int idx);

int
`X509_STORE_CTX_set_app_data`(X509_STORE_CTX *d, void *arg);

void *
`X509_STORE_CTX_get_app_data`(X509_STORE_CTX *d);

# DESCRIPTION

These functions handle application specific data in X509_STORE_CTX structures. Their usage is identical to that of RSA_get_ex_new_index(3), RSA_set_ex_data(3), and RSA_get_ex_data(3).

This mechanism is used internally by the ssl(3) library to store the SSL structure associated with a verification operation in an X509_STORE_CTX structure.

`X509_STORE_CTX_set_app_data`() and `X509_STORE_CTX_get_app_data`() are macros calling `X509_STORE_CTX_set_ex_data`() and `X509_STORE_CTX_get_ex_data`(), respectively, with an idx of 0.

# RETURN VALUES

`X509_STORE_CTX_get_ex_new_index`() returns a new index or -1 on failure.

`X509_STORE_CTX_set_ex_data`() and `X509_STORE_CTX_set_app_data`() return 1 on success or 0 on failure.

`X509_STORE_CTX_get_ex_data`() and `X509_STORE_CTX_get_app_data`() return the application data or `NULL` on failure. `NULL` may also be valid application data, but currently these functions can only fail if given an invalid idx argument.

# SEE ALSO

RSA_get_ex_new_index(3), X509_STORE_CTX_new(3)

# HISTORY

`X509_STORE_CTX_set_app_data`() and `X509_STORE_CTX_get_app_data`() first appeared in SSLeay 0.8.0 and `X509_STORE_CTX_get_ex_new_index`(), `X509_STORE_CTX_set_ex_data`(), and `X509_STORE_CTX_get_ex_data`() in SSLeay 0.9.0. All these functions have been available since OpenBSD 2.4.

June 8, 2025 | Debian