如何使用Poco C++库的FIPS模式跨平台?



我们正在评估 Poco C++库是否用于我们的产品。我们需要我们的软件符合FIPS标准,并在Windows,Linux和OSX平台上工作。Poco C++似乎具有Poco::Crypto::OpenSSLInitializer::enableFIPSMode方法文档中的 FIPS 模式。但是文档太短了。如果我打开它的 H 文件,我只能看到这条评论:

启用或禁用 FIPS 模式。如果 FIPS 不可用,则此方法 什么都不做。

基于这些信息,我不清楚如何使用 Poco 的 FIPS 模式。即

  1. 它是否在所有受支持的平台上都可用?
  2. 是否需要为此定义任何编译时宏?例如,我可以在 Poco 的 H 文件中找到OPENSSL_FIPS的宏检查。我需要在构建时定义它吗?
  3. 应该使用什么版本的OpenSSL来启用Poco的FIPS模式?我们需要调用任何 OpenSSL 函数来初始化它以用于 FIPS 模式?

我在哪里可以找到有关此的足够信息?

所有的问题都与openssl相关,因为POCO只是一个包装器,将openssl调用委托给openssl库。

  1. 这取决于您使用的OpenSSL版本
  2. OPENSSL_FIPS是一个 openssl 宏 - 它在编译时由 openssl 定义或未定义;如果未启用,则在运行时不支持它;检查您的opensslconf.h以查看它是否已启用
  3. 能够
  4. 启用 FIPS 的 openSSL 版本,如 2 中所述;有关相应的平台/版本,请参阅 OpenSSL 文档

最新更新