diff options
Diffstat (limited to 'test/openssl/test_fips.rb')
-rw-r--r-- | test/openssl/test_fips.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/openssl/test_fips.rb b/test/openssl/test_fips.rb new file mode 100644 index 00000000..8cd474f9 --- /dev/null +++ b/test/openssl/test_fips.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true +require_relative 'utils' + +if defined?(OpenSSL) + +class OpenSSL::TestFIPS < OpenSSL::TestCase + def test_fips_mode_is_reentrant + OpenSSL.fips_mode = false + OpenSSL.fips_mode = false + end + + def test_fips_mode_get + return unless OpenSSL::OPENSSL_FIPS + assert_separately([{ "OSSL_MDEBUG" => nil }, "-ropenssl"], <<~"end;") + require #{__FILE__.dump} + + begin + OpenSSL.fips_mode = true + assert OpenSSL.fips_mode == true, ".fips_mode returns true when .fips_mode=true" + + OpenSSL.fips_mode = false + assert OpenSSL.fips_mode == false, ".fips_mode returns false when .fips_mode=false" + rescue OpenSSL::OpenSSLError + pend "Could not set FIPS mode (OpenSSL::OpenSSLError: \#$!); skipping" + end + end; + end +end + +end |