FIPS capable openssl
库。 Openssl
版本1.0.2t
和FIPS object module 2.0.16
。FIPS object module
的用户指南,该指南指出,使用FIPS capable openssl
编写程序的最后一步是使用fipsld
将我的程序与openssl
链接,而不是在计算gcc/ld
时将其链接到sha1sum
使用fipscansiter.o
的fipsprelim.c
中的]。FIPS_mode_set(1)
来启用fips
模式。 static
库,并且最终解决了所有依赖关系,因此我们使用libcrypto.a
解压缩ar x libcrypto.a
并将所有openssl
对象文件添加到我们的静态库libapi.a
中。 API_DigitalSignature.cpp
),它是围绕openssl
API进行数字签名的包装。 现在的问题是,我对如何在项目中使用fipsld
感到困惑,因为我不是在生成程序而是在生成存档?
[我还和一些安全人员一起说明,除非我们更改任何libcrypto.a
,否则打开FIPS
的包装不会影响ciphers
的验证。
以下内容对我有用:MacOS
FIPSLD_CC=gcc /usr/local/ssl/fips-2.0/bin/fipsld -o fips_hmac fips_hmac.c /usr/local/lib/libcrypto.a
Linux(Ubuntu)
FIPSLD_CC=gcc /usr/local/ssl/fips-2.0/bin/fipsld -o fips_hmac fips_hmac.c /usr/local/ssl/lib/libcrypto.a -I/usr/local/ssl/include -ldl
fips_hmac.c
是我编写的用于测试FIPS的简单C程序。您应该为fipsld
和libcrypto.a
指定与您的系统相关的路径。
请注意Linux解决方案中的标志-ldl