static int hwcrhk_rsa_finish(RSA *rsa) { HWCryptoHook_RSAKeyHandle *hptr; hptr = RSA_get_ex_data(rsa, hndidx_rsa); if (hptr) { p_hwcrhk_RSAUnloadKey(*hptr, NULL); OPENSSL_free(hptr); RSA_set_ex_data(rsa, hndidx_rsa, NULL); } return 1; }
static void hwcrhk_ex_free(void *obj, void *item, CRYPTO_EX_DATA *ad, int ind,long argl, void *argp) { char tempbuf[1024]; HWCryptoHook_ErrMsgBuf rmsg; #ifndef OPENSSL_NO_RSA HWCryptoHook_RSAKeyHandle *hptr; #endif #if !defined(OPENSSL_NO_RSA) int ret; #endif rmsg.buf = tempbuf; rmsg.size = sizeof(tempbuf); #ifndef OPENSSL_NO_RSA hptr = (HWCryptoHook_RSAKeyHandle *) item; if(hptr) { ret = p_hwcrhk_RSAUnloadKey(*hptr, NULL); OPENSSL_free(hptr); } #endif }