Loading engines/e_chil.c +18 −36 Original line number Diff line number Diff line Loading @@ -111,11 +111,10 @@ static int hwcrhk_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, #ifndef OPENSSL_NO_RSA /* RSA stuff */ static int hwcrhk_rsa_mod_exp(BIGNUM *r, const BIGNUM *I, RSA *rsa, BN_CTX *ctx); #endif #ifndef OPENSSL_NO_RSA /* This function is aliased to mod_exp (with the mont stuff dropped). */ static int hwcrhk_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); static int hwcrhk_rsa_finish(RSA *rsa); #endif #ifndef OPENSSL_NO_DH Loading @@ -135,10 +134,6 @@ static EVP_PKEY *hwcrhk_load_privkey(ENGINE *eng, const char *key_id, UI_METHOD *ui_method, void *callback_data); static EVP_PKEY *hwcrhk_load_pubkey(ENGINE *eng, const char *key_id, UI_METHOD *ui_method, void *callback_data); #ifndef OPENSSL_NO_RSA static void hwcrhk_ex_free(void *obj, void *item, CRYPTO_EX_DATA *ad, int ind,long argl, void *argp); #endif /* Interaction stuff */ static int hwcrhk_insert_card(const char *prompt_info, Loading Loading @@ -193,7 +188,7 @@ static RSA_METHOD hwcrhk_rsa = hwcrhk_rsa_mod_exp, hwcrhk_mod_exp_mont, NULL, NULL, hwcrhk_rsa_finish, 0, NULL, NULL, Loading Loading @@ -602,7 +597,7 @@ static int hwcrhk_init(ENGINE *e) if (hndidx_rsa == -1) hndidx_rsa = RSA_get_ex_new_index(0, "nFast HWCryptoHook RSA key handle", NULL, NULL, hwcrhk_ex_free); NULL, NULL, NULL); #endif return 1; err: Loading Loading @@ -1078,6 +1073,21 @@ static int hwcrhk_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, { return hwcrhk_mod_exp(r, a, p, m, ctx); } static int hwcrhk_rsa_finish(RSA *rsa) { HWCryptoHook_RSAKeyHandle *hptr; int ret; hptr = RSA_get_ex_data(rsa, hndidx_rsa); if (hptr) { ret = p_hwcrhk_RSAUnloadKey(*hptr, NULL); OPENSSL_free(hptr); RSA_set_ex_data(rsa, hndidx_rsa, NULL); } return 1; } #endif #ifndef OPENSSL_NO_DH Loading Loading @@ -1136,34 +1146,6 @@ static int hwcrhk_rand_status(void) return 1; } /* This cleans up an RSA KM key, called when ex_data is freed */ #ifndef OPENSSL_NO_RSA 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 } #endif /* Mutex calls: since the HWCryptoHook model closely follows the POSIX model * these just wrap the POSIX functions and add some logging. */ Loading Loading
engines/e_chil.c +18 −36 Original line number Diff line number Diff line Loading @@ -111,11 +111,10 @@ static int hwcrhk_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, #ifndef OPENSSL_NO_RSA /* RSA stuff */ static int hwcrhk_rsa_mod_exp(BIGNUM *r, const BIGNUM *I, RSA *rsa, BN_CTX *ctx); #endif #ifndef OPENSSL_NO_RSA /* This function is aliased to mod_exp (with the mont stuff dropped). */ static int hwcrhk_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); static int hwcrhk_rsa_finish(RSA *rsa); #endif #ifndef OPENSSL_NO_DH Loading @@ -135,10 +134,6 @@ static EVP_PKEY *hwcrhk_load_privkey(ENGINE *eng, const char *key_id, UI_METHOD *ui_method, void *callback_data); static EVP_PKEY *hwcrhk_load_pubkey(ENGINE *eng, const char *key_id, UI_METHOD *ui_method, void *callback_data); #ifndef OPENSSL_NO_RSA static void hwcrhk_ex_free(void *obj, void *item, CRYPTO_EX_DATA *ad, int ind,long argl, void *argp); #endif /* Interaction stuff */ static int hwcrhk_insert_card(const char *prompt_info, Loading Loading @@ -193,7 +188,7 @@ static RSA_METHOD hwcrhk_rsa = hwcrhk_rsa_mod_exp, hwcrhk_mod_exp_mont, NULL, NULL, hwcrhk_rsa_finish, 0, NULL, NULL, Loading Loading @@ -602,7 +597,7 @@ static int hwcrhk_init(ENGINE *e) if (hndidx_rsa == -1) hndidx_rsa = RSA_get_ex_new_index(0, "nFast HWCryptoHook RSA key handle", NULL, NULL, hwcrhk_ex_free); NULL, NULL, NULL); #endif return 1; err: Loading Loading @@ -1078,6 +1073,21 @@ static int hwcrhk_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, { return hwcrhk_mod_exp(r, a, p, m, ctx); } static int hwcrhk_rsa_finish(RSA *rsa) { HWCryptoHook_RSAKeyHandle *hptr; int ret; hptr = RSA_get_ex_data(rsa, hndidx_rsa); if (hptr) { ret = p_hwcrhk_RSAUnloadKey(*hptr, NULL); OPENSSL_free(hptr); RSA_set_ex_data(rsa, hndidx_rsa, NULL); } return 1; } #endif #ifndef OPENSSL_NO_DH Loading Loading @@ -1136,34 +1146,6 @@ static int hwcrhk_rand_status(void) return 1; } /* This cleans up an RSA KM key, called when ex_data is freed */ #ifndef OPENSSL_NO_RSA 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 } #endif /* Mutex calls: since the HWCryptoHook model closely follows the POSIX model * these just wrap the POSIX functions and add some logging. */ Loading