exdata
crypto_ex_data_clear(CRYPTO_EX_DATA *exdata)
if (exdata == NULL)
if ((ced = exdata->sk) != NULL) {
exdata->sk = NULL;
crypto_ex_data_init(CRYPTO_EX_DATA *exdata)
if (exdata->sk != NULL)
exdata->sk = ced;
crypto_ex_data_clear(exdata);
CRYPTO_new_ex_data(int class_index, void *parent, CRYPTO_EX_DATA *exdata)
if (!crypto_ex_data_init(exdata))
if ((ced = exdata->sk) == NULL)
if (!index->new_func(parent, NULL, exdata, i, index->argl,
CRYPTO_free_ex_data(class_index, parent, exdata);
CRYPTO_free_ex_data(int class_index, void *parent, CRYPTO_EX_DATA *exdata)
if (exdata == NULL)
if ((ced = exdata->sk) == NULL)
index->free_func(parent, ced->slots[i], exdata, i, index->argl,
crypto_ex_data_clear(exdata);
CRYPTO_set_ex_data(CRYPTO_EX_DATA *exdata, int idx, void *val)
if ((ced = exdata->sk) == NULL) {
if (!crypto_ex_data_init(exdata))
ced = exdata->sk;
CRYPTO_get_ex_data(const CRYPTO_EX_DATA *exdata, int idx)
if ((ced = exdata->sk) == NULL)
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_RSA, &exdata1, &exdata1.exdata)) {
if (!CRYPTO_set_ex_data(&exdata1.exdata, idx2, &idx2)) {
if (!CRYPTO_set_ex_data(&exdata1.exdata, idx1, &idx1)) {
if (CRYPTO_get_ex_data(&exdata1.exdata, idx1) != &idx1) {
if (CRYPTO_get_ex_data(&exdata1.exdata, idx2) != &idx2) {
if (!CRYPTO_dup_ex_data(CRYPTO_EX_INDEX_RSA, &exdata2.exdata,
&exdata1.exdata)) {
if (CRYPTO_get_ex_data(&exdata2.exdata, idx1) != &idx1) {
if (CRYPTO_get_ex_data(&exdata2.exdata, idx2) != &idx2) {
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_RSA, &exdata1, &exdata1.exdata);
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_RSA, &exdata2, &exdata2.exdata);
if (!CRYPTO_set_ex_data(&exdata3.exdata, idx1, &idx1)) {
if (CRYPTO_get_ex_data(&exdata3.exdata, idx1) != &idx1) {
if (!CRYPTO_set_ex_data(&exdata3.exdata, idx2 + 1, &idx2)) {
if (CRYPTO_get_ex_data(&exdata3.exdata, idx2 + 1) != &idx2) {
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_BIO, &exdata4, &exdata4.exdata)) {
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_RSA, &exdata1, &exdata1.exdata)) {
if (!CRYPTO_dup_ex_data(CRYPTO_EX_INDEX_RSA, &exdata2.exdata,
&exdata1.exdata)) {
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_RSA, &exdata1, &exdata1.exdata);
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_RSA, &exdata2, &exdata2.exdata);
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_RSA, &exdata3, &exdata3.exdata);
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_BIO, &exdata4, &exdata4.exdata);
CRYPTO_EX_DATA exdata;
struct exdata exdata1, exdata2, exdata3, exdata4;