|
| 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