Как использовать кросс-платформенный режим FIPS библиотеки Poco C ++? - PullRequest
0 голосов
/ 30 апреля 2018

Мы оцениваем библиотеки Poco C ++ для использования в нашем продукте. Нам нужно, чтобы наше программное обеспечение было совместимым с FIPS и работало на платформах Windows, Linux и OSX. Poco C ++, кажется, имеет режим FIPS из документации метода Poco::Crypto::OpenSSLInitializer::enableFIPSMode. Но документация слишком короткая. Если я открою его файл H, я вижу только этот комментарий:

Включение или отключение режима FIPS. Если FIPS недоступен, этот метод ничего не делает.

Исходя из этой информации, мне неясно, как использовать режим FIPS в Poco. А именно

  1. Доступно ли это на всех поддерживаемых платформах?
  2. Требуется ли для этого какой-либо макрос времени компиляции? Например, я могу найти проверку макроса для OPENSSL_FIPS в H-файлах Poco. Нужно ли определять его при сборке?
  3. Какую версию OpenSSL следует использовать для включения режима FIPS Poco? Любая функция OpenSSL, которую нам нужно вызвать, чтобы инициализировать ее в режиме FIPS?

Где я могу найти достаточно информации об этом?

1 Ответ

0 голосов
/ 30 апреля 2018

Все вопросы действительно связаны с openssl, потому что POCO - это только оболочка, делегирующая вызовы openssl в библиотеку openssl.

  1. это зависит от того, какую версию openssl вы используете
  2. OPENSSL_FIPS - это макрос openssl - он либо определяется, либо не определяется во время компиляции openssl; если он не включен, то он не поддерживается во время выполнения; проверьте opensslconf.h, чтобы увидеть, включен ли он
  3. версия openssl, которая способна и имеет включенную FIPS, как описано в 2 .; обратитесь к документации openssl для соответствующей платформы / выпуска
...