From da40c61d13eed8f9ee3e0a064bd2002724927649 Mon Sep 17 00:00:00 2001 From: Frank Morgner Date: Fri, 27 Jul 2018 11:54:10 +0200 Subject: [PATCH] npa/sc-hsm: don't call EAC_cleanup() In Minidriver, when the DLL is called in multiple threads, this can lead to a deinitialization of OpenSSL's OIDs in one thread making them unavailable from other threads of the same process. As result, CVCs cannot be veriefied anymore during chip authentication. --- src/libopensc/card-npa.c | 6 ------ src/libopensc/card-sc-hsm.c | 4 ---- 2 files changed, 10 deletions(-) diff --git a/src/libopensc/card-npa.c b/src/libopensc/card-npa.c index 8a5f83c2..99784b17 100644 --- a/src/libopensc/card-npa.c +++ b/src/libopensc/card-npa.c @@ -356,9 +356,6 @@ static int npa_finish(sc_card_t * card) sc_sm_stop(card); npa_drv_data_free(card->drv_data); card->drv_data = NULL; -#ifdef ENABLE_OPENPACE - EAC_cleanup(); -#endif return SC_SUCCESS; } @@ -399,9 +396,6 @@ static int npa_init(sc_card_t * card) if (r != SC_SUCCESS) goto err; -#ifdef ENABLE_OPENPACE - EAC_init(); -#endif card->drv_data = npa_drv_data_create(); if (!card->drv_data) { npa_finish(card); diff --git a/src/libopensc/card-sc-hsm.c b/src/libopensc/card-sc-hsm.c index 0d8c91f4..8963a565 100644 --- a/src/libopensc/card-sc-hsm.c +++ b/src/libopensc/card-sc-hsm.c @@ -1709,10 +1709,6 @@ static int sc_hsm_finish(sc_card_t * card) free(priv->EF_C_DevAut); free(priv); -#ifdef ENABLE_OPENPACE - EAC_cleanup(); -#endif - return SC_SUCCESS; }