我们正在评估 Poco C++库是否用于我们的产品。我们需要我们的软件符合FIPS标准,并在Windows,Linux和OSX平台上工作。Poco C++似乎具有Poco::Crypto::OpenSSLInitializer::enableFIPSMode
方法文档中的 FIPS 模式。但是文档太短了。如果我打开它的 H 文件,我只能看到这条评论:
启用或禁用 FIPS 模式。如果 FIPS 不可用,则此方法 什么都不做。
基于这些信息,我不清楚如何使用 Poco 的 FIPS 模式。即
- 它是否在所有受支持的平台上都可用?
- 是否需要为此定义任何编译时宏?例如,我可以在 Poco 的 H 文件中找到
OPENSSL_FIPS
的宏检查。我需要在构建时定义它吗? - 应该使用什么版本的OpenSSL来启用Poco的FIPS模式?我们需要调用任何 OpenSSL 函数来初始化它以用于 FIPS 模式?
我在哪里可以找到有关此的足够信息?
所有的问题都与openssl相关,因为POCO只是一个包装器,将openssl调用委托给openssl库。
- 这取决于您使用的OpenSSL版本 。
- OPENSSL_FIPS是一个 openssl 宏 - 它在编译时由 openssl 定义或未定义;如果未启用,则在运行时不支持它;检查您的
opensslconf.h
以查看它是否已启用
能够 - 启用 FIPS 的 openSSL 版本,如 2 中所述;有关相应的平台/版本,请参阅 OpenSSL 文档