Skip to content

Commit dedd02f

Browse files
committed
Test OpenSSHPrivateKeyLoader with a variety of ciphers
1 parent b4e4c99 commit dedd02f

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
unless ENV['NET_SSH_NO_ED25519']
2+
3+
require_relative '../common'
4+
require 'net/ssh/authentication/ed25519_loader'
5+
require 'net/ssh/key_factory'
6+
require 'base64'
7+
8+
module Authentication
9+
class TestOpenSSHPrivateKeyLoader < NetSSHTest
10+
def setup
11+
raise "No ED25519 set NET_SSH_NO_ED25519 to ignore this test" unless Net::SSH::Authentication::ED25519Loader::LOADED
12+
end
13+
14+
def test_aes_cbc_key
15+
key = <<~PRIVATEKEY
16+
-----BEGIN OPENSSH PRIVATE KEY-----
17+
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jYmMAAAAGYmNyeXB0AAAAGAAAABAkbe7i7M
18+
lqGCSgPgr+ohv1AAAAGAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIHl0AyaA/DuN/ZYd
19+
7gbSDA1uCALeRaz2j/72tKkJQ6mrAAAAkIDyuOAcJhooRGOI1Vo3EWCaVWgQI7yT+Up2D8
20+
AOZ/xcOlcdrnSoVAPjYbeNGePuhShnSvzt3/ffzk8OAMkmVIfOukzQ1xRlySeFASWzXpZR
21+
gJ4xdOyaURZ2zGeie29WOWJfeNCf/sKrtE8GonVW85iLVBBM1tDga9ta2Dq872OGFS7/qi
22+
VCs5bN8YByGKbuxA==
23+
-----END OPENSSH PRIVATE KEY-----
24+
PRIVATEKEY
25+
pwd = 'test'
26+
27+
privkey = Net::SSH::Authentication::ED25519::OpenSSHPrivateKeyLoader.read(key, pwd)
28+
assert_kind_of(Net::SSH::Authentication::ED25519::PrivKey, privkey)
29+
end
30+
31+
def test_aes256_gcm_key
32+
key = <<~PRIVATEKEY
33+
-----BEGIN OPENSSH PRIVATE KEY-----
34+
b3BlbnNzaC1rZXktdjEAAAAAFmFlczI1Ni1nY21Ab3BlbnNzaC5jb20AAAAGYmNyeXB0AA
35+
AAGAAAABCCj7iTVdMrx15cLyopqOpcAAAAGAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAA
36+
IPDBX9jvz2qS9ZFU+F9x+vL+ef7rH8VPwCn6IJc4CaGhAAAAkEyIM5bCRB50LPxP9D4rtD
37+
EdReGh+wsN6/84u4Efw1QjRm/O6LJzJEDl3LV8ntDMWBqBN0q6OJL3eqICWYjAjOdPHLkl
38+
qmKYhrT+eWDqS/1KihyO46HkfKOWSM2fOQPcjqVsjSTJ3CV5oVkptuLB6ak8e/mmzplywv
39+
MjSA8aFdrtUGDJhpT7z46xURMJarvDkqvJZbw4PkmYWlfNRu3dXAI=
40+
-----END OPENSSH PRIVATE KEY-----
41+
PRIVATEKEY
42+
pwd = 'test'
43+
44+
privkey = Net::SSH::Authentication::ED25519::OpenSSHPrivateKeyLoader.read(key, pwd)
45+
assert_kind_of(Net::SSH::Authentication::ED25519::PrivKey, privkey)
46+
end
47+
48+
def test_chacha20_poly1305_key
49+
key = <<~PRIVATEKEY
50+
-----BEGIN OPENSSH PRIVATE KEY-----
51+
b3BlbnNzaC1rZXktdjEAAAAAHWNoYWNoYTIwLXBvbHkxMzA1QG9wZW5zc2guY29tAAAABm
52+
JjcnlwdAAAABgAAAAQYf8G9VsDZqFN+GKW7A0XewAAABgAAAABAAAAMwAAAAtzc2gtZWQy
53+
NTUxOQAAACAF+rfLEozMyDub+8gOsb+WssHKSzh+5ffWiyKC3efLfQAAAJDcniGJhUGXaK
54+
A7v6DMkskqZA70Sqs1Pjz4ahZ6uBXImAHk04VYskUkcD9FW6GkevWrQA69stLQcmMvuS1Y
55+
AyrWopSzwJ0HEZj55b5mnjH8Iob0jPVjAuf5vtjfFeb/rncVgprs6AtEVItgIwZ+LoJTLN
56+
yytSz1DNyO0oyZiowww6RMmr3lNjPHNtB71X4XZ3jDo7ySUF24MKmdsPiOjc+R
57+
-----END OPENSSH PRIVATE KEY-----
58+
PRIVATEKEY
59+
pwd = 'test'
60+
61+
privkey = Net::SSH::Authentication::ED25519::OpenSSHPrivateKeyLoader.read(key, pwd)
62+
assert_kind_of(Net::SSH::Authentication::ED25519::PrivKey, privkey)
63+
end
64+
65+
def test_unencrypted_key; end
66+
end
67+
end
68+
end

0 commit comments

Comments
 (0)