【问题标题】:no OPENSSL_Applink runtime error没有 OPENSSL_Applink 运行时错误
【发布时间】:2014-06-09 23:11:15
【问题描述】:

下面我的问题的更新:我正在尝试做某事 - 任何事情 - 让 d2i_PKCS12_fp() 工作。我现在从一个新的 dll 调用它 用 /MD 编译。没有变化。这是我的代码:

#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);

对 d2i_PKCS12_fp() 的调用总是产生无 OPENSSL_Applink 运行时 错误。如果有人能对此有所了解,我将不胜感激。

---原始问题----

我正在尝试在 Windows DLL 中使用 d2i_PKCS12_fp() API 调用 使用多线程 (/MT) 运行时库编译。在这个电话中,我 得到运行时错误“OPENSSL_Uplink(03CE1000,08): no OPENSSL_Applink”。 从我看到的关于这个错误的讨论中,我想我可以通过 将“applink.c”添加到我的项目中,并调用 CRYPTO_malloc_init()。 但是,这没有效果。使用 /MT 会导致这种情况吗?这将是 由于项目的其他组成部分,很难改变这一点。我有 在这个项目中使用 HMAC 和 SHA256 API 没有问题。如果是 只是导致问题的文件 I/O,有没有办法可以 自己读入 .p12 文件,然后按顺序将缓冲区传递给 OpenSSL 初始化 PKCS12 结构?我正在使用 MSVC 2010。

【问题讨论】:

标签: visual-c++ openssl


【解决方案1】:

我遇到了类似的问题,我在网上看到 #include &lt;openssl\applink.c&gt; 丢失了,但它并没有解决问题。 我的问题是我在调试模式下工作,而 OpenSSL 是在 release 模式下构建re-building Debug 中的 OpenSSL(使用 perl Configure debug-VC-WIN32)修复了该问题。 希望这对你有帮助!

【讨论】:

    【解决方案2】:

    在 Windows 上使用 TLS 的 OpenSSL 库编译 C++ Qt 项目时,我遇到了相同的运行时错误。发布版本运行良好,但调试版本显示运行时错误:OPENSSL_Uplink(0F7D26B8,08): no OPENSSL_Applink

    此错误的原因是调用了 ERR_print_errors_fp(stderr) 函数。 评论 ERR_print_errors_fp 后一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 2015-06-05
      • 2021-01-28
      相关资源
      最近更新 更多