gpt4 book ai didi

windows - 如何在 Windows 上使用 OpenSSL FIPS 静态库构建 DLL?

转载 作者:可可西里 更新时间:2023-11-01 14:14:39 24 4
gpt4 key购买 nike

我在 openssl-users 邮件列表中询问了这个问题,但没有得到回复,所以我想我会在这里尝试。

我正在尝试构建一个包含静态 OpenSSL FIPS 库的 Windows DLL。我使用 perl Configure fips --with-fipslibdir=... -no-shared 构建了 FIPS 库,然后使用 nmake -f ms\nt.mak。我使用的是 openssl-fips-2.0.5、openssl-1.0.1j 和 MS Visual Studio 2010。

现在我正在尝试将生成的库链接到我的 DLL 中。我已按照 OpenSSL FIPS 2.0 User's Guide 中的说明进行操作,设置一堆环境变量(FIPS_LINK、FIPS_CC、FIPS_CC_ARGS 等),然后调用 fipslink.pl。但是我遇到了“第一阶段链接失败”。

它报告“完整性检查正常”,然后编译 fips_premain.c,但是在链接 DLL 时,我收到一堆“本地定义的符号 _time64 导入”警告(以及 strncmp、_errno、abort、fprintf 等) ,然后是一些未解析的外部符号,包括:

__imp_strncpy
__imp_qsort
__imp_wcsstr
__imp_vsnwprintf

所有错误都来自 libeayfips32.lib、libeaycompat32.lib 和 ssleay32.lib。

我尝试过添加和删除诸如 /NODEFAULTLIB:msvcrt/NODEFAULTLIB:libcmtd 之类的东西,并使用 /MT 进行构建或 /MD 或两者都不是,但我每次都会收到链接器错误。我错过了什么?

最佳答案

我推测配置脚本的“-no-shared”开关静态链接了 C 标准库。您将获得静态 OpenSSL FIPS 库,但它会包括 printf 和 friend 的实现,正如您实际体验的那样。

关于windows - 如何在 Windows 上使用 OpenSSL FIPS 静态库构建 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27409996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com