#include
int CRYPTO_set_ex_data(CRYPTO_EX_DATA *r, int idx, void *arg);
void *CRYPTO_get_ex_data(CRYPTO_EX_DATA *r, int idx);
These functions should only be used by applications to manipulate CCRRYYPPTTOO__EEXX__DDAATTAA structures passed to the _nn_ee_ww____ff_uu_nn_cc_((_)), _ff_rr_ee_ee____ff_uu_nn_cc_((_)) and _dd_uu_pp____ff_uu_nn_cc_((_)) callbacks: as passed to _RR_SS_AA____gg_ee_tt____ee_xx____nn_ee_ww____ii_nn_dd_ee_xx_((_)) for example.
_CC_RR_YY_PP_TT_OO____ss_ee_tt____ee_xx____dd_aa_tt_aa_((_)) is used to set application specific data, the data is supplied in the aarrgg parameter and its precise meaning is up to the application.
_CC_RR_YY_PP_TT_OO____gg_ee_tt____ee_xx____dd_aa_tt_aa_((_)) is used to retrieve application specific data. The data is returned to the application, this will be the same value as supplied to a previous _CC_RR_YY_PP_TT_OO____ss_ee_tt____ee_xx____dd_aa_tt_aa_((_)) call.
_CC_RR_YY_PP_TT_OO____gg_ee_tt____ee_xx____dd_aa_tt_aa_((_)) returns the application data or 0 on failure. 0 may also be valid application data but currently it can only fail if given an invalid iiddxx parameter.
On failure an error code can be obtained from _E_R_R___g_e_t___e_r_r_o_r(3).