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