From 5d1693aac56bcae37e1f81af1f25966269c4619a Mon Sep 17 00:00:00 2001 From: Kazuki Yamaguchi Date: Sun, 17 May 2020 18:25:38 +0900 Subject: [ruby/openssl] pkey: implement #to_text using EVP API Use EVP_PKEY_print_private() instead of the low-level API *_print() functions, such as RSA_print(). EVP_PKEY_print_*() family was added in OpenSSL 1.0.0. Note that it falls back to EVP_PKEY_print_public() and EVP_PKEY_print_params() as necessary. This is required for EVP_PKEY_DH type for which _private() fails if the private component is not set in the pkey object. Since the new API works in the same way for all key types, we now implement #to_text in the base class OpenSSL::PKey::PKey rather than in each subclass. https://github.com/ruby/openssl/commit/e0b4c56956 --- test/openssl/test_pkey.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'test') diff --git a/test/openssl/test_pkey.rb b/test/openssl/test_pkey.rb index 0a516f98e8..4a539d8c46 100644 --- a/test/openssl/test_pkey.rb +++ b/test/openssl/test_pkey.rb @@ -169,4 +169,9 @@ class OpenSSL::TestPKey < OpenSSL::PKeyTestCase key1.compare?(key4) end end + + def test_to_text + rsa = Fixtures.pkey("rsa1024") + assert_include rsa.to_text, "publicExponent" + end end -- cgit v1.2.3