aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2021-11-03 23:31:29 +0900
committerKazuki Yamaguchi <k@rhe.jp>2021-12-20 23:42:00 +0900
commit582606dc58d51d333e30860c1f2cea7a6774c7f8 (patch)
tree05a93c16ef29e027aa94dc24024d55f0694d445f
parent1c72c95d999040dbe9399d3687d8e52f654aa5bf (diff)
downloadruby-582606dc58d51d333e30860c1f2cea7a6774c7f8.tar.gz
[ruby/openssl] pkey: test parsing concatenated PEM string
PEM-encoded private keys are sometimes stored together with irrelevant PEM blocks, such as the corresponding X.509 certificate. PEM_read_bio_*() family automatically skips unknown PEM blocks, but on OpenSSL 3.0 we will be using the new OSSL_DECODER API instead due to some breaking changes around the password callback. Let's add a test case so that we won't break the current behavior. https://github.com/ruby/openssl/commit/8c185e0ae5
-rw-r--r--test/openssl/test_pkey_rsa.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/test/openssl/test_pkey_rsa.rb b/test/openssl/test_pkey_rsa.rb
index dbe87ba4c1..7510658df7 100644
--- a/test/openssl/test_pkey_rsa.rb
+++ b/test/openssl/test_pkey_rsa.rb
@@ -306,6 +306,12 @@ class OpenSSL::TestPKeyRSA < OpenSSL::PKeyTestCase
assert_equal asn1.to_der, rsa1024.to_der
assert_equal pem, rsa1024.export
+
+ # Unknown PEM prepended
+ cert = issue_cert(OpenSSL::X509::Name.new([["CN", "nobody"]]), rsa1024, 1, [], nil, nil)
+ str = cert.to_text + cert.to_pem + rsa1024.to_pem
+ key = OpenSSL::PKey::RSA.new(str)
+ assert_same_rsa rsa1024, key
end
def test_RSAPrivateKey_encrypted