aboutsummaryrefslogtreecommitdiffstats
path: root/test/openssl/test_fips.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/openssl/test_fips.rb')
-rw-r--r--test/openssl/test_fips.rb30
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