@@ -364,6 +364,18 @@ def test_export_ed255_to_pem(self):
364364
365365 self .assertEqual (vk_pem , vk .to_pem ())
366366
367+ def test_export_ed255_to_ssh (self ):
368+ vk_str = (
369+ b"\x23 \x00 \x50 \xd0 \xd6 \x64 \x22 \x28 \x8e \xe3 \x55 \x89 \x7e \x6e \x41 \x57 "
370+ b"\x8d \xae \xde \x44 \x26 \xee \x56 \x27 \xbc \x85 \xe6 \x0b \x2f \x2a \xcb \x65 "
371+ )
372+ 373+ vk = VerifyingKey .from_string (vk_str , Ed25519 )
374+ 375+ vk_ssh = b"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICMAUNDWZCIojuNViX5uQVeNrt5EJu5WJ7yF5gsvKstl\n "
376+ 377+ self .assertEqual (vk_ssh , vk .to_ssh ())
378+ 367379 def test_ed25519_export_import (self ):
368380 sk = SigningKey .generate (Ed25519 )
369381 vk = sk .verifying_key
@@ -428,8 +440,8 @@ def test_ed448_to_pem(self):
428440
429441 vk_pem = (
430442 b"-----BEGIN PUBLIC KEY-----\n "
431- b"MEMwBQYDK2VxAzoAeQtetSu7CMEzE+XWB10Bg47LCA0giNikOxHzdp+tZ/eK/En0 \n "
432- b"dTdYD2ll94g58MhSnBiBQB9A1MMA \n "
443+ b"MEMwBQYDK2VxAzoAeQtetSu7CMEzE+XWB10Bg47LCA0giNikOxHzdp+tZ/eK/En0dTdYD2ll94g5 \n "
444+ b"8MhSnBiBQB9A1MMA \n "
433445 b"-----END PUBLIC KEY-----\n "
434446 )
435447
@@ -629,6 +641,25 @@ def test_ed25519_to_pem(self):
629641
630642 self .assertEqual (sk .to_pem (format = "pkcs8" ), pem_str )
631643
644+ def test_ed25519_to_ssh (self ):
645+ sk = SigningKey .from_string (
646+ b"\x34 \xBA \xC7 \xD1 \x4E \xD4 \xF1 \xBC \x4F \x8C \x48 \x3E \x0F \x19 \x77 \x4C "
647+ b"\xFC \xB8 \xBE \xAC \x54 \x66 \x45 \x11 \x9A \xD7 \xD7 \xB8 \x07 \x0B \xF5 \xD4 " ,
648+ Ed25519 ,
649+ )
650+ 651+ ssh_str = (
652+ b"-----BEGIN OPENSSH PRIVATE KEY-----\n "
653+ b"b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZWQyNTUx\n "
654+ b"OQAAACAjAFDQ1mQiKI7jVYl+bkFXja7eRCbuVie8heYLLyrLZQAAAIgAAAAAAAAAAAAAAAtzc2gt\n "
655+ b"ZWQyNTUxOQAAACAjAFDQ1mQiKI7jVYl+bkFXja7eRCbuVie8heYLLyrLZQAAAEA0usfRTtTxvE+M\n "
656+ b"SD4PGXdM/Li+rFRmRRGa19e4Bwv11CMAUNDWZCIojuNViX5uQVeNrt5EJu5WJ7yF5gsvKstlAAAA\n "
657+ b"AAECAwQF\n "
658+ b"-----END OPENSSH PRIVATE KEY-----\n "
659+ )
660+ 661+ self .assertEqual (sk .to_ssh (), ssh_str )
662+ 632663 def test_ed25519_to_and_from_pem (self ):
633664 sk = SigningKey .generate (Ed25519 )
634665
@@ -665,8 +696,8 @@ def test_ed448_to_pem(self):
665696 )
666697 pem_str = (
667698 b"-----BEGIN PRIVATE KEY-----\n "
668- b"MEcCAQAwBQYDK2VxBDsEOTyFuXqFLXgJlV8uDqcOw9nG4IqzLiZ/i5NfBDoHPzmP \n "
669- b"OP0JMYaLGlTzwovmvCDJ2zLaezu9NLz9aQ ==\n "
699+ b"MEcCAQAwBQYDK2VxBDsEOTyFuXqFLXgJlV8uDqcOw9nG4IqzLiZ/i5NfBDoHPzmPOP0JMYaLGlTz \n "
700+ b"wovmvCDJ2zLaezu9NLz9aQ ==\n "
670701 b"-----END PRIVATE KEY-----\n "
671702 )
672703
0 commit comments