An update to my question below: I am trying to do something - anything - to get d2i_PKCS12_fp() to work. I am now calling it from a new dll that is compiled with /MD. There is no change. Here is my code:
#include <openssl\applink.c> CRYPTO_malloc_init(); OpenSSL_add_all_algorithms(); fptr = fopen(p12_file, "rb"); if (fptr == NULL) return(FALSE); d2i_PKCS12_fp(fptr, &p12_cert); fclose(fptr); The call to d2i_PKCS12_fp() always produces the no OPENSSL_Applink runtime error. If anybody can shed some light on this I would appreciate it. --- original question ---- I am attempting to use the d2i_PKCS12_fp() API call in a Windows DLL compiled with the multi-threaded (/MT) runtime library. On this call I get the runtime error "OPENSSL_Uplink(03CE1000,08): no OPENSSL_Applink". >From discussions I have seen about this error, I thought I could fix it by adding "applink.c" to my project, and calling CRYPTO_malloc_init(). However this has no effect. Is use of /MT causing this? It will be difficult to change that, due to other components of the project. I have used the HMAC and SHA256 APIs in this project with no problem. If it is just file I/O causing the problem, is there a way that I can read in the .p12 file myself, and just pass a buffer to OpenSSL in order to initialize the PKCS12 structure? ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org