如何在OpenSSL FIPS对象模块v2.0中使用DRBG

时间:2012-12-18 08:43:32

标签: openssl fips

我正在尝试将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

1 个答案:

答案 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模式下运行。