summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-08 06:01:49 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-08 06:01:49 +0000
commit75894547f50888b86f15c118b6e047d8b9a94a74 ()
tree09640cd4d0e802d5071f2ed71934c230405d5bf8
parentee68f78c2462908882e3394f8a91631ec4a45beb (diff)
* lib/rubygems/commands/cleanup_command.rb: Skip default gems when
cleaning up. * test/rubygems/test_gem_commands_cleanup_command.rb: Test for above. * lib/rubygems/commands/query_command.rb: Fixed listing remote gems. * lib/rubygems/dependency_installer.rb: Ignore non-files when looking for local gems. * test/rubygems/test_gem_dependency_installer.rb: Test for above. * lib/rubygems/uninstaller.rb: The user must confirm uninstalling gems that have dependencies. * test/rubygems/test_gem_uninstaller.rb: Test for above. * lib/rubygems.rb (module Gem): Updated version. * test/rubygems/*.pem: Updated to run in FIPS mode. * test/rubygems/test_gem_security.rb: ditto. * test/rubygems/test_gem_security_signer.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog22
-rw-r--r--lib/rubygems.rb2
-rw-r--r--lib/rubygems/commands/cleanup_command.rb29
-rw-r--r--lib/rubygems/commands/query_command.rb4
-rw-r--r--lib/rubygems/dependency_installer.rb8
-rw-r--r--lib/rubygems/uninstaller.rb2
-rw-r--r--test/rubygems/alternate_cert.pem23
-rw-r--r--test/rubygems/alternate_cert_32.pem23
-rw-r--r--test/rubygems/alternate_key.pem32
-rw-r--r--test/rubygems/child_cert.pem23
-rw-r--r--test/rubygems/child_cert_32.pem23
-rw-r--r--test/rubygems/child_key.pem32
-rw-r--r--test/rubygems/expired_cert.pem23
-rw-r--r--test/rubygems/future_cert.pem23
-rw-r--r--test/rubygems/future_cert_32.pem23
-rw-r--r--test/rubygems/grandchild_cert.pem23
-rw-r--r--test/rubygems/grandchild_cert_32.pem23
-rw-r--r--test/rubygems/grandchild_key.pem32
-rw-r--r--test/rubygems/invalid_issuer_cert.pem23
-rw-r--r--test/rubygems/invalid_issuer_cert_32.pem23
-rw-r--r--test/rubygems/invalid_key.pem32
-rw-r--r--test/rubygems/invalid_signer_cert.pem23
-rw-r--r--test/rubygems/invalid_signer_cert_32.pem23
-rw-r--r--test/rubygems/invalidchild_cert.pem23
-rw-r--r--test/rubygems/invalidchild_cert_32.pem23
-rw-r--r--test/rubygems/invalidchild_key.pem32
-rw-r--r--test/rubygems/private_key.pem32
-rw-r--r--test/rubygems/public_cert.pem22
-rw-r--r--test/rubygems/public_cert_32.pem24
-rw-r--r--test/rubygems/public_key.pem9
-rw-r--r--test/rubygems/test_gem_commands_cleanup_command.rb20
-rw-r--r--test/rubygems/test_gem_dependency_installer.rb30
-rw-r--r--test/rubygems/test_gem_security.rb16
-rw-r--r--test/rubygems/test_gem_security_signer.rb8
-rw-r--r--test/rubygems/test_gem_uninstaller.rb16
-rw-r--r--test/rubygems/wrong_key_cert.pem23
-rw-r--r--test/rubygems/wrong_key_cert_32.pem23
37 files changed, 593 insertions, 202 deletions
@@ -1,3 +1,25 @@
Sat Dec 8 12:34:01 2012 Shugo Maeda <[email protected]>
* vm_insnhelper.c (vm_search_normal_superclass): super in a
@@ -98,7 +98,7 @@
require 'rbconfig'
module Gem
- VERSION = '2.0.0.preview2'
end
# Must be first since it unloads the prelude from 1.9.2
@@ -47,16 +47,17 @@ are not removed.
end
end
- gems_to_cleanup = unless options[:args].empty? then
- options[:args].map do |gem_name|
- Gem::Specification.find_all_by_name gem_name
- end.flatten
- else
- Gem::Specification.to_a
- end
-
- gems_to_cleanup = gems_to_cleanup.select { |spec|
- primary_gems[spec.name].version != spec.version
}
full = Gem::DependencyList.from_specs
@@ -102,6 +103,14 @@ are not removed.
end
say "Clean Up Complete"
end
end
@@ -132,8 +132,8 @@ class Gem::Commands::QueryCommand < Gem::Command
if options[:name].source.empty?
spec_tuples = fetcher.detect(type) { true }
else
- spec_tuples = fetcher.detect(type) do |gem_name, ver, plat|
- options[:name] === gem_name
end
end
@@ -33,6 +33,7 @@ class Gem::DependencyInstaller
:prerelease => false,
:security_policy => nil, # HACK NoSecurity requires OpenSSL. AlmostNo? Low?
:wrappers => true,
:build_docs_in_background => false,
}.freeze
@@ -53,6 +54,7 @@ class Gem::DependencyInstaller
# :security_policy:: See Gem::Installer::new and Gem::Security.
# :user_install:: See Gem::Installer.new
# :wrappers:: See Gem::Installer::new
def initialize(options = {})
if options[:install_dir] then
@@ -79,6 +81,7 @@ class Gem::DependencyInstaller
@security_policy = options[:security_policy]
@user_install = options[:user_install]
@wrappers = options[:wrappers]
@build_docs_in_background = options[:build_docs_in_background]
# Indicates that we should not try to update any deps unless
@@ -257,7 +260,7 @@ class Gem::DependencyInstaller
set = Gem::AvailableSet.new
if consider_local?
- if File.exists? gem_name
src = Gem::Source::SpecificFile.new(gem_name)
set.add src.spec, src
else
@@ -353,7 +356,8 @@ class Gem::DependencyInstaller
:install_dir => @install_dir,
:security_policy => @security_policy,
:user_install => @user_install,
- :wrappers => @wrappers
spec = inst.install
@@ -296,7 +296,7 @@ class Gem::Uninstaller
msg << 'If you remove this gem, these dependencies will not be met.'
msg << 'Continue with Uninstall?'
- return ask_yes_no(msg.join("\n"), true)
end
def formatted_program_filename(filename)
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBSjCB9aADAgECAgEBMA0GCSqGSIb3DQEBBQUAMC0xEjAQBgNVBAMMCWFsdGVy
-bmF0ZTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwIBcNMTIwMTIzMjM0MzIzWhgP
-OTk5OTEyMzEyMzU5NTlaMC0xEjAQBgNVBAMMCWFsdGVybmF0ZTEXMBUGCgmSJomT
-8ixkARkWB2V4YW1wbGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA0lN/jShlFg0t
-+h1L2gkdi2UXFnfLnXNh+J3Jolh4/Pd8rdzKTdnCep2nqDIRimnlEjO1+I3u7aur
-Uc4b1AhX5QIDAQABMA0GCSqGSIb3DQEBBQUAA0EAidcjR8U5VFcds1Tv8bnz3Z+P
-w7lmN1HOmwnQht1ZTVbqmqKzxEXgf4AkZRoIT96gPRV87HwJ5PP/pDYmv3LR8g==
-----END CERTIFICATE-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBSDCB86ADAgECAgEBMA0GCSqGSIb3DQEBBQUAMC0xEjAQBgNVBAMMCWFsdGVy
-bmF0ZTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwHhcNMTIwMTEyMjMwODI5WhcN
-MzgwMTE5MDMxNDA3WjAtMRIwEAYDVQQDDAlhbHRlcm5hdGUxFzAVBgoJkiaJk/Is
-ZAEZFgdleGFtcGxlMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANJTf40oZRYNLfod
-S9oJHYtlFxZ3y51zYfidyaJYePz3fK3cyk3Zwnqdp6gyEYpp5RIztfiN7u2rq1HO
-G9QIV+UCAwEAATANBgkqhkiG9w0BAQUFAANBAH9YxSERfWdqipZbQGDmx2F8e5O2
-6zbDialEy+bD8juhzWa6nIPaoQzeSkD0lw98OXpVyE0vhnGS1rlVH3725Xw=
-----END CERTIFICATE-----
@@ -1,9 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
-MIIBOgIBAAJBANJTf40oZRYNLfodS9oJHYtlFxZ3y51zYfidyaJYePz3fK3cyk3Z
-wnqdp6gyEYpp5RIztfiN7u2rq1HOG9QIV+UCAwEAAQJAAM1kvSscR5tBQ6T89xX1
-0ORP1DwcwLsB8qrXbBEeVQiy4aAcfUgKbMxiSEL3iogoHnKK6VFmu4bH4v360dJl
-OQIhAO97aiKxP6u+Y1oNyScF2lViu81xR4jlL/DjD8I+oBr/AiEA4NVFey13ks3U
-2DTHU3qhU6y+MmYv0aCInf49hMt1gRsCIQCvSiR71EWIjkjmh6Su3Yfca/KPA9Wa
-jDc1GN5WDcTfPQIgaYzWLKjAvQOyi7njZdZpTG4JcIG2q1QRLxL/cItP48cCIFvI
-/R7PnPrVdF5G2QT7DZyrHjjtqnyW76zwU3MSxZMJ
-----END RSA PRIVATE KEY-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBQzCB7qADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
-eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwIBcNMTIwMTEzMDAxNTE4WhgPOTk5
-OTEyMzEyMzU5NTlaMCkxDjAMBgNVBAMMBWNoaWxkMRcwFQYKCZImiZPyLGQBGRYH
-ZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC93Mml1yQmsUDalFT1PH4z
-z8Al8ki969L/NHUWdkG6DuM0krWiWPBkO+Moj+6NMH2TrGWyHPfYv5zQ3zn9ai+d
-AgMBAAEwDQYJKoZIhvcNAQEFBQADQQCKb9V9Wl6hQNuDsn38Ceg6gCh9hXqvHrCz
-/pzoFjTxZfsYCNapXp1hzb8cUijzi2YalXzUpg7zgEowLZpZD94s
-----END CERTIFICATE-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBQzCB7qADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
-eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwIBcNMTIwMTEzMDAxNTE4WhgPMjAz
-ODAxMTkwMzE0MDdaMCkxDjAMBgNVBAMMBWNoaWxkMRcwFQYKCZImiZPyLGQBGRYH
-ZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC93Mml1yQmsUDalFT1PH4z
-z8Al8ki969L/NHUWdkG6DuM0krWiWPBkO+Moj+6NMH2TrGWyHPfYv5zQ3zn9ai+d
-AgMBAAEwDQYJKoZIhvcNAQEFBQADQQB7JhifNXK4PTYVZv5NYmqyi4ze7h2sxxNl
-hqjzIj+GFsf/5uFt0Oz/n8VCE/LEWVKhejiyiaLxN7nLjszW7EGq
-----END CERTIFICATE-----
@@ -1,9 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
-MIIBOgIBAAJBAL3cyaXXJCaxQNqUVPU8fjPPwCXySL3r0v80dRZ2QboO4zSStaJY
-8GQ74yiP7o0wfZOsZbIc99i/nNDfOf1qL50CAwEAAQJAEBEhF2Gvc37IiDbJQb+O
-xn+sOQnZ0gik4GfmCLKVOVNn4mxJI2fJe/6qUyt5Bp0nTuY+jfx9XFIlx3A3QZY6
-mQIhAN0E92rtcTvTy5lPO+hAeUQu59q6+HzC7HJJOevPWlqrAiEA2+lvvNOyZXUD
-VmlyexQ1VdNLQtqRWtQd2PBtg0W4HtcCIAU7C9v0+JwQ3B2puWI6vGP3tDcB+8WA
-G3Zs8zj4dEv3AiBdSLB1UPejwfcgeKpvOytEtNSAD2cJOGFQ3OwXe0OXEQIhAJXR
-I7JTU0DJF+dqpR7jr1hQSXibdEXP7MIJUSK4uLUs
-----END RSA PRIVATE KEY-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBQjCB7aADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
-eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwHhcNNzAwMTAxMDAwMDAwWhcNNzAw
-MTAxMDAwMDAwWjAqMQ8wDQYDVQQDDAZub2JvZHkxFzAVBgoJkiaJk/IsZAEZFgdl
-eGFtcGxlMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALHKBD9e+mrCnQ7Xs2fdEhxa
-+0mpObjlK7dL6hoNF190aoLwQ6xwiCAMT7WPVs4/XW81Nssq2RkHGiWGxIXnMlsC
-AwEAATANBgkqhkiG9w0BAQUFAANBAE3nKONBLbE97pTsIpM6v8bzCVhtVPfS+6F7
-6WnIDuVUyN0pmVlWqRuEm8WZtrwnu1D6CGNTWwescrIEbQV6dvc=
-----END CERTIFICATE-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBRjCB8aADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
-eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwIhgPOTk5OTEyMzEyMzU5NThaGA85
-OTk5MTIzMTIzNTk1OVowKjEPMA0GA1UEAwwGbm9ib2R5MRcwFQYKCZImiZPyLGQB
-GRYHZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCxygQ/Xvpqwp0O17Nn
-3RIcWvtJqTm45Su3S+oaDRdfdGqC8EOscIggDE+1j1bOP11vNTbLKtkZBxolhsSF
-5zJbAgMBAAEwDQYJKoZIhvcNAQEFBQADQQB0blKxIt6IfzaHHBgMfJwkwtEoDEey
-OEtjX5oz9L0P+l/KjssEFk4fzPiVFHmx9y3KCXhapVvHcgeY7IKGHK7z
-----END CERTIFICATE-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBSDCB86ADAgECAgEBMA0GCSqGSIb3DQEBBQUAMC0xEjAQBgNVBAMMCWFsdGVy
-bmF0ZTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwHhcNMzgwMTE5MDMxNDA2WhcN
-MzgwMTE5MDMxNDA3WjAtMRIwEAYDVQQDDAlhbHRlcm5hdGUxFzAVBgoJkiaJk/Is
-ZAEZFgdleGFtcGxlMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALHKBD9e+mrCnQ7X
-s2fdEhxa+0mpObjlK7dL6hoNF190aoLwQ6xwiCAMT7WPVs4/XW81Nssq2RkHGiWG
-xIXnMlsCAwEAATANBgkqhkiG9w0BAQUFAANBAG7xn/s1GqtjdNA92OOwLP84N7hQ
-Xa4tBtYaP84rC4LJhkYWdhTIM4YM3UpG9obxL1Xh1+92kLTN3/KpLK4EcQQ=
-----END CERTIFICATE-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBRzCB8qADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCkxDjAMBgNVBAMMBWNoaWxk
-MRcwFQYKCZImiZPyLGQBGRYHZXhhbXBsZTAgFw0xMjAxMTMwMTIxNTlaGA85OTk5
-MTIzMTIzNTk1OVowLjETMBEGA1UEAwwKZ3JhbmRjaGlsZDEXMBUGCgmSJomT8ixk
-ARkWB2V4YW1wbGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA12r06nh9Pl7QTM2X
-caPBi5uVLqyM8Bfinxc9/AJfEvvGCix/TFP0Y9E3qVxTc1WDsPdQqTZNqVjb8hi3
-W6246QIDAQABMA0GCSqGSIb3DQEBBQUAA0EAOdAYyauzQqU1x2KkMgf8U3vJZbPl
-zIKWr8mN+eV+YyqQgIkX+/v8AAmOGPO+HJa2Ifs2DwcLdfsqQipkytTVxQ==
-----END CERTIFICATE-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBRzCB8qADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCkxDjAMBgNVBAMMBWNoaWxk
-MRcwFQYKCZImiZPyLGQBGRYHZXhhbXBsZTAgFw0xMjAxMTMwMTIxNTlaGA8yMDM4
-MDExOTAzMTQwN1owLjETMBEGA1UEAwwKZ3JhbmRjaGlsZDEXMBUGCgmSJomT8ixk
-ARkWB2V4YW1wbGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA12r06nh9Pl7QTM2X
-caPBi5uVLqyM8Bfinxc9/AJfEvvGCix/TFP0Y9E3qVxTc1WDsPdQqTZNqVjb8hi3
-W6246QIDAQABMA0GCSqGSIb3DQEBBQUAA0EAMEUY6jNegDA5hUJy7KD80MZCS83e
-pPIQJyAtmOI+J1UR6C1/BHW0Ls1/Ko04R7DcHyGR46wttV7LB1TY7ya4OQ==
-----END CERTIFICATE-----
@@ -1,9 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
-MIIBOgIBAAJBANdq9Op4fT5e0EzNl3GjwYublS6sjPAX4p8XPfwCXxL7xgosf0xT
-9GPRN6lcU3NVg7D3UKk2TalY2/IYt1utuOkCAwEAAQJBAKpS7Td+8Tgha31uiTHX
-Eq854ui2kfE8UXkMvXvGvDma2W40lkQKVLMJO0Y9zfJ+8E4+70nS0Eny+3feErLo
-2aECIQDw9+BSwRVBaEIwGUD4wg8ganZvMBkmU+o+1jUKjbUgrQIhAOTbDeS1NyB5
-Zm2ViTKOMadvzwUZax86TZ1rwfMDIbStAiA9eB4DPjn722q29lo6mtZdAIuBxZVE
-z7c7nE0fihKgaQIgfaDiV5JC2MjLuYxE7EOybj+qXRo++719rdThew1VC2ECIB5f
-4Xzx62LvumYHJ7U56PHbAmSgAqEIixoDc+Bw9pE+
-----END RSA PRIVATE KEY-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBRTCB8KADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
-eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwIBcNMTIwMTEyMjM1NDQyWhgPOTk5
-OTEyMzEyMzU5NTlaMCsxEDAOBgNVBAMMB2ludmFsaWQxFzAVBgoJkiaJk/IsZAEZ
-FgdleGFtcGxlMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANMWNw1TDxEdIz/4s6Km
-4DUd3avjH4/0Fb63/nKWSbacKykvalYCVW3N3xnghgr1mWID1foiMdGZliQXfCll
-yt0CAwEAATANBgkqhkiG9w0BAQUFAANBAIZzMKb/4YOk6pp0jSCDfb8CC2G7LVDt
-b4LE1L2tbT1VQX34AjSprmdyrUXbjA3MYrE/w070Lr256dTr3fq7nWY=
-----END CERTIFICATE-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBQzCB7qADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
-eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwHhcNMTIwMTEyMjM1NTE2WhcNMzgw
-MTE5MDMxNDA3WjArMRAwDgYDVQQDDAdpbnZhbGlkMRcwFQYKCZImiZPyLGQBGRYH
-ZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDTFjcNUw8RHSM/+LOipuA1
-Hd2r4x+P9BW+t/5ylkm2nCspL2pWAlVtzd8Z4IYK9ZliA9X6IjHRmZYkF3wpZcrd
-AgMBAAEwDQYJKoZIhvcNAQEFBQADQQBrExQicbjbw9QvQC9qVVzXLTZ6Zir6OJE7
-pTRsrSWWX7k5tgTUNhDb7xTr9njEAjwBDjMt5pry0MzM4MbT3Kiz
-----END CERTIFICATE-----
@@ -1,9 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
-MIIBOQIBAAJBANMWNw1TDxEdIz/4s6Km4DUd3avjH4/0Fb63/nKWSbacKykvalYC
-VW3N3xnghgr1mWID1foiMdGZliQXfCllyt0CAwEAAQJAXL3z7hzCD+jXZfHlKt9a
-vruiezTM1ziMnUDFwJ6bQGlLuS6BLNTTvKkJuSQ7v9Rj0gzCkOq9ipkb8jFgWyOt
-AQIhAP9f0Pb4YCezCnWv5sEw1iT1TWbe0+72ICY+PEIY4Px9AiEA05qekUe1e/j9
-2ykXZxuFnM1wUO8yLhy6A71EasyKNeECICKfJeBlufuH3XIpH9qvOUkXbJ/2s7rg
-6Wjl5Rt87futAiBTZIhBcSVQ6lwBVzxl4i7SERTGkL4R9jhI6PphrKJ7gQIgH8if
-aoIHSpVKSt+Sheoi84v4CXE/MSU0uVPkqtUiV6A=
-----END RSA PRIVATE KEY-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBRjCB8aADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCsxEDAOBgNVBAMMB2ludmFs
-aWQxFzAVBgoJkiaJk/IsZAEZFgdleGFtcGxlMCAXDTEyMDExMzIyNDE1NVoYDzk5
-OTkxMjMxMjM1OTU5WjArMRAwDgYDVQQDDAdpbnZhbGlkMRcwFQYKCZImiZPyLGQB
-GRYHZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDTFjcNUw8RHSM/+LOi
-puA1Hd2r4x+P9BW+t/5ylkm2nCspL2pWAlVtzd8Z4IYK9ZliA9X6IjHRmZYkF3wp
-ZcrdAgMBAAEwDQYJKoZIhvcNAQEFBQADQQBAT7aP57Q3HJW4EfPAl0anJPpAI8g1
-yWGhg/vUIUpBDImJ+jRJU9AuRGRPKWIRonOon+LV9sammaM4GWsU1FLb
-----END CERTIFICATE-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBRjCB8aADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCsxEDAOBgNVBAMMB2ludmFs
-aWQxFzAVBgoJkiaJk/IsZAEZFgdleGFtcGxlMCAXDTEyMDExMzIyNDE1NVoYDzIw
-MzgwMTE5MDMxNDA3WjArMRAwDgYDVQQDDAdpbnZhbGlkMRcwFQYKCZImiZPyLGQB
-GRYHZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDTFjcNUw8RHSM/+LOi
-puA1Hd2r4x+P9BW+t/5ylkm2nCspL2pWAlVtzd8Z4IYK9ZliA9X6IjHRmZYkF3wp
-ZcrdAgMBAAEwDQYJKoZIhvcNAQEFBQADQQAXkBGQZ4sr9p2uFoluFFqQMQL11npB
-UdhOTcM1XJ1KoyDhyRqD7gy7vxJf+9517eLABWyGMBPlDr7/CFPp/o/D
-----END CERTIFICATE-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBSTCB9KADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCkxDjAMBgNVBAMMBWNoaWxk
-MRcwFQYKCZImiZPyLGQBGRYHZXhhbXBsZTAgFw0xMjAxMTMwMDQ0MTZaGA85OTk5
-MTIzMTIzNTk1OVowMDEVMBMGA1UEAwwMaW52YWxpZGNoaWxkMRcwFQYKCZImiZPy
-LGQBGRYHZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC+tFy6eVKpSmHW
-6QeZG1Egbtz2mcNywUvUZvXQVAMh/7qWyWkKbHAXeAeFw6ZhR3jC6MsEXCECwR+j
-nH0hIp2pAgMBAAEwDQYJKoZIhvcNAQEFBQADQQBGWN8/w709gZtguup+xZ44pi7p
-XDU05EFgnFM8hoN5DcCcFtiWCNkbN0AH5u+xXgotDMsEq+OwlJb8qAElaRjP
-----END CERTIFICATE-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBSTCB9KADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCkxDjAMBgNVBAMMBWNoaWxk
-MRcwFQYKCZImiZPyLGQBGRYHZXhhbXBsZTAgFw0xMjAxMTMwMDQ0MTZaGA8yMDM4
-MDExOTAzMTQwN1owMDEVMBMGA1UEAwwMaW52YWxpZGNoaWxkMRcwFQYKCZImiZPy
-LGQBGRYHZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC+tFy6eVKpSmHW
-6QeZG1Egbtz2mcNywUvUZvXQVAMh/7qWyWkKbHAXeAeFw6ZhR3jC6MsEXCECwR+j
-nH0hIp2pAgMBAAEwDQYJKoZIhvcNAQEFBQADQQCjqL4JaoRhCAExVddloKxNajAh
-VIpjw8FC7bdNhpCrf8bgOHR7UU8r42JdeJ0wR7TyV8a8pXxtd6GLPZvKaZbK
-----END CERTIFICATE-----
@@ -1,9 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
-MIIBOgIBAAJBAL60XLp5UqlKYdbpB5kbUSBu3PaZw3LBS9Rm9dBUAyH/upbJaQps
-cBd4B4XDpmFHeMLoywRcIQLBH6OcfSEinakCAwEAAQJAPdi0ce1Ct5Bd5pqwUiEf
-0Erj8j2vuxmhBANYGPYGBhIe/W4I6JGvaeZgY8/vLHdBSqxYDa417+N1TkgnC8U0
-GQIhAPpE9Tx4AYxI6EhtS5RSv+yXjNmuGV3iNk9CwZy8WenLAiEAwxI+ejSU2qhn
-+JhbUd2AhCwokzHPYLIln5NzG1FXN9sCIQC4FTLA+JBC7HmWlHXMMpWi49IhZzKX
-YMWLxVF+BPipwwIgbd/u1QKc/XRx67JVbY0oAEqnKBGcT0jIrFNvOGneiJUCIB6d
-vHfEsN61hepd+BWOnw6ProEhPAYnOIAl1eNwdVqI
-----END RSA PRIVATE KEY-----
@@ -1,9 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
-MIIBOwIBAAJBALHKBD9e+mrCnQ7Xs2fdEhxa+0mpObjlK7dL6hoNF190aoLwQ6xw
-iCAMT7WPVs4/XW81Nssq2RkHGiWGxIXnMlsCAwEAAQJAFhk4IfBaS/7Yqsmg4R4X
-bDLa3TMNm6/QmT30YTyTVSfcMM3eum/5rDkKs/FmK80Q8vAch6frwG6zp65I+QrZ
-cQIhANo21fpTGe4SoBTNugOqPsoXg+QeqXC2b0PccqbW6c5FAiEA0JMv/EgYL3KX
-8lelPRq5VvDU+i8pnu4s283zmbap2B8CIQCQVvFXMZzXQ26sFCDUx8nct41AWZ/O
-tH4Ir0sPXN0u2QIgHC9HlLfJTOAXWFAvrAoocW8p2IT3Atr8hNdXy7W7TdECIQC+
-PYFyUaQAl5s0r0Dl6SoQ6klTvOLRyX9nUg9vJnVWkg==
-----END RSA PRIVATE KEY-----
@@ -1,10 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBZDCCAQ6gAwIBAgIBATANBgkqhkiG9w0BAQUFADAqMQ8wDQYDVQQDDAZub2Jv
-ZHkxFzAVBgoJkiaJk/IsZAEZFgdleGFtcGxlMCAXDTEyMDEyNjIzNTYzOFoYDzk5
OTkxMjMxMjM1OTU5WjAqMQ8wDQYDVQQDDAZub2JvZHkxFzAVBgoJkiaJk/IsZAEZ
-FgdleGFtcGxlMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALHKBD9e+mrCnQ7Xs2fd
-Ehxa+0mpObjlK7dL6hoNF190aoLwQ6xwiCAMT7WPVs4/XW81Nssq2RkHGiWGxIXn
-MlsCAwEAAaMdMBswGQYDVR0RBBIwEIEObm9ib2R5QGV4YW1wbGUwDQYJKoZIhvcN
-AQEFBQADQQAyMwxov898I7UD6WD588jgWPJjy89+iVIEvtFq/rHmTspBxP16/iom
-oD36DRV5ir0n6mED+s2R2MaF1EMO2WVw
-----END CERTIFICATE-----
@@ -1,10 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBZDCCAQ6gAwIBAgIBATANBgkqhkiG9w0BAQUFADAqMQ8wDQYDVQQDDAZub2Jv
-ZHkxFzAVBgoJkiaJk/IsZAEZFgdleGFtcGxlMCAXDTEyMDEyNjIzNTYzOFoYDzIw
-MzgwMTE5MDMxNDA3WjAqMQ8wDQYDVQQDDAZub2JvZHkxFzAVBgoJkiaJk/IsZAEZ
-FgdleGFtcGxlMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALHKBD9e+mrCnQ7Xs2fd
-Ehxa+0mpObjlK7dL6hoNF190aoLwQ6xwiCAMT7WPVs4/XW81Nssq2RkHGiWGxIXn
-MlsCAwEAAaMdMBswGQYDVR0RBBIwEIEObm9ib2R5QGV4YW1wbGUwDQYJKoZIhvcN
-AQEFBQADQQAMNCoCiTAT4+e+vVeHwdN2HXh+L4YhAm8OCkVtEwX7aJWe/JV6S6Ma
-XNq1DX0kl6CENeztHU1EZx0CrMn1lyYg
-----END CERTIFICATE-----
@@ -1,4 +1,9 @@
-----BEGIN PUBLIC KEY-----
-MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALHKBD9e+mrCnQ7Xs2fdEhxa+0mpObjl
-K7dL6hoNF190aoLwQ6xwiCAMT7WPVs4/XW81Nssq2RkHGiWGxIXnMlsCAwEAAQ==
-----END PUBLIC KEY-----
@@ -113,5 +113,25 @@ class TestGemCommandsCleanupCommand < Gem::TestCase
assert_path_exists @b_1.gem_dir
end
end
@@ -466,6 +466,22 @@ class TestGemDependencyInstaller < Gem::TestCase
assert_equal %w[b-1], inst.installed_gems.map { |s| s.full_name }
end
def test_install_ignore_dependencies
util_setup_gems
@@ -778,6 +794,20 @@ class TestGemDependencyInstaller < Gem::TestCase
assert_equal Gem::Source.new(@gem_repo), s.source
end
def test_find_gems_with_sources_local
util_setup_gems
@@ -43,7 +43,7 @@ class TestGemSecurity < Gem::TestCase
key_ident = cert.extensions.find { |ext| ext.oid == 'subjectKeyIdentifier' }
assert_equal 59, key_ident.value.length
- assert_equal 'B0:EB:9C:A5:E5:8E:7D:94:BB:4B:3B:D6:80:CB:A5:AD:5D:12:88:90',
key_ident.value
assert_equal '', cert.issuer.to_s
@@ -90,7 +90,7 @@ class TestGemSecurity < Gem::TestCase
key_ident = cert.extensions.find { |ext| ext.oid == 'subjectKeyIdentifier' }
assert_equal 59, key_ident.value.length
- assert_equal 'B0:EB:9C:A5:E5:8E:7D:94:BB:4B:3B:D6:80:CB:A5:AD:5D:12:88:90',
key_ident.value
end
@@ -119,7 +119,7 @@ class TestGemSecurity < Gem::TestCase
assert_in_delta Time.now, re_signed.not_before, 10
assert_in_delta Time.now + 60, re_signed.not_after, 10
- assert_equal 2, re_signed.serial
assert re_signed.verify PUBLIC_KEY
end
@@ -129,7 +129,11 @@ class TestGemSecurity < Gem::TestCase
Gem::Security.re_sign CHILD_CERT, CHILD_KEY
end
- assert_equal "#{ALTERNATE_CERT.subject} is not self-signed, contact " +
"#{ALTERNATE_CERT.issuer} to obtain a valid certificate",
e.message
end
@@ -188,7 +192,7 @@ class TestGemSecurity < Gem::TestCase
key_ident =
signed.extensions.find { |ext| ext.oid == 'subjectKeyIdentifier' }
assert_equal 59, key_ident.value.length
- assert_equal 'B0:EB:9C:A5:E5:8E:7D:94:BB:4B:3B:D6:80:CB:A5:AD:5D:12:88:90',
key_ident.value
assert signed.verify key
@@ -228,7 +232,7 @@ class TestGemSecurity < Gem::TestCase
key_ident =
signed.extensions.find { |ext| ext.oid == 'subjectKeyIdentifier' }
assert_equal 59, key_ident.value.length
- assert_equal 'B0:EB:9C:A5:E5:8E:7D:94:BB:4B:3B:D6:80:CB:A5:AD:5D:12:88:90',
key_ident.value
assert signed.verify PUBLIC_KEY
@@ -100,8 +100,12 @@ class TestGemSecuritySigner < Gem::TestCase
signature = signer.sign 'hello'
expected = <<-EXPECTED
-oZXzQRdq0mJpAghICQvjvlB7ZyZtE4diL5jce0Fa20PkLjOvDgpuZCs6Ppu5
-LtG89EQMMBHsAyc8NMCd4oWm6Q==
EXPECTED
assert_equal expected, [signature].pack('m')
@@ -25,6 +25,22 @@ class TestGemUninstaller < Gem::InstallerTestCase
assert_match %r|/foo/bar$|, uninstaller.instance_variable_get(:@gem_home)
end
def test_remove_all
uninstaller = Gem::Uninstaller.new nil
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBRDCB76ADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
-eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwIBcNMTIwMTE0MDEzNjUxWhgPOTk5
-OTEyMzEyMzU5NTlaMCoxDzANBgNVBAMMBm5vYm9keTEXMBUGCgmSJomT8ixkARkW
-B2V4YW1wbGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA0lN/jShlFg0t+h1L2gkd
-i2UXFnfLnXNh+J3Jolh4/Pd8rdzKTdnCep2nqDIRimnlEjO1+I3u7aurUc4b1AhX
-5QIDAQABMA0GCSqGSIb3DQEBBQUAA0EAoN0sTPihqOKpzU9d+iSW4Ugniqc/JZa9
-Dqzavgqcabw7OJX+xqmaqa8945Ae+b1MnkUSZpEp+93FTA0ObvozmA==
-----END CERTIFICATE-----
@@ -1,9 +1,18 @@
-----BEGIN CERTIFICATE-----
-MIIBRDCB76ADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
-eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwIBcNMTIwMTE0MDEzNjUxWhgPMjAz
-ODAxMTkwMzE0MDdaMCoxDzANBgNVBAMMBm5vYm9keTEXMBUGCgmSJomT8ixkARkW
-B2V4YW1wbGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA0lN/jShlFg0t+h1L2gkd
-i2UXFnfLnXNh+J3Jolh4/Pd8rdzKTdnCep2nqDIRimnlEjO1+I3u7aurUc4b1AhX
-5QIDAQABMA0GCSqGSIb3DQEBBQUAA0EAN6vAYZkzfXQt4qu+LsO7UGWQrwtHv2hh
-tdNQd1rArKhODhtJMr1OvPsuFdG52zJpp1EC2yJAXY+k0eYDC1SIhw==
-----END CERTIFICATE-----