【发布时间】:2016-04-11 15:07:52
【问题描述】:
背景
我已经使用 OpenSSL FIPS 对象模块编译了 OpenSSL(按照交叉编译到 Android 的说明)。
现在我想在我的代码中使用 SHA256(据我所知,至少有一些 sha256 算法是 FIPS 批准的)。
问题
在运行时调用 set_mode(1) 启用 FIPS 后,以下代码在 OpenSSLDie 中崩溃(大概意思是被 FIPS 禁用)
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, data, len);
SHA256_Final(outputBuffer, &sha256);
问题
似乎调用
private_SHA256_Init可以代替,但这是正确的方法还是规避了 FIPS 合规性? 如果这不是正确的方法,我该如何在 FIPS 模式下计算 SHA256?由于如果不用于加密(由 FIPS-140.2)允许使用未经批准的算法,那么调用私有函数会很好(例如计算 SHA1,这在FIPS 模式,但不能用于加密)
更多信息
使用的版本:openssl-1.0.1q、openssl-fips-2.0.11
【问题讨论】: