summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2025-07-28 00:50:38 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2025-07-28 17:02:57 +0900
commit32977f3869ba1c44950f484ddbf3a12889c0b20b (patch)
tree38397ff3d236a1cefe2ab6e03ca9c3b19350ef9a
parent2256b0ffa42e4bacb9dc678ab3e048175a418b06 (diff)
[rubygems/rubygems] Avoid openssl bug in test_verify_certificate_extra_message
OpenSSL::X509::StoreContext#current_cert returns an empty and invalid OpenSSL::X509::Certificate instance if it is called before starting a certificate verification. https://redirect.github.com/ruby/openssl/pull/919 will change it to return nil instead in such a case. Adjust test_verify_certificate_extra_message to actually complete StoreContext#verify so that it will not rely on this behavior. https://github.com/rubygems/rubygems/commit/823799088d
-rw-r--r--test/rubygems/test_gem_request.rb10
1 files changed, 5 insertions, 5 deletions
diff --git a/test/rubygems/test_gem_request.rb b/test/rubygems/test_gem_request.rb
index eb15eed749..244f9d90fe 100644
--- a/test/rubygems/test_gem_request.rb
+++ b/test/rubygems/test_gem_request.rb
@@ -363,19 +363,19 @@ class TestGemRequest < Gem::TestCase
def test_verify_certificate_extra_message
pend if Gem.java_platform?
- error_number = OpenSSL::X509::V_ERR_INVALID_CA
+ error_number = OpenSSL::X509::V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY
store = OpenSSL::X509::Store.new
- context = OpenSSL::X509::StoreContext.new store
- context.error = error_number
+ context = OpenSSL::X509::StoreContext.new store, CHILD_CERT
+ context.verify
use_ui @ui do
Gem::Request.verify_certificate context
end
expected = <<-ERROR
-ERROR: SSL verification error at depth 0: invalid CA certificate (#{error_number})
-ERROR: Certificate is an invalid CA certificate
+ERROR: SSL verification error at depth 0: unable to get local issuer certificate (#{error_number})
+ERROR: You must add #{CHILD_CERT.issuer} to your local trusted store
ERROR
assert_equal expected, @ui.error