From 0a5dfd329ce1e5750f0d7d0654b96d2f3da40742 Mon Sep 17 00:00:00 2001 From: kares Date: Thu, 4 Apr 2024 16:51:26 +0200 Subject: [PATCH] [test] a test-case for PKCS8 key parsing (for #292) --- src/test/ruby/pkey-cert.pem | 32 ++++++++++++++++++++++ src/test/ruby/pkey-pkcs8.pem | 52 ++++++++++++++++++++++++++++++++++++ src/test/ruby/test_pkey.rb | 14 ++++++++++ 3 files changed, 98 insertions(+) create mode 100644 src/test/ruby/pkey-cert.pem create mode 100644 src/test/ruby/pkey-pkcs8.pem diff --git a/src/test/ruby/pkey-cert.pem b/src/test/ruby/pkey-cert.pem new file mode 100644 index 00000000..c6d913d3 --- /dev/null +++ b/src/test/ruby/pkey-cert.pem @@ -0,0 +1,32 @@ +-----BEGIN CERTIFICATE----- +MIIFcDCCA1igAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MREwDwYDVQQDDAhqb3Bl +bnNzbDEVMBMGCgmSJomT8ixkARkWBWpydWJ5MRMwEQYKCZImiZPyLGQBGRYDb3Jn +MB4XDTI0MDQwMzEzMjgyM1oXDTI1MDQwMzEzMjgyM1owPzERMA8GA1UEAwwIam9w +ZW5zc2wxFTATBgoJkiaJk/IsZAEZFgVqcnVieTETMBEGCgmSJomT8ixkARkWA29y +ZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ4wLFlxtSIaRic+ag6y +rq75Ay/cSSQI4BrPx/Zb7hjHZ645lgyriT1vbkUkT0LJS9Cy6WZ7br0Z7hzfWc+k +FuBoizbWI5KjF5FRiPOuTucxPkNiti1e3LbGGQMlOJbrB4guWBxCUzOb2ZeTKj95 +Edna5+g5hxsDI6ECEn6IYf0gXq0xXRNaTa1u+lfelbT6LSHxYiTADJlWEKieR2ED +MUSwZNyM37ojwLQ1SlWZXIc6AbFviSV3cckDX2TRt70W53tIXFydc2zFqPF3w+gZ +DjPukkP7JnbcgMLy9EBlbhdR9jaL8R3TbVXktKSseBRrGGDeXpPH/LPUcOun2Jzp +nEVeMmQJ+Ec9TldQ/o8bCcZ6eV/sk56con7IUX6Gq/+pSSQqqjb3/2oC4kqdM6Dj +GcpmB44oLLdg6tcI8qUd9OAopQRkPOI9yyKjA6Gpwa918u8tGX7lryzyhc4OOeFv +QwoUknNPlMXU3tMyXRLhsAekyUqqglCfaY+ZqvNW5cJbxX5G64cCZuFhb7My21yz +zhZCn3tDHegCMtA+bAIfBX+Dg2Mt5J4rVJoy9ZDzWgs6ch6NW7pO2umuxFVXoHtg +VMNsFvd5gUY+Bvd662ARbZ1vRcPK0YiYTp7OqOOpqFtplgotV/BPeClH1JyBc8Bk +j7KfmpyTNo+rpd0G9XNLAtXdAgMBAAGjdzB1MAkGA1UdEwQCMAAwCwYDVR0PBAQD +AgSwMB0GA1UdDgQWBBTQ/2kOpgjQp+7aTRZBJ312BxK1szAdBgNVHREEFjAUgRJq +b3BlbnNzbEBqcnVieS5vcmcwHQYDVR0SBBYwFIESam9wZW5zc2xAanJ1Ynkub3Jn +MA0GCSqGSIb3DQEBCwUAA4ICAQB6FOYhUUtj3OQyi9oLWxHnJvHMfcAERlES2M4N +nxOLRHA0RkR6iYChUjmxhQD9ADScnLGMWP7UcdiRNRjZ/OiOPelbcgJM6+hvWnaV +5NTK2MX3WHY7aISNJfoq/OQsDJsNjKfwyOzTca1jXKhAhl46jLJ0JZpZNBi5wefG +IjXsZ5i5WXcG3Ky0EGebiFcHzWBhQ6F3qTlBSx3Rpq3mAf7Zdn9v6fuWFraYwnS6 +apma7JSgkUrFKPeFnZz3SxB+yqneFLuvtM4UzW2vsLLAKd/BGgMSzMV9I7d/xsHl +FfizR91Q/4diiC0M+VnqB40R1UfFCoiK0Xy1U28WHrU00ij7Uc38SZMey8BDrOPY +YdS2xEEtGgFJ/x6OnJmfFM0ioJscE79phhIV+AMOTYsLerHkhbJ/m+kqmoQ+HtPZ +9aOUWmz7G28SbbZXcT6/x4Jf6O/8AGPAFmJxkSg1+9XbOcMrWGQCpwmCuqsNf6L6 +adrqeC7hjBxMaHjzDFyF8FUMLU8Un9g6fzN20gZFaAQuMuxiPoQEflTGb3BRxRTD +z8Aed06Q0Mfksf1bzoRFpFXICpI0EfHCHhUmJGpMNFiNmtZkJP8BoxiIh//Mu+x6 +dYsMY/peZYWDgkcBPdV3mQ4BNqgHhdFiDC7BvqozS84pieP3IFyKmj3KVyacCAW/ +3DO2Yg== +-----END CERTIFICATE----- diff --git a/src/test/ruby/pkey-pkcs8.pem b/src/test/ruby/pkey-pkcs8.pem new file mode 100644 index 00000000..79f6c8d2 --- /dev/null +++ b/src/test/ruby/pkey-pkcs8.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +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 +bXMAaZvmPMWY39farAQNCHnnSQLhCmE= +-----END PRIVATE KEY----- diff --git a/src/test/ruby/test_pkey.rb b/src/test/ruby/test_pkey.rb index ad666094..5bcf50c3 100644 --- a/src/test/ruby/test_pkey.rb +++ b/src/test/ruby/test_pkey.rb @@ -14,6 +14,20 @@ def test_pkey_read assert_equal OpenSSL::PKey::RSA.new(KEY).e, pkey.e end + def test_pkey_read_pkcs8_and_check_with_cert + pkey = File.expand_path('pkey-pkcs8.pem', File.dirname(__FILE__)) + pkey = OpenSSL::PKey.read(File.read(pkey), nil) + + assert_true pkey.private? + assert_true pkey.public? + assert pkey.public_key.to_s + + cert = File.expand_path('pkey-cert.pem', File.dirname(__FILE__)) + cert = OpenSSL::X509::Certificate.new(File.read(cert)) + + assert_true cert.check_private_key(pkey) + end + def test_to_java pkey = OpenSSL::PKey.read(KEY) assert_kind_of java.security.PublicKey, pkey.to_java