From 8ca0d53fd09b2032d990b0ab92ec63f408861dbc Mon Sep 17 00:00:00 2001 From: Jun Aruga Date: Mon, 14 Aug 2023 17:13:22 +0200 Subject: [PATCH] [ruby/openssl] Use openssl? instead of OpenSSL::OPENSSL_VERSION_NUMBER. Update the `openssl?` method by adding status argument. Note the format is below. * OpenSSL 3: 0xMNN00PP0 (major minor 00 patch 0) * OpenSSL 1: 0xMNNFFPPS (major minor fix patch status) See for details. https://github.com/ruby/openssl/commit/db8deaacd3 --- test/openssl/test_cipher.rb | 2 +- test/openssl/test_pkey.rb | 2 +- test/openssl/utils.rb | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/test/openssl/test_cipher.rb b/test/openssl/test_cipher.rb index 1c8610b2a9b3bc..8faa57064872c4 100644 --- a/test/openssl/test_cipher.rb +++ b/test/openssl/test_cipher.rb @@ -205,7 +205,7 @@ def test_aes_ccm assert_raise(OpenSSL::Cipher::CipherError) { cipher.update(ct2) } end if has_cipher?("aes-128-ccm") && OpenSSL::Cipher.new("aes-128-ccm").authenticated? && - OpenSSL::OPENSSL_VERSION_NUMBER >= 0x1010103f # version >= 1.1.1c + openssl?(1, 1, 1, 0x03, 0xf) # version >= 1.1.1c def test_aes_gcm # GCM spec Appendix B Test Case 4 diff --git a/test/openssl/test_pkey.rb b/test/openssl/test_pkey.rb index 691dd74aab5c91..9233132380a840 100644 --- a/test/openssl/test_pkey.rb +++ b/test/openssl/test_pkey.rb @@ -188,7 +188,7 @@ def test_x25519 end def raw_initialize - pend "Ed25519 is not implemented" unless OpenSSL::OPENSSL_VERSION_NUMBER >= 0x10101000 && # >= v1.1.1 + pend "Ed25519 is not implemented" unless openssl?(1, 1, 1) # >= v1.1.1 assert_raise(OpenSSL::PKey::PKeyError) { OpenSSL::PKey.new_raw_private_key("foo123", "xxx") } assert_raise(OpenSSL::PKey::PKeyError) { OpenSSL::PKey.new_raw_private_key("ED25519", "xxx") } diff --git a/test/openssl/utils.rb b/test/openssl/utils.rb index f00084ffd322d7..3d4d05fe02ebc7 100644 --- a/test/openssl/utils.rb +++ b/test/openssl/utils.rb @@ -131,11 +131,12 @@ def get_subject_key_id(cert, hex: true) end end - def openssl?(major = nil, minor = nil, fix = nil, patch = 0) + def openssl?(major = nil, minor = nil, fix = nil, patch = 0, status = 0) return false if OpenSSL::OPENSSL_VERSION.include?("LibreSSL") return true unless major OpenSSL::OPENSSL_VERSION_NUMBER >= - major * 0x10000000 + minor * 0x100000 + fix * 0x1000 + patch * 0x10 + major * 0x10000000 + minor * 0x100000 + fix * 0x1000 + patch * 0x10 + + status * 0x1 end def libressl?(major = nil, minor = nil, fix = nil)