gpt4 book ai didi

c++ - C++ 包装器库中的 OpenSSL Fips 如何操作?错误 : fingerprint does not match

转载 作者:行者123 更新时间:2023-11-28 04:31:59 25 4
gpt4 key购买 nike

我正在尝试编译一个包含静态 OpenSSL Fips 库的静态包装器 dll。

我已链接:

C:\Work\win_x64\fipscanister.lib
C:\Work\libeayfips32.lib
C:\Work\ssleay32.lib
ws2_32.lib
crypt32.lib

我还在 includes 目录中包含了 libs 的目录。

我添加了在 openssl-fip2.0 构建期间生成的 fips_premain.c 文件。我将 SHA1_HASH_SIG 调整为等于 fips_premain.c.sha1 中的值

我正在使用 Visual Studio 2017 构建我的包装器 dll。我在我的项目中包含了包装器 dll。当我调用 FIPS_mode_set(1) 时,出现以下错误:

17480:error:2D0A3073:FIPS routines:func(163):fips selftest failed:
.\crypto\ecdh\ech_ossl.c:125: Exception thrown:
'System.Exception' in Test.OpenSSL.dll [Test][11872][26]
ERROR [Native][-] 2018-10-03T01:13:54.971Z ERROR
Setting fips mode: fingerprint does not match
[Native][11872][27] ERROR [Native][-] 2018-10-03T01:13:54.972Z
ERROR Setting fips mode: fingerprint does not match Exception thrown: 'System.Exception'
in Test.OpenSSL.dll Exception thrown:
'System.NullReferenceException' in Test.OpenSSL.dll

当我运行 nmake f ms\nt.mak test 时,所有测试都成功完成

我一定是在某处遗漏了一步,我很好奇其他人是如何让它发挥作用的。

我构建的库是这样的:

perl Configure VC-WIN64A --prefix=C:\Build-OpenSSL-VC-64 
ms\do_win64a
nmake -f ms\nt.mak
nmake -f ms\nt.mak install

我使用的是 openssl-1.0.2p 和 openssl-fips-2.0.16 两者都正确构建,这让我想到我是如何构建包装器的。或者它可能无法处理散列,因为它被包装了?

最佳答案

所以我必须将 fips_premain.c 添加到我的 visual studio 项目中。运行传入我的新静态库的 fips_premain_dso.exe(确保 fips_premain.c 未更改,否则它不会生成哈希值),然后将哈希值放入 fips_premain.c,然后在 visual studio 中重建,它可以工作:D

关于c++ - C++ 包装器库中的 OpenSSL Fips 如何操作?错误 : fingerprint does not match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52618540/

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