static void test_initialize_multiple (void) { CK_FUNCTION_LIST_PTR proxy; CK_RV rv; rv = C_GetFunctionList (&proxy); assert (rv == CKR_OK); assert (p11_proxy_module_check (proxy)); rv = proxy->C_Initialize (NULL); assert (rv == CKR_OK); rv = proxy->C_Initialize (NULL); assert (rv == CKR_OK); rv = proxy->C_Finalize (NULL); assert (rv == CKR_OK); rv = proxy->C_Finalize (NULL); assert (rv == CKR_OK); rv = proxy->C_Finalize (NULL); assert (rv == CKR_CRYPTOKI_NOT_INITIALIZED); p11_proxy_module_cleanup (); }
static void test_initialize_finalize (void) { CK_FUNCTION_LIST_PTR proxy; CK_RV rv; rv = C_GetFunctionList (&proxy); assert (rv == CKR_OK); assert (p11_proxy_module_check (proxy)); rv = proxy->C_Initialize (NULL); assert (rv == CKR_OK); rv = proxy->C_Finalize (NULL); assert_num_eq (rv, CKR_OK); p11_proxy_module_cleanup (); }
BOOL WINAPI DllMain (HINSTANCE instance, DWORD reason, LPVOID reserved) { switch (reason) { case DLL_PROCESS_ATTACH: p11_library_init (); break; case DLL_THREAD_DETACH: p11_library_thread_cleanup (); break; case DLL_PROCESS_DETACH: p11_proxy_module_cleanup (); p11_library_uninit (); break; default: break; } return TRUE; }
void _p11_kit_fini (void) { p11_proxy_module_cleanup (); p11_library_uninit (); }