我正在尝试将OpenSSL FIPS对象模块v2.0与基础OpenSSL库(1.0.1c)一起使用,以使我的应用程序FIPS 140-2投诉。问题是我无法弄清楚如何使用FIPS对象模块中的DRBG API来替换我的RAND_ *调用。
我可以看到在OpenSSL模块中进行的RAND_bytes调用的几个实例,并且还在其他库/源文件(OpenSSL之外)中使用它们。 http://www.openssl.org/docs/fips/UserGuide-2.0.pdf中提供的用户文档讨论了相应的API,但未说明需要将哪些调用映射到其各自的RAND_ *对应项。
我试过在各种论坛上寻找这些信息但到目前为止还不幸运。如果有人能帮助我理解如何使用这些电话并替换当前正在使用的RAND_ *电话,我将不胜感激。
谢谢, 和Sandeep
答案 0 :(得分:2)
问题是我无法弄清楚如何使用DRBG API 来自FIPS对象模块,用于替换我的RAND_ *调用。
一旦您致电FIPS_mode_set
(并假设它返回非零),您就使用了NIST批准的DRBG。来自OpenSSL的Random Numbers wiki page:
默认DRBG是使用派生函数的256位CTR AES ... To 使用FIPS随机数生成器,只需使用RAND_bytes作为 如前所述。请注意,对FIPS_mode_set的调用必须成功 为了在FIPS 140模式下运行。