Open
Description
Hello, thank you for your continued development of the dartssh2
module!
I've noticed that the SSHKeyPair.fromPem
function we use to read the private key fails to parse a few different types of private keys.
I would like to see private keys with these formats supported.
Regards,
The key formats that fail include:
A. Any private key that uses the DSA algorithm
Test private key (no passphrase):
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABsgAAAAdzc2gtZH
NzAAAAgQCug6Xc8tsj6zVA+4y7pQ1OvdcBh0K5dr89/bqMguSLJ0YzcxPuAvzDTWxFjBpq
9t3nOYvlpjy5Q/rqIZN9jXaSRyocwm4um0k2s7UnqS+jXd4aQ2RbyauZRPMjCousDfEH4g
8B/hS1ibOEIUW60+AeeQsRL7JTTLbxiCJhtKbC3QAAABUA5E6Qv3YhulSUX815/ihA3wZs
8aEAAACAbf6738RCp0xuPcLl2OpwZnGRzPQxC15DK4OYxQSAvxMAE1mWV+nDqOKhmGrTWt
0oYzjJKbwoTxKgKLaB8IDDh2tNFlpFcUPFNDzNaQuCEfN15sH/gxtUJLu+DQV1qfI4gJBJ
X3H8ohRbwlSpX/IdvcAu6gbGMTyyQwXqUC9hs3YAAACBAJj2JjyG1eZt0wUUo4FNhN1Nkv
zZZgGg4InhTI40CFfXG/mR+drDMIgmxvYcMgsKIKxnyVkNvgJOvMFystiBc/Hn2CPQsAsj
9aHHQldUOqQgKeFP5IyvPxeFQ733VwsPQ8GXpHZmdGg6SOMnR9Pjbzo6HrKlHkh5l3PB+h
c+VqHfAAAB6EsoT05LKE9OAAAAB3NzaC1kc3MAAACBAK6Dpdzy2yPrNUD7jLulDU691wGH
Qrl2vz39uoyC5IsnRjNzE+4C/MNNbEWMGmr23ec5i+WmPLlD+uohk32NdpJHKhzCbi6bST
aztSepL6Nd3hpDZFvJq5lE8yMKi6wN8QfiDwH+FLWJs4QhRbrT4B55CxEvslNMtvGIImG0
psLdAAAAFQDkTpC/diG6VJRfzXn+KEDfBmzxoQAAAIBt/rvfxEKnTG49wuXY6nBmcZHM9D
ELXkMrg5jFBIC/EwATWZZX6cOo4qGYatNa3ShjOMkpvChPEqAotoHwgMOHa00WWkVxQ8U0
PM1pC4IR83Xmwf+DG1Qku74NBXWp8jiAkElfcfyiFFvCVKlf8h29wC7qBsYxPLJDBepQL2
GzdgAAAIEAmPYmPIbV5m3TBRSjgU2E3U2S/NlmAaDgieFMjjQIV9cb+ZH52sMwiCbG9hwy
CwogrGfJWQ2+Ak68wXKy2IFz8efYI9CwCyP1ocdCV1Q6pCAp4U/kjK8/F4VDvfdXCw9DwZ
ekdmZ0aDpI4ydH0+NvOjoesqUeSHmXc8H6Fz5Wod8AAAAUXIZgwHG57dr0Wj80H7G0xWs6
fhQAAAAPZHNhIDEwMjQtMDgzMDI0AQID
-----END OPENSSH PRIVATE KEY-----
public key:
ssh-dss AAAAB3NzaC1kc3MAAACBAK6Dpdzy2yPrNUD7jLulDU691wGHQrl2vz39uoyC5IsnRjNzE+4C/MNNbEWMGmr23ec5i+WmPLlD+uohk32NdpJHKhzCbi6bSTaztSepL6Nd3hpDZFvJq5lE8yMKi6wN8QfiDwH+FLWJs4QhRbrT4B55CxEvslNMtvGIImG0psLdAAAAFQDkTpC/diG6VJRfzXn+KEDfBmzxoQAAAIBt/rvfxEKnTG49wuXY6nBmcZHM9DELXkMrg5jFBIC/EwATWZZX6cOo4qGYatNa3ShjOMkpvChPEqAotoHwgMOHa00WWkVxQ8U0PM1pC4IR83Xmwf+DG1Qku74NBXWp8jiAkElfcfyiFFvCVKlf8h29wC7qBsYxPLJDBepQL2GzdgAAAIEAmPYmPIbV5m3TBRSjgU2E3U2S/NlmAaDgieFMjjQIV9cb+ZH52sMwiCbG9hwyCwogrGfJWQ2+Ak68wXKy2IFz8efYI9CwCyP1ocdCV1Q6pCAp4U/kjK8/F4VDvfdXCw9DwZekdmZ0aDpI4ydH0+NvOjoesqUeSHmXc8H6Fz5Wod8= dsa 1024-083024
B. Private keys using the ECDSA algorithm with old PEM (SSH-2) format
Test private key (no passphrase):
-----BEGIN EC PRIVATE KEY-----
MIIBaAIBAQQg7TXJD04t4e/CrwIdaxF1FJ+PSF0kTzMQs5TOp9L0MvKggfowgfcC
AQEwLAYHKoZIzj0BAQIhAP////8AAAABAAAAAAAAAAAAAAAA////////////////
MFsEIP////8AAAABAAAAAAAAAAAAAAAA///////////////8BCBaxjXYqjqT57Pr
vVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMVAMSdNgiG5wSTamZ44ROdJreBn36QBEEE
axfR8uEsQkf4vOblY6RA8ncDfYEt6zOg9KE5RdiYwpZP40Li/hp/m47n60p8D54W
K84zV2sxXs7LtkBoN79R9QIhAP////8AAAAA//////////+85vqtpxeehPO5ysL8
YyVRAgEBoUQDQgAEQ3EUZAOS4yK43BKX5gl1BPUWPN3CsU0xrptfxnItUD34jPc0
ybMM3pZ6HeBa89ariwVsl/wCYzZfgR64JAC1nQ==
-----END EC PRIVATE KEY-----
public key:
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBENxFGQDkuMiuNwSl+YJdQT1FjzdwrFNMa6bX8ZyLVA9+Iz3NMmzDN6Weh3gWvPWq4sFbJf8AmM2X4EeuCQAtZ0= ecdsa 256-083024
C. A private key with Proc-Type
and DEK-Info
information. (When using RSA/ECDSA
with passphrase)
Test private key (RSA with passphrase):
(passphrase is test
.)
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,74E0BC77BE064544
GDaBoq982V4GgOXxNkefwlFwMYL93c9Ti6oYOncK8BNmXbBjwjBMQwdKbfF0yCVG
WpJ7hxlMtgKxSuZFd3KCsZabN4Gpum62devAiyAAVwJSlDyinU7YUuXKgIpzWZep
+DOFXePbvwzWPsibKw4Vf0uWZL3l4Ni6aZYhIFCgh6v/8x1Vi+mbfL8lBv+xlL8Q
8iwOd6jKWoIGqb3U0aSdQ+8nKPepbz/wd8DrUSxuZ0OtBUq//YJEiMEzXefjqbYp
620tTVe2EPPzZjYIT/0emS2iLE2j40QN+BZpBTBvvOk/LC/DMrhzX00/2a6iFd24
OTYMJApr3WmNDsL6g07Md7T3lUZ1hirepdRPTxdnRLBHXuOmP+vqbQUmHy0GQu69
oDPefKrKjFa/s1HMPTjxIBDlxfq1r29gIjE7U93dGzMgGCE2xg4GHIvzC2eUURwJ
YgSZvHHFiAgoccfW2XUaKMI3VuDEULFcxaoLy+41fvZ9JOT5Z7f88MF7EyrCaztQ
htxiK0kUiROIWyCORPUjHmYz1hei/UCL2jWXfyKBjrunx83fHtXU69cfLzPGYYdm
85m9H9sUClR2dh2QAok4eHVdAR6sRzbu8aWytAuSybM59VX1d2vH801KehXRXQ7h
0IYZMg+jLX53mTpIhULIMMnVcVbuV5FWViWCOl0S2yG3wMMg4XsCDlN3gmaflgeP
Mx/mMSyAfZ9G90yxuRQfDs103wjXDjXLNQP0Y2IjHGI1Vs2NkN0JzDdZnydVu2Tt
ZHtqL/c+d461Q6QWmEGLrwlkpvpkEEXVf9n2lS9lpjUTsnFGKJj9J2Z9F/HntNTc
7vw+oee/mcHjV2CKHgEP+md1OepBvNXSrwGwFv9agpkzxJbOCGEIf3UdapuoHZq1
IG9j0TbnhxKtSOv71ECiKrL9U496iu6DZ4NHVn3kHNfN75lwUGDqy2UxXsnCz5BJ
6zmvK3TyXrDX/fI1k8YBAGbNe78o9UyoF3EfFeSfEMk4+sH7Dldh4hNMR1BnywPT
cHW1U5ZK4g1m13Oqg1mSF7JXgy9yE3YmWTvUbVpZn3SukV/m0GVHMWutVmGSYLIK
FQkW1+GarNyskC9nQQTz0WxUBIeuKNzeWvGw/Oo5ZGLKn/gJAJATXAXf8t3D79rX
0Y58J8bjmpZ3Sor+tgtLYZu75c6btlGZSf0vtU76h3+TFmI+wMVuRRvylhhb6lzo
TV/2/KHqVbDnIVaUil8rNfnhDMSOoMufq0iWlSJyRW8rbypl+ua0Jgy+rpUlpn5G
ZJyJ1vxIZSrPsTxkAFDMc9x3lO4KZlaionZ6IWuhLPb/Ng9J9c1aN523nDKhr5yF
kgMeUGvCf2aoxp6cFkS+CerUyLokQWQqkuJcucreuP1Dy145Gn3eWOxHO+u6AjCV
tv+1aYhVmgX0TG20TWz4vST9MeGKFhTNJI5Gnlh23U65z0r2GhUk4mh35bQ2W4u8
pOwuPiuCX2q8gEaoPXHkcvvUL34cH+ciJUVYZsmJqqCA5GuPdU+ms2lJFdyMaZff
UkBjJZMhH8L+DX5Eq2VJf65rHWP334gpW9QY0kN4vB4ptccs4sjEhg==
-----END RSA PRIVATE KEY-----
public key:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuWGdovlg+EG9FqSfGSptc6z8IFs4ufR11vwkI/YosKupjWoJzwzEASsutVZA7I8nsn7kokpiYD1/OEXS4e5yhxL3bxdGy1PjyFiexTGI79S1OgMoi/geaPUQmmABzOTEumDfQTh32M1/5gQ8vXNuuFK4dEAyztad/fuZmSbLhou8qwA2XrWVP8WdDldZdXw6bDoI3Gv5sPVZQI2UUKH2r4LIz6mhcbFzQw4HqwetsOARgNR4uwW0Pjvtnbc560F219C6kj131coT3NzNVkIZuWP4dB7lolSa7vs5VSmCrwQydsmXH/uWYz1pjiJg3N3rlrqOIQIXfXkr4igD57dbnQ== rsa 2048-083024
Metadata
Metadata
Assignees
Labels
No labels