PKCS#11 C_getfunctionlist in a dll -


i'm trying write dll connect virtual token. tried make exportable c_getfunctionlist function contain pointer adressess functions suported pcks#11 standard can't figure out why can't access functions in program uses dll. tried load c_initializefunction.

extern "c" __declspec(dllexport) ck_rv c_getfunctionlist(ck_function_list_ptr_ptr ppfunctionlist) {     ck_function_list_ptr function_list;     function_list=new ck_function_list;     function_list->c_initialize=&c_initialize;     ppfunctionlist=&function_list; return ckr_ok;   } 

if want use pkcs#11 implementation's functions in code have load dll implements standard , use functions provided dll. here comes code use on linux system. hope helps.

 static char const * pkcs11_so_name = "/usr/lib/pkcs11/pkcs11_api.so";  static void * pkcs11_so; //list of pkcs#11 functions static ck_function_list_ptr pkcs11;  ck_rv load_pkcs11() {   ck_rv rv = ckr_ok;   ck_rv (*c_getfunctionlist) (ck_function_list_ptr_ptr) = 0;    pkcs11_so = dlopen(pkcs11_so_name, rtld_now);   if (!pkcs11_so) {     fprintf(stderr, "error loading pkcs#11 so: %s\n", dlerror());     return ckr_general_error;   }    rv = load_symbol((void **)&c_getfunctionlist, "c_getfunctionlist");   if (ckr_ok != rv) {     return rv;   }    rv = c_getfunctionlist(&pkcs11);   if (ckr_ok != rv) {     fprintf(stderr, "c_getfunctionlist call failed: 0x%.8lx", rv);     return rv;   }    return ckr_ok; } 

Comments

Popular posts from this blog

authentication - Mongodb revoke acccess to connect test database -

r - Update two sets of radiobuttons reactively - shiny -

ios - Realm over CoreData should I use NSFetchedResultController or a Dictionary? -