Skip to content

Commit

Permalink
[test] a test-case for PKCS8 key parsing (for #292)
Browse files Browse the repository at this point in the history
  • Loading branch information
kares committed Apr 4, 2024
1 parent 84c553b commit 0a5dfd3
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 0 deletions.
32 changes: 32 additions & 0 deletions src/test/ruby/pkey-cert.pem
Original file line number Diff line number Diff line change
@@ -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-----
52 changes: 52 additions & 0 deletions src/test/ruby/pkey-pkcs8.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
bXMAaZvmPMWY39farAQNCHnnSQLhCmE=
-----END PRIVATE KEY-----
14 changes: 14 additions & 0 deletions src/test/ruby/test_pkey.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 0a5dfd3

Please sign in to comment.