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

时间:2018-04-30 09:13:45

标签: c++ openssl cryptography poco-libraries 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模式吗?
  4. 我在哪里可以找到有关此内容的足够信息?

1 个答案:

答案 0 :(得分:1)

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

  1. 这取决于您使用的openssl版本
  2. OPENSSL_FIPS是一个openssl宏 - 它在openssl编译时定义或不定义;如果未启用,则在运行时不支持;检查您的opensslconf.h以查看是否已启用
  3. 一个版本的openssl,它能够并且如2所述启用了FIPS。请参阅各个平台/发布的openssl文档