diff options
Diffstat (limited to 'test/rubygems/test_gem_security_signer.rb')
-rw-r--r-- | test/rubygems/test_gem_security_signer.rb | 83 |
1 files changed, 42 insertions, 41 deletions
diff --git a/test/rubygems/test_gem_security_signer.rb b/test/rubygems/test_gem_security_signer.rb index 7bd6510b50..f4799cbd46 100644 --- a/test/rubygems/test_gem_security_signer.rb +++ b/test/rubygems/test_gem_security_signer.rb @@ -1,18 +1,19 @@ # frozen_string_literal: true -require_relative 'helper' + +require_relative "helper" unless Gem::HAVE_OPENSSL - warn 'Skipping Gem::Security::Signer tests. openssl not found.' + warn "Skipping Gem::Security::Signer tests. openssl not found." end class TestGemSecuritySigner < Gem::TestCase - ALTERNATE_KEY = load_key 'alternate' - CHILD_KEY = load_key 'child' - GRANDCHILD_KEY = load_key 'grandchild' + ALTERNATE_KEY = load_key "alternate" + CHILD_KEY = load_key "child" + GRANDCHILD_KEY = load_key "grandchild" - CHILD_CERT = load_cert 'child' - GRANDCHILD_CERT = load_cert 'grandchild' - EXPIRED_CERT = load_cert 'expired' + CHILD_CERT = load_cert "child" + GRANDCHILD_CERT = load_cert "grandchild" + EXPIRED_CERT = load_cert "expired" def setup super @@ -36,36 +37,36 @@ class TestGemSecuritySigner < Gem::TestCase def test_initialize_cert_chain_mixed signer = Gem::Security::Signer.new nil, [@cert_file, CHILD_CERT] - assert_equal [PUBLIC_CERT, CHILD_CERT].map {|c| c.to_pem }, - signer.cert_chain.map {|c| c.to_pem } + assert_equal [PUBLIC_CERT, CHILD_CERT].map(&:to_pem), + signer.cert_chain.map(&:to_pem) end def test_initialize_cert_chain_invalid assert_raise OpenSSL::X509::CertificateError do - Gem::Security::Signer.new nil, ['garbage'] + Gem::Security::Signer.new nil, ["garbage"] end end def test_initialize_cert_chain_path signer = Gem::Security::Signer.new nil, [@cert_file] - assert_equal [PUBLIC_CERT].map {|c| c.to_pem }, - signer.cert_chain.map {|c| c.to_pem } + assert_equal [PUBLIC_CERT].map(&:to_pem), + signer.cert_chain.map(&:to_pem) end def test_initialize_default - FileUtils.mkdir_p File.join(Gem.user_home, '.gem') + FileUtils.mkdir_p File.join(Gem.user_home, ".gem") - private_key_path = File.join Gem.user_home, '.gem', 'gem-private_key.pem' + private_key_path = File.join Gem.user_home, ".gem", "gem-private_key.pem" Gem::Security.write PRIVATE_KEY, private_key_path - public_cert_path = File.join Gem.user_home, '.gem', 'gem-public_cert.pem' + public_cert_path = File.join Gem.user_home, ".gem", "gem-public_cert.pem" Gem::Security.write PUBLIC_CERT, public_cert_path signer = Gem::Security::Signer.new nil, nil assert_equal PRIVATE_KEY.to_pem, signer.key.to_pem - assert_equal [PUBLIC_CERT.to_pem], signer.cert_chain.map {|c| c.to_pem } + assert_equal [PUBLIC_CERT.to_pem], signer.cert_chain.map(&:to_pem) end def test_initialize_key_path @@ -87,7 +88,7 @@ class TestGemSecuritySigner < Gem::TestCase def test_extract_name signer = Gem::Security::Signer.new nil, nil - assert_equal 'child@example', signer.extract_name(CHILD_CERT) + assert_equal "child@example", signer.extract_name(CHILD_CERT) end def test_load_cert_chain @@ -99,7 +100,7 @@ class TestGemSecuritySigner < Gem::TestCase signer.load_cert_chain assert_equal [PUBLIC_CERT.to_pem, CHILD_CERT.to_pem], - signer.cert_chain.map {|c| c.to_pem } + signer.cert_chain.map(&:to_pem) end def test_load_cert_chain_broken @@ -111,31 +112,31 @@ class TestGemSecuritySigner < Gem::TestCase signer.load_cert_chain assert_equal [CHILD_CERT.to_pem, GRANDCHILD_CERT.to_pem], - signer.cert_chain.map {|c| c.to_pem } + signer.cert_chain.map(&:to_pem) end def test_sign signer = Gem::Security::Signer.new PRIVATE_KEY, [PUBLIC_CERT] - signature = signer.sign 'hello' + signature = signer.sign "hello" expected = <<-EXPECTED -cHze2sEfRysoUMCfGVAx/7o8jxj5liJJ2ptNxe2jf3l+EZvyjdqpXo9Ndzxx -6xLp2rxLG4K2//ip4aCH5Sh7hnia+F5u6iuLBETPlklPrmw5dnuKZxolz+vM -0O1aOZsQHcVzQoESTGjkms3KZk+gn3lg0sSBbAV5/LyDYoHCEjxlcA5D+Olb -rDmRyBMOnMS+q489OZ5Hr6B2YJJ3QbUwIZNhUeNmOxIBEYTrrKkZ92qkxbRN -qhlqFP4jR6zXFeyBCOr0KpTiWBNuxBFXDsxmhGyt2BOIjD6qmKn7RSIfYg/U -toqvglr0kdbknSRRjBVLK6tsgr07aLT9gNP7mTW2PA== +FmrCYxEXW3dgYYNMxPdS16VrdXT+d5nyXTVlRm64ZHSgMxMAaPtQJsVYv73m +DWHTzNnLhhINSpgBMLh5a4atM52yxVdkPUTgqIH+LeIPBXn8xaP5JLmfDcmI +tBpc/9DhS3v9iKCX40igAArFu7Gg3swbgQ61SP+U22LvG5nDQZQz3sudtsw3 +qKPykFVaYjrRwzvBdSdJ1PwlAsanSwcwS/GKPtmE/ykZ6X5XOx7wvCDL/zGy +B8khkB8hDKC6moCzebmUxCBmTmXD0Wjzon+bf4MOriVE3a0ySGRvpr1mKR2+ +9EaVo7pDJLEM487+xg1CAZHRhwshd6II00XEzG/jBQ== EXPECTED - assert_equal expected, [signature].pack('m') + assert_equal expected, [signature].pack("m") end def test_sign_expired signer = Gem::Security::Signer.new PRIVATE_KEY, [EXPIRED_CERT] e = assert_raise Gem::Security::Exception do - signer.sign 'hello' + signer.sign "hello" end assert_match "certificate /CN=nobody/DC=example not valid after 1970-01-01 00:00:00 UTC", e.message @@ -143,17 +144,17 @@ toqvglr0kdbknSRRjBVLK6tsgr07aLT9gNP7mTW2PA== def test_sign_expired_auto_update pend if Gem.java_platform? - FileUtils.mkdir_p File.join(Gem.user_home, '.gem'), :mode => 0700 + FileUtils.mkdir_p File.join(Gem.user_home, ".gem"), mode: 0o700 - private_key_path = File.join(Gem.user_home, '.gem', 'gem-private_key.pem') + private_key_path = File.join(Gem.user_home, ".gem", "gem-private_key.pem") Gem::Security.write PRIVATE_KEY, private_key_path - cert_path = File.join Gem.user_home, '.gem', 'gem-public_cert.pem' + cert_path = File.join Gem.user_home, ".gem", "gem-public_cert.pem" Gem::Security.write EXPIRED_CERT, cert_path signer = Gem::Security::Signer.new PRIVATE_KEY, [EXPIRED_CERT] - signer.sign 'hello' + signer.sign "hello" cert = OpenSSL::X509::Certificate.new File.read cert_path @@ -163,14 +164,14 @@ toqvglr0kdbknSRRjBVLK6tsgr07aLT9gNP7mTW2PA== expiry = EXPIRED_CERT.not_after.strftime "%Y%m%d%H%M%S" expired_path = - File.join Gem.user_home, '.gem', "gem-public_cert.pem.expired.#{expiry}" + File.join Gem.user_home, ".gem", "gem-public_cert.pem.expired.#{expiry}" assert_path_exist expired_path assert_equal EXPIRED_CERT.to_pem, File.read(expired_path) end def test_sign_expired_auto_update_exists - FileUtils.mkdir_p File.join(Gem.user_home, '.gem'), :mode => 0700 + FileUtils.mkdir_p File.join(Gem.user_home, ".gem"), mode: 0o700 expiry = EXPIRED_CERT.not_after.strftime "%Y%m%d%H%M%S" expired_path = @@ -178,16 +179,16 @@ toqvglr0kdbknSRRjBVLK6tsgr07aLT9gNP7mTW2PA== Gem::Security.write EXPIRED_CERT, expired_path - private_key_path = File.join(Gem.user_home, 'gem-private_key.pem') + private_key_path = File.join(Gem.user_home, "gem-private_key.pem") Gem::Security.write PRIVATE_KEY, private_key_path - cert_path = File.join Gem.user_home, 'gem-public_cert.pem' + cert_path = File.join Gem.user_home, "gem-public_cert.pem" Gem::Security.write EXPIRED_CERT, cert_path signer = Gem::Security::Signer.new PRIVATE_KEY, [EXPIRED_CERT] e = assert_raise Gem::Security::Exception do - signer.sign 'hello' + signer.sign "hello" end assert_match %r{certificate /CN=nobody/DC=example not valid}, e.message @@ -196,14 +197,14 @@ toqvglr0kdbknSRRjBVLK6tsgr07aLT9gNP7mTW2PA== def test_sign_no_key signer = Gem::Security::Signer.new nil, nil - assert_nil signer.sign 'stuff' + assert_nil signer.sign "stuff" end def test_sign_wrong_key signer = Gem::Security::Signer.new ALTERNATE_KEY, [PUBLIC_CERT] assert_raise Gem::Security::Exception do - signer.sign 'hello' + signer.sign "hello" end end @@ -211,7 +212,7 @@ toqvglr0kdbknSRRjBVLK6tsgr07aLT9gNP7mTW2PA== signer = Gem::Security::Signer.new ALTERNATE_KEY, [] assert_raise Gem::Security::Exception do - signer.sign 'hello' + signer.sign "hello" end end end if Gem::HAVE_OPENSSL |