summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKazuki Yamaguchi <[email protected]>2024-09-05 19:45:31 +0900
committergit <[email protected]>2024-10-31 08:31:16 +0000
commit27d77a9c73009c94864214c684faac38278398c2 (patch)
tree976194f0319b2d24a9c7ae2b71b13d600591a8b3 /test
parent339a8dd5e7da99e82129bcb7f8191f870e0866aa (diff)
[ruby/openssl] pkcs7: remove default cipher from PKCS7.encrypt
Require that users explicitly specify the desired algorithm. In my opinion, we are not in a position to specify the default cipher. When OpenSSL::PKCS7.encrypt is given only two arguments, it uses "RC2-40-CBC" as the symmetric cipher algorithm. 40-bit RC2 is a US export-grade cipher and considered insecure. Although this is technically a breaking change, the impact should be minimal. Even when OpenSSL is compiled with RC2 support and the macro OPENSSL_NO_RC2 is not defined, it will not actually work on modern systems because RC2 is part of the legacy provider. https://github.com/ruby/openssl/commit/439f456bfa
Diffstat (limited to 'test')
-rw-r--r--test/openssl/test_pkcs7.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/test/openssl/test_pkcs7.rb b/test/openssl/test_pkcs7.rb
index c049ed444a..862716b4d8 100644
--- a/test/openssl/test_pkcs7.rb
+++ b/test/openssl/test_pkcs7.rb
@@ -153,6 +153,11 @@ class OpenSSL::TestPKCS7 < OpenSSL::TestCase
assert_equal(data, p7.decrypt(@rsa1024, @ee2_cert))
assert_equal(data, p7.decrypt(@rsa1024))
+
+ # Default cipher has been removed in v3.3
+ assert_raise_with_message(ArgumentError, /RC2-40-CBC/) {
+ OpenSSL::PKCS7.encrypt(certs, data)
+ }
end
def test_empty_signed_data_ruby_bug_19974