2012-12-18 46 views
2

我正在嘗試使用OpenSSL FIPS對象模塊v2.0與基本OpenSSL庫(1.0.1c)來使我的應用程序FIPS 140-2投訴。問題是我無法弄清楚如何使用FIPS對象模塊中的DRBG API來替換我的RAND_ *調用。如何從OpenSSL中使用DRBG FIPS對象模塊v2.0

我可以在OpenSSL模塊中看到幾個RAND_bytes調用的實例,並在其他庫/源文件(OpenSSL之外)中使用它們。 http://www.openssl.org/docs/fips/UserGuide-2.0.pdf中提供的用戶文檔討論了相應的API,但沒有說明哪些調用需要映射到其各自的RAND_ *對應部分。

我曾試着在各種論壇上尋找這些信息,但迄今爲止並不幸運。如果有人能幫助我瞭解如何使用這些呼叫並替換當前正在使用的RAND_ *呼叫,我將不勝感激。

感謝, 桑迪普

+1

'RAND_' API是一個接口。你不會替換任何'RAND_'調用。相反,你註冊了DRBG(可能在你調用FIPS_mode()或其他東西時自動完成),然後你的RAND_'調用將使用它而不是默認的RNG實現。 – indiv

回答

2

的問題是我無法弄清楚如何使用API​​ DRBG從 的FIPS對象模塊更換我的RAND_ *通話。

一旦您致電FIPS_mode_set(並假設它返回非零),您正在使用NIST批准的DRBG。從OpenSSL的Random Numbers wiki page

默認DRBG是使用256位AES CTR推導功能...要 使用FIPS隨機數生成器,只需使用RAND_bytes如前所述 。請注意,爲了在FIPS 140模式下運行,對FIPS_mode_set的調用必須成功執行 。

+0

Upvoted這個古老的答案,但問題依然存在,如果這些引擎是可用的*沒有切換到FIPS模式*。這僅僅是使用RNG的一大步。 –

相關問題