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

Reply via email to