我已经在 fips 模式下构建了 OpenSSL 并尝试构建 python3,并使用现有的 OpenSSL 库。
LDD 命令显示它正确的加密和 ssl 共享对象。
此外,我可以从 ssl.OPENSSL_VERSION 获取正确的版本
但即使在设置 FIPS_mode()
后,哈希 md5 执行也不会出现错误。
下面是输出
Python 3.6.5 (default, Feb 6 2020, 08:35:23)
GCC 4.7.4] on linux
OPENSSL_VERSION: XXXXXX 1.0.2u.XXXXX-fips
FIPS_mode(): 0
FIPS_mode_set(1): 1
FIPS_mode(): 1
SHA1: da39a3ee5e6b4b0d3255bfef95601890afd80709
MD5: d41d8cd98f00b204e9800998ecf8427e
我无法弄清楚为什么 MD5 没有失败。
最佳答案
这种情况是因为Python自带了自己的MD5。这可以在 python3 hashlib.py 文件中看到,其中首先尝试加载 OpenSSL md5,如果找不到,那么它将加载自己的 md5 库(_md5)。
关于python - 链接 Python3 的 Openssl-FIPS 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60090838/