diff --git a/.gitattributes b/.gitattributes
index 700825a76..83d35b020 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -15,3 +15,6 @@
*.nupkg binary
*.pdf binary
*.snk binary
+
+# Ensure key files have LF endings for easier usage with ssh-keygen
+test/Data/* eol=lf
\ No newline at end of file
diff --git a/test/.editorconfig b/test/.editorconfig
index 60515fd14..d6a4af76e 100644
--- a/test/.editorconfig
+++ b/test/.editorconfig
@@ -28,6 +28,9 @@ dotnet_diagnostic.S1854.severity = none
# https://github.com/meziantou/Meziantou.Analyzer/blob/main/docs/Rules/MA0089.md
dotnet_diagnostic.MA0089.severity = suggestion
+#MA0136 - Raw String contains an implicit end of line character
+dotnet_diagnostic.MA0136.severity = none
+
#### StyleCop rules ####
# SA1202: Elements must be ordered by access
diff --git a/test/Data/Key.DSA.pub b/test/Data/Key.DSA.pub
new file mode 100644
index 000000000..f32c6fae0
--- /dev/null
+++ b/test/Data/Key.DSA.pub
@@ -0,0 +1 @@
+ssh-dss AAAAB3NzaC1kc3MAAACBALVl3fae2O4qwsAK95SUShX0KMUNP+yl/uT3lGH9T/ZptnHSlrTxnTWXCl0g91KEeCaEnDDhLxm4aCv1Ag4B/yvcM4u34qkmaNLy2LiAxiqdobZcNG61Pqwqd5IDkp38LBsn8tmb12xu9NalpUfOiSEB1cyCr4zFZMrm0wtdyJQVAAAAFQCu+iNkqf/YOAYjYrHSCHFmWAfEYQAAAIAOVJ434UAR3Hn6lA5nWNfFOuUVH3W7nJaP0FQJiIPx7GUbdxO9qtDNTbWkWL3c9qx5+B7Ole4xM7cvyXPrNQUYDHCFlS+Ue2x3IeJrkdfZkH9ePP25y5A0J4/c+8XXvQaj4zA5nfw13oy5Ptyd7d3Kq5tEDM8KiVdIhwkXjUA3PQAAAIEAm8IGZQatS7M6AfNITNWG4TI7Z2aRQjLb9/MWJIID7c/VQ4zdTZdG3kpk0Gj9n4xreopK5NmYAdj8rtFfPBgmXltsLqt+bBcXkpxW//7WC29WOXW3t90ySTh+cWuWfr9fV7mf4Ql/6u/ZIgpQNvnNYezazt3fK8EXjI1dAXEuQxE=
diff --git a/test/Renci.SshNet.IntegrationTests/resources/client/id_dsa b/test/Data/Key.DSA.txt
similarity index 100%
rename from test/Renci.SshNet.IntegrationTests/resources/client/id_dsa
rename to test/Data/Key.DSA.txt
diff --git a/test/Data/Key.ECDSA.Encrypted.pub b/test/Data/Key.ECDSA.Encrypted.pub
new file mode 100644
index 000000000..17df3f932
--- /dev/null
+++ b/test/Data/Key.ECDSA.Encrypted.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOwUDIZhrxd1VJ7ByUuB25kdZlU0iCl/vru8VZcwmd0ROMLe0FruHkhG54JWTKcOxOOA1ITzEVXVTMpgN9ruRLs= imported-openssh-key
diff --git a/test/Data/Key.ECDSA.Encrypted.txt b/test/Data/Key.ECDSA.Encrypted.txt
index f0af5ba7d..405b4105c 100644
--- a/test/Data/Key.ECDSA.Encrypted.txt
+++ b/test/Data/Key.ECDSA.Encrypted.txt
@@ -1,4 +1,4 @@
------BEGIN EC PRIVATE KEY-----
+-----BEGIN EC PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,54D46F498C989115AAE14FEA21E3AF11
diff --git a/test/Data/Key.ECDSA.pub b/test/Data/Key.ECDSA.pub
new file mode 100644
index 000000000..61919aa53
--- /dev/null
+++ b/test/Data/Key.ECDSA.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEA+TDv5/cqkg07M8M1aQKS8eUkBXnBOWXw5IMalXR0HnJtQQD6M2eHihjYSp+9oU+/Zi5afR11/qDRHLlU/Nx8= imported-openssh-key
diff --git a/test/Data/Key.ECDSA.txt b/test/Data/Key.ECDSA.txt
index 13ac9fb49..3c1c9ed81 100644
--- a/test/Data/Key.ECDSA.txt
+++ b/test/Data/Key.ECDSA.txt
@@ -1,4 +1,4 @@
------BEGIN EC PRIVATE KEY-----
+-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIEdqaFKgJBIibVjyUh1v7Y35LwIQJrocdTaYFLwl7iB0oAoGCCqGSM49
AwEHoUQDQgAEQD5MO/n9yqSDTszwzVpApLx5SQFecE5ZfDkgxqVdHQecm1BAPozZ
4eKGNhKn72hT79mLlp9HXX+oNEcuVT83Hw==
diff --git a/test/Data/Key.ECDSA384.Encrypted.pub b/test/Data/Key.ECDSA384.Encrypted.pub
new file mode 100644
index 000000000..5131ee4c8
--- /dev/null
+++ b/test/Data/Key.ECDSA384.Encrypted.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBAKCegTbmw9KKkPpn6qMsTmPMp9yCr+xOyrRgQOFaToNzFq57mT1jxfIXRL0wyAgINVGNTyHpS2sMalvOYD2lKQkD/i3SlgQXXiGx9yopulY07Q1n2pNk1g8ay4k4Yt24Q== imported-openssh-key
diff --git a/test/Data/Key.ECDSA384.Encrypted.txt b/test/Data/Key.ECDSA384.Encrypted.txt
index 00072ce24..c0e1a360a 100644
--- a/test/Data/Key.ECDSA384.Encrypted.txt
+++ b/test/Data/Key.ECDSA384.Encrypted.txt
@@ -1,4 +1,4 @@
------BEGIN EC PRIVATE KEY-----
+-----BEGIN EC PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,1D64653C5E18C2AACB0B17E3FE43C219
diff --git a/test/Data/Key.ECDSA384.pub b/test/Data/Key.ECDSA384.pub
new file mode 100644
index 000000000..1253fba19
--- /dev/null
+++ b/test/Data/Key.ECDSA384.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBBSTitW+g48jWFDNak3HT1Sjqob6ysZxu8GrXl4UrQacr9PRQErF1tnb7/8oBgjpJ4Mcz23c5EXVpfkSmNMQEjh3tlj+VX2Nfoycnhe4a14mx6UzaIybL6n1ljDzcFgHVg== imported-openssh-key
diff --git a/test/Data/Key.ECDSA384.txt b/test/Data/Key.ECDSA384.txt
index f2d658ea4..43edbf09c 100644
--- a/test/Data/Key.ECDSA384.txt
+++ b/test/Data/Key.ECDSA384.txt
@@ -1,4 +1,4 @@
------BEGIN EC PRIVATE KEY-----
+-----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDCQawHdHLR7NvKa2vPV0sVkbzOE8c0enp95iEysGcGV66RXE1EH//nh
gu5UzeTR4KigBwYFK4EEACKhZANiAAQUk4rVvoOPI1hQzWpNx09Uo6qG+srGcbvB
q15eFK0GnK/T0UBKxdbZ2+//KAYI6SeDHM9t3ORF1aX5EpjTEBI4d7ZY/lV9jX6M
diff --git a/test/Data/Key.ECDSA521.Encrypted.pub b/test/Data/Key.ECDSA521.Encrypted.pub
new file mode 100644
index 000000000..6e85066c4
--- /dev/null
+++ b/test/Data/Key.ECDSA521.Encrypted.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBACwzN70vaXBOSasttYWPYsPTwe4aQWx86wSig5xddvJXwX0Wzg0KYRkF5f2wJbk59JufZVaLcQpOQ/kN/2EOHVzhgA1V1BcBFbmoKSnMMwx/pQUVOu54tPC3CTAIN1CeG9UaBWcz44YXmSRQM5vz4OzZnzVFusFvY6+fnldTeNgQYqz9g== imported-openssh-key
diff --git a/test/Data/Key.ECDSA521.Encrypted.txt b/test/Data/Key.ECDSA521.Encrypted.txt
index 381b30be8..79b339079 100644
--- a/test/Data/Key.ECDSA521.Encrypted.txt
+++ b/test/Data/Key.ECDSA521.Encrypted.txt
@@ -1,4 +1,4 @@
------BEGIN EC PRIVATE KEY-----
+-----BEGIN EC PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,F995028237EBD79C928530CC6C3E957F
diff --git a/test/Data/Key.ECDSA521.pub b/test/Data/Key.ECDSA521.pub
new file mode 100644
index 000000000..5d1ba5185
--- /dev/null
+++ b/test/Data/Key.ECDSA521.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBABrpVjsANqcvqMUo1wo0I1uVCXQ6xrauy4iU86FiOwFmkYRrle4w3oYdRJwniC3TwGMuBuMPMIoCTXr0UtUzn1vkQESNR/J/jAxVseLlVe+KDfZHKvsvk2+O4XaSa1qMfLwN3spwlj08+ylKjlO6V3g0hbz4ZaSVwuiRS7Xsv8W2MV6rg== imported-openssh-key
diff --git a/test/Data/Key.ECDSA521.txt b/test/Data/Key.ECDSA521.txt
index 31abe917a..27a74ff9a 100644
--- a/test/Data/Key.ECDSA521.txt
+++ b/test/Data/Key.ECDSA521.txt
@@ -1,4 +1,4 @@
------BEGIN EC PRIVATE KEY-----
+-----BEGIN EC PRIVATE KEY-----
MIHcAgEBBEIBn2DAme7AU8sCA+/sd6s3c2FNW26IiPvulGd3FC8k5q+fjBZ5LUWR
iJMGrsf2rJLO8hXMGJYoF9tjZEGaabQ8KVagBwYFK4EEACOhgYkDgYYABABrpVjs
ANqcvqMUo1wo0I1uVCXQ6xrauy4iU86FiOwFmkYRrle4w3oYdRJwniC3TwGMuBuM
diff --git a/test/Data/Key.OPENSSH.ECDSA.Encrypted.pub b/test/Data/Key.OPENSSH.ECDSA.Encrypted.pub
new file mode 100644
index 000000000..30e33d96b
--- /dev/null
+++ b/test/Data/Key.OPENSSH.ECDSA.Encrypted.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK6YY2NwwLDSMnJTD+a4OfitCDuG/MnY/AstPgh54xMrZF6Qr0U1H6kRMKY6JJsj31CI97qDYrnTA00Sx5Jy6yw= Key.OPENSSH.ECDSA.Encrypted
diff --git a/test/Data/Key.OPENSSH.ECDSA.Encrypted.txt b/test/Data/Key.OPENSSH.ECDSA.Encrypted.txt
index ab76db4a2..d2f158941 100644
--- a/test/Data/Key.OPENSSH.ECDSA.Encrypted.txt
+++ b/test/Data/Key.OPENSSH.ECDSA.Encrypted.txt
@@ -1,9 +1,10 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABCPSPglZ3
-w/7DmCJxYohONLAAAAEAAAAAEAAABoAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlz
-dHAyNTYAAABBBK6YY2NwwLDSMnJTD+a4OfitCDuG/MnY/AstPgh54xMrZF6Qr0U1H6kRMK
-Y6JJsj31CI97qDYrnTA00Sx5Jy6ywAAACwq4qisorVCP6yvrmf/fcPacX4+FVEmrHNn3fW
-TiYsat7oKoItqTiDaHkIloSX93ue3fzcKXpGPR/qnpu4SezkhL9Uk6ntiwO4coB/kbEnjk
-IFY6ZK0HENRXkdIuDG9qmoB0wjVPJ6L9e5RWZwiCPvNI2O60bpKOUs+tUSah1W7eTWy5Ss
-ttdTgmwqS84c5+uitK1DJh2jsDqfdGm7h1XpDJsRmIEXxTVu/EdtD0hZ/x4=
------END OPENSSH PRIVATE KEY-----
\ No newline at end of file
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABCY
+dyRpKP91m/llh14yqcTgAAAAEAAAAAEAAABoAAAAE2VjZHNhLXNoYTItbmlzdHAy
+NTYAAAAIbmlzdHAyNTYAAABBBK6YY2NwwLDSMnJTD+a4OfitCDuG/MnY/AstPgh5
+4xMrZF6Qr0U1H6kRMKY6JJsj31CI97qDYrnTA00Sx5Jy6ywAAADAE2+HapLgUUft
+e6Nl4XWsAEQdjicejaI1F1+ByHcpmd0Sudqd+P33KliXt48HKcygeqi86QVv3YOj
+IpyXj5ndP6Luy7U5kMIJDyfWi1eRKouFfmektEp3KIktpSHO62NykMK6D1U5rzDo
+7QRdKWUXaVU7P/OGPsaWL7T+/xDn7J/EZVhNrIuV71gyQifID1gbM8mGDdyAa8qd
+peeYuVaKQt3qltAZsRN0q8WC0EHbxeh40hrvwWTAY+wKfGMxS5cf
+-----END OPENSSH PRIVATE KEY-----
diff --git a/test/Data/Key.OPENSSH.ECDSA.pub b/test/Data/Key.OPENSSH.ECDSA.pub
new file mode 100644
index 000000000..f0398673c
--- /dev/null
+++ b/test/Data/Key.OPENSSH.ECDSA.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI/dlNvfssW9KYrB67TcDmz9zBzDf7eMvUupAroP3b3FjUnYnpL3Utc4GkF/PiX7w2DuxaG70/+EX/CYHZBHKCs= Key.OPENSSH.ECDSA
diff --git a/test/Data/Key.OPENSSH.ECDSA.txt b/test/Data/Key.OPENSSH.ECDSA.txt
index 94f16bcbd..d61dfead9 100644
--- a/test/Data/Key.OPENSSH.ECDSA.txt
+++ b/test/Data/Key.OPENSSH.ECDSA.txt
@@ -1,9 +1,9 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
-1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQSP3ZTb37LFvSmKweu03A5s/cwcw3+3
-jL1LqQK6D929xY1J2J6S91LXOBpBfz4l+8Ng7sWhu9P/hF/wmB2QRygrAAAAqMq583bKuf
-N2AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI/dlNvfssW9KYrB
-67TcDmz9zBzDf7eMvUupAroP3b3FjUnYnpL3Utc4GkF/PiX7w2DuxaG70/+EX/CYHZBHKC
-sAAAAhALVqID3K/N7IazKNbhrg09r7rLLtjy81RLV+VDxloQnxAAAAC3NyaW5rZXNATkVP
-AQIDBA==
------END OPENSSH PRIVATE KEY-----
\ No newline at end of file
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNl
+Y2RzYS1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQSP3ZTb37LFvSmKweu0
+3A5s/cwcw3+3jL1LqQK6D929xY1J2J6S91LXOBpBfz4l+8Ng7sWhu9P/hF/wmB2Q
+RygrAAAAsC+6dPMvunTzAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAy
+NTYAAABBBI/dlNvfssW9KYrB67TcDmz9zBzDf7eMvUupAroP3b3FjUnYnpL3Utc4
+GkF/PiX7w2DuxaG70/+EX/CYHZBHKCsAAAAhALVqID3K/N7IazKNbhrg09r7rLLt
+jy81RLV+VDxloQnxAAAAEUtleS5PUEVOU1NILkVDRFNBAQIDBAUG
+-----END OPENSSH PRIVATE KEY-----
diff --git a/test/Data/Key.OPENSSH.ECDSA384.Encrypted.pub b/test/Data/Key.OPENSSH.ECDSA384.Encrypted.pub
new file mode 100644
index 000000000..2ca7e4d3f
--- /dev/null
+++ b/test/Data/Key.OPENSSH.ECDSA384.Encrypted.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBFL5NEL9uRhgkF2q+8m58EvtZq4mDGgcVEzafPRuNIn1018m9KuqNpOQ6d+435n+MRYThe4MUdijSIDuopX2i14Z35oKZ9x2LsV+RxQczjmbnoWZdvgcvdOo6jiJdY7XJw== Key.OPENSSH.ECDSA384.Encrypted
diff --git a/test/Data/Key.OPENSSH.ECDSA384.Encrypted.txt b/test/Data/Key.OPENSSH.ECDSA384.Encrypted.txt
index 500654500..5083342db 100644
--- a/test/Data/Key.OPENSSH.ECDSA384.Encrypted.txt
+++ b/test/Data/Key.OPENSSH.ECDSA384.Encrypted.txt
@@ -1,11 +1,12 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABAMZphcrt
-UKJMlSabtzt2GdAAAAEAAAAAEAAACIAAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlz
-dHAzODQAAABhBFL5NEL9uRhgkF2q+8m58EvtZq4mDGgcVEzafPRuNIn1018m9KuqNpOQ6d
-+435n+MRYThe4MUdijSIDuopX2i14Z35oKZ9x2LsV+RxQczjmbnoWZdvgcvdOo6jiJdY7X
-JwAAAOBvXOaTq8vPRy7y5BBzr26QAYouJfGprYOqpywiIAZaICu0FJ8EXmmen6310CTG6Z
-CZ4VhC5MWCWRYTaOnPNn8FvGqo2bxEqWZmyZfVvv1Z35MtSAZEfwgfXaOZKJ/lPKsRndg5
-okpqNU1aG2u+4J7eZ7QyCD/1RCCEL5wwVcrDeuMkTDPpnJc1NEGz8HbfcZ5xZavrz6Wa9t
-tX7pFICqK9IIeOGMJ2WRXR6sQGyag+jNn9KmsIya7hkNJVeZeY2GKAk2s/0vxfYx9RFD55
-ewB34oHyTdxAQT3L+FZT6XfRHw==
------END OPENSSH PRIVATE KEY-----
\ No newline at end of file
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABAi
+RxrKRE4zQH82w0Rd0v/ZAAAAEAAAAAEAAACIAAAAE2VjZHNhLXNoYTItbmlzdHAz
+ODQAAAAIbmlzdHAzODQAAABhBFL5NEL9uRhgkF2q+8m58EvtZq4mDGgcVEzafPRu
+NIn1018m9KuqNpOQ6d+435n+MRYThe4MUdijSIDuopX2i14Z35oKZ9x2LsV+RxQc
+zjmbnoWZdvgcvdOo6jiJdY7XJwAAAPADDlLFKHgORBmNlg6LYOSdYyZFCVjmRbwm
+j1X1qDSxgr48+OEJYr/nEfd6jMBKyS1mAHuvStxe1rA0PQMCrjyk/pmjbFQ6uEC4
+u31RHE9N0ZgKCgYLeT7s30ODh5TChmubbjdzHDXNYm3oKTGoaGYRBI6Yp+9+DFId
+qEXVZzZV+w7dnPWh4L6YjBIoqnwlxW9XOSqizXOcjUbZrrZIA13rbYKVlCmVXlMW
+SgWjbdg4+L/ijwZdO2O5XrcLmpU3rTa2wjlREE1fqH7Wm/qKMF28YF1Ytuus+XSr
+BoU/lLWDW4BL1lyROGByxz3zYUpVgfo=
+-----END OPENSSH PRIVATE KEY-----
diff --git a/test/Data/Key.OPENSSH.ECDSA384.pub b/test/Data/Key.OPENSSH.ECDSA384.pub
new file mode 100644
index 000000000..33a0bcab6
--- /dev/null
+++ b/test/Data/Key.OPENSSH.ECDSA384.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBFM/UMxegeBb5Ff5L83FQQSWi7VyYsPoISJH7OnNoYbqbOXouFRj5nd/Yze7i7u1wzxOAH+OIducj1Np43lArgdfUP0NeQflGF+ct+ubeQJM2gIUp3RZr9AC8quU0qJGLw== Key.OPENSSH.ECDSA384
diff --git a/test/Data/Key.OPENSSH.ECDSA384.txt b/test/Data/Key.OPENSSH.ECDSA384.txt
index e5e6e06a9..620bd7ee3 100644
--- a/test/Data/Key.OPENSSH.ECDSA384.txt
+++ b/test/Data/Key.OPENSSH.ECDSA384.txt
@@ -1,10 +1,11 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAiAAAABNlY2RzYS
-1zaGEyLW5pc3RwMzg0AAAACG5pc3RwMzg0AAAAYQRTP1DMXoHgW+RX+S/NxUEElou1cmLD
-6CEiR+zpzaGG6mzl6LhUY+Z3f2M3u4u7tcM8TgB/jiHbnI9TaeN5QK4HX1D9DXkH5RhfnL
-frm3kCTNoCFKd0Wa/QAvKrlNKiRi8AAADYlABjHJQAYxwAAAATZWNkc2Etc2hhMi1uaXN0
-cDM4NAAAAAhuaXN0cDM4NAAAAGEEUz9QzF6B4FvkV/kvzcVBBJaLtXJiw+ghIkfs6c2hhu
-ps5ei4VGPmd39jN7uLu7XDPE4Af44h25yPU2njeUCuB19Q/Q15B+UYX5y365t5AkzaAhSn
-dFmv0ALyq5TSokYvAAAAMAXLUgK32yWzUrpeLzpdFB2/eiNnkxQlu5OneTPukKcZYclfgo
-jv0YHK5LCvAtF8lwAAAAtzcmlua2VzQE5FTwECAwQF
------END OPENSSH PRIVATE KEY-----
\ No newline at end of file
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAiAAAABNl
+Y2RzYS1zaGEyLW5pc3RwMzg0AAAACG5pc3RwMzg0AAAAYQRTP1DMXoHgW+RX+S/N
+xUEElou1cmLD6CEiR+zpzaGG6mzl6LhUY+Z3f2M3u4u7tcM8TgB/jiHbnI9TaeN5
+QK4HX1D9DXkH5RhfnLfrm3kCTNoCFKd0Wa/QAvKrlNKiRi8AAADgj+zzrY/s860A
+AAATZWNkc2Etc2hhMi1uaXN0cDM4NAAAAAhuaXN0cDM4NAAAAGEEUz9QzF6B4Fvk
+V/kvzcVBBJaLtXJiw+ghIkfs6c2hhups5ei4VGPmd39jN7uLu7XDPE4Af44h25yP
+U2njeUCuB19Q/Q15B+UYX5y365t5AkzaAhSndFmv0ALyq5TSokYvAAAAMAXLUgK3
+2yWzUrpeLzpdFB2/eiNnkxQlu5OneTPukKcZYclfgojv0YHK5LCvAtF8lwAAABRL
+ZXkuT1BFTlNTSC5FQ0RTQTM4NAECAwQ=
+-----END OPENSSH PRIVATE KEY-----
diff --git a/test/Data/Key.OPENSSH.ECDSA521.Encrypted.pub b/test/Data/Key.OPENSSH.ECDSA521.Encrypted.pub
new file mode 100644
index 000000000..1dcc63771
--- /dev/null
+++ b/test/Data/Key.OPENSSH.ECDSA521.Encrypted.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAH9BVM6bRhbELtgdMGsin5lM42R2EWoT+6Akakl5rQy2tHHLIYGLEfaqI+0iUo2V6MxEf9w0hVz6SEsF+yDgyrYPQCIieaB1oBvIl+PZmL1XsuAXs2uMRsNJb4myGU/DiekxqzIPa0LMrBZ4xmErcn5Gazkw1EA0B3HoaW5wj+geI/efQ== Key.OPENSSH.ECDSA521.Encrypted
diff --git a/test/Data/Key.OPENSSH.ECDSA521.Encrypted.txt b/test/Data/Key.OPENSSH.ECDSA521.Encrypted.txt
index da831cf9c..e87218820 100644
--- a/test/Data/Key.OPENSSH.ECDSA521.Encrypted.txt
+++ b/test/Data/Key.OPENSSH.ECDSA521.Encrypted.txt
@@ -1,12 +1,14 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABBWjIyzbM
-MQ3UPE8BiQ0n4LAAAAEAAAAAEAAACsAAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlz
-dHA1MjEAAACFBAH9BVM6bRhbELtgdMGsin5lM42R2EWoT+6Akakl5rQy2tHHLIYGLEfaqI
-+0iUo2V6MxEf9w0hVz6SEsF+yDgyrYPQCIieaB1oBvIl+PZmL1XsuAXs2uMRsNJb4myGU/
-DiekxqzIPa0LMrBZ4xmErcn5Gazkw1EA0B3HoaW5wj+geI/efQAAARDi+GGTYH1T+5Dd8N
-EVCiL+J7fm8uP8yAcvQNh3JBYIf1g/GZ0hJDuA47fcTzXEfTGZLGWdgaE8cxIUICpjBoak
-EpNS1HyhqYZAt2J8o/14t2GbXczJfoQLOIQl2S1zXQ9shof12odu9DGcBhSAz9hswlndBE
-d99uCz/ymzwQ0i2Pp+urUXo7+YXB6HMh9YTMeGQAiDJFO3NPDqDczfUECtTUkQMhy8r06m
-hAp/oZ6K1KBbZzdc0xyqDePKAqqyHnN4FD7Wfv11SWoOhlUcEVg2ZvNj/O+CsoWzMpN+dt
-DPKZHmH/kegWKBsdtAC9f5Hg3b2oQAK0pKghms1+/J9iilnIMwv80CPzGdv0YAG9Vx5w==
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABCr
+ps+rr4kkPvUVZfJpoR4GAAAAEAAAAAEAAACsAAAAE2VjZHNhLXNoYTItbmlzdHA1
+MjEAAAAIbmlzdHA1MjEAAACFBAH9BVM6bRhbELtgdMGsin5lM42R2EWoT+6Akakl
+5rQy2tHHLIYGLEfaqI+0iUo2V6MxEf9w0hVz6SEsF+yDgyrYPQCIieaB1oBvIl+P
+ZmL1XsuAXs2uMRsNJb4myGU/DiekxqzIPa0LMrBZ4xmErcn5Gazkw1EA0B3HoaW5
+wj+geI/efQAAASD6gdu6JHpiY92v0ED6YQ9FjYvjaRrIDUAbFv3jnuQ+sWsyaxTk
+lSHI+4A/jxxIT/MMtNNLZiArZXD889BNA+mXrZIQ7i2DiYoLJWRHvmmPSxcGlHUF
+PfwPwwPlK/nkR6NKuT7zP0daGMQYf8Njq727qpltkPmGQGDknN8tbX4RUOUGBPNh
+UuRHRwqK3tHF5vDpUrJ09bsnClqGP6ufq3Zf+yb1r1tQK3uXadoE0wl8P8WZJRXo
+JX8ngVVy6JMOiyAWZkTukKzVBAE1CMW8FOgX6ErqghqBD6s7YCxITXcyvwkWyQuc
+oEr+BCLpwvXZ44CsOH96R+QevFz5ZI/dJx67Ccvdj2+8v5rECN4U8zpK7t5BYjla
+hOkBkliF7QD8OmI=
-----END OPENSSH PRIVATE KEY-----
diff --git a/test/Data/Key.OPENSSH.ECDSA521.pub b/test/Data/Key.OPENSSH.ECDSA521.pub
new file mode 100644
index 000000000..8db24c3ba
--- /dev/null
+++ b/test/Data/Key.OPENSSH.ECDSA521.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBABrunhZWBr7Tyq7XrQGt3MrJE0kxAJ4aEWW412rvf+5pbeqWqgSJo21zm4HscfKMJZBOZ/OtJEtFntgHBRqdzDKHgCrqAGAaxdXPA29jeTFEOUatJ8yaweVfPjV2DD3CbV8Fx/3ueJ7FFD/EaWGTJ/shiVD+zkGlcXaVL2XQfmEGKmlGA== Key.OPENSSH.ECDSA521
diff --git a/test/Data/Key.OPENSSH.ECDSA521.txt b/test/Data/Key.OPENSSH.ECDSA521.txt
index 0ad09eb24..85e3b07e5 100644
--- a/test/Data/Key.OPENSSH.ECDSA521.txt
+++ b/test/Data/Key.OPENSSH.ECDSA521.txt
@@ -1,12 +1,13 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAArAAAABNlY2RzYS
-1zaGEyLW5pc3RwNTIxAAAACG5pc3RwNTIxAAAAhQQAa7p4WVga+08qu160BrdzKyRNJMQC
-eGhFluNdq73/uaW3qlqoEiaNtc5uB7HHyjCWQTmfzrSRLRZ7YBwUancwyh4Aq6gBgGsXVz
-wNvY3kxRDlGrSfMmsHlXz41dgw9wm1fBcf97niexRQ/xGlhkyf7IYlQ/s5BpXF2lS9l0H5
-hBippRgAAAEI/9prf//aa38AAAATZWNkc2Etc2hhMi1uaXN0cDUyMQAAAAhuaXN0cDUyMQ
-AAAIUEAGu6eFlYGvtPKrtetAa3cyskTSTEAnhoRZbjXau9/7mlt6paqBImjbXObgexx8ow
-lkE5n860kS0We2AcFGp3MMoeAKuoAYBrF1c8Db2N5MUQ5Rq0nzJrB5V8+NXYMPcJtXwXH/
-e54nsUUP8RpYZMn+yGJUP7OQaVxdpUvZdB+YQYqaUYAAAAQXwQnI20tNxwLKHPMDmumblD
-b0sBqW5Y9248L//x4sWFrkjk6k1LcZno9KLqz8+tIFMJ5sji+axRoUZCXb3cIPzPAAAAC3
-NyaW5rZXNATkVP
------END OPENSSH PRIVATE KEY-----
\ No newline at end of file
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAArAAAABNl
+Y2RzYS1zaGEyLW5pc3RwNTIxAAAACG5pc3RwNTIxAAAAhQQAa7p4WVga+08qu160
+BrdzKyRNJMQCeGhFluNdq73/uaW3qlqoEiaNtc5uB7HHyjCWQTmfzrSRLRZ7YBwU
+ancwyh4Aq6gBgGsXVzwNvY3kxRDlGrSfMmsHlXz41dgw9wm1fBcf97niexRQ/xGl
+hkyf7IYlQ/s5BpXF2lS9l0H5hBippRgAAAEgzPWTIsz1kyIAAAATZWNkc2Etc2hh
+Mi1uaXN0cDUyMQAAAAhuaXN0cDUyMQAAAIUEAGu6eFlYGvtPKrtetAa3cyskTSTE
+AnhoRZbjXau9/7mlt6paqBImjbXObgexx8owlkE5n860kS0We2AcFGp3MMoeAKuo
+AYBrF1c8Db2N5MUQ5Rq0nzJrB5V8+NXYMPcJtXwXH/e54nsUUP8RpYZMn+yGJUP7
+OQaVxdpUvZdB+YQYqaUYAAAAQXwQnI20tNxwLKHPMDmumblDb0sBqW5Y9248L//x
+4sWFrkjk6k1LcZno9KLqz8+tIFMJ5sji+axRoUZCXb3cIPzPAAAAFEtleS5PUEVO
+U1NILkVDRFNBNTIxAQIDBAUGBwgJCgsMDQ4P
+-----END OPENSSH PRIVATE KEY-----
diff --git a/test/Data/Key.OPENSSH.ED25519.Encrypted.pub b/test/Data/Key.OPENSSH.ED25519.Encrypted.pub
new file mode 100644
index 000000000..62327be27
--- /dev/null
+++ b/test/Data/Key.OPENSSH.ED25519.Encrypted.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGFdyflleGqSPOhgSYZf7ZQFlG0zEL9VDGC69UbtaaBy Key.OPENSSH.ED25519.Encrypted
diff --git a/test/Data/Key.OPENSSH.ED25519.Encrypted.txt b/test/Data/Key.OPENSSH.ED25519.Encrypted.txt
index 50b4d9689..b0f4e4d78 100644
--- a/test/Data/Key.OPENSSH.ED25519.Encrypted.txt
+++ b/test/Data/Key.OPENSSH.ED25519.Encrypted.txt
@@ -1,9 +1,9 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jYmMAAAAGYmNyeXB0AAAAGAAAABBg
-HWh+J0IG6OfYxD74SoT9AAAAEAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIGFd
-yflleGqSPOhgSYZf7ZQFlG0zEL9VDGC69UbtaaByAAAAoDLm8u8wFwlqjzZRfVxj
-wzGTYFJFtfkHRqfFBE4xKgknHNRbCT1OQb7rgE7nZbUXIlb1NCTZLbXti9AYNZpz
-ycvPD4Dc6lB03b8pNHoFVSkrCwxrWB5bKtIM4OZNcDK1lZDBEWE2aZXf9puRHbu3
-ccrK/F5GjRi2pUa8qnfqThN1mNPZwFTx4oSKeRaUMdeHBrNwDtaxq32A6Q4KHoYO
-KPM=
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABAb
+LdF3aDTKufq+4lmfYt9wAAAAEAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIGFd
+yflleGqSPOhgSYZf7ZQFlG0zEL9VDGC69UbtaaByAAAAsPooI5L5r84607ib9qOp
+QLZYY2fVriZcZZ5TTnCj8rb3SkiZ+vS7Or+HjsAszKkvEO3We8OslmYoAUjuFJsc
+D4IImAKZAO345IGBMELO71tUtpn9OGII5uyeINsnCiPz83My7mxNt1nJHluFTja5
+aoAqW30nnvwpJ2Dt82BITEmGsAmOkP9BqJNWL+p7jEEI0CXjKbzv/Sg7l7IraKJL
+A1XoNHcjTXd5LGr1gYSD5LCe
-----END OPENSSH PRIVATE KEY-----
diff --git a/test/Data/Key.OPENSSH.ED25519.pub b/test/Data/Key.OPENSSH.ED25519.pub
new file mode 100644
index 000000000..a4c452e63
--- /dev/null
+++ b/test/Data/Key.OPENSSH.ED25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA0JZnDQrxQZcNALfZYG7LPAW1MYEGvVW5nje7OlMGMi Key.OPENSSH.ED25519
diff --git a/test/Data/Key.OPENSSH.ED25519.txt b/test/Data/Key.OPENSSH.ED25519.txt
index 84811f653..34cab676a 100644
--- a/test/Data/Key.OPENSSH.ED25519.txt
+++ b/test/Data/Key.OPENSSH.ED25519.txt
@@ -1,8 +1,8 @@
------BEGIN OPENSSH PRIVATE KEY-----
+-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtz
c2gtZWQyNTUxOQAAACANCWZw0K8UGXDQC32WBuyzwFtTGBBr1VuZ43uzpTBjIgAA
-AKBATgCiQE4AogAAAAtzc2gtZWQyNTUxOQAAACANCWZw0K8UGXDQC32WBuyzwFtT
+AKCgIja8oCI2vAAAAAtzc2gtZWQyNTUxOQAAACANCWZw0K8UGXDQC32WBuyzwFtT
GBBr1VuZ43uzpTBjIgAAAEAAzBF1MPUxrs+ycpJh28zzo/F3m6WcKO+orsSbR5Lw
-KQ0JZnDQrxQZcNALfZYG7LPAW1MYEGvVW5nje7OlMGMiAAAAFGVkMjU1MTkta2V5
-LTIwMTgxMTI3AQIDBAUGBwgJ
+KQ0JZnDQrxQZcNALfZYG7LPAW1MYEGvVW5nje7OlMGMiAAAAE0tleS5PUEVOU1NI
+LkVEMjU1MTkBAgMEBQYHCAkK
-----END OPENSSH PRIVATE KEY-----
diff --git a/test/Data/Key.OPENSSH.RSA.Encrypted.pub b/test/Data/Key.OPENSSH.RSA.Encrypted.pub
new file mode 100644
index 000000000..a4479683d
--- /dev/null
+++ b/test/Data/Key.OPENSSH.RSA.Encrypted.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxOfnmxC1gmmX18LCBG/X73BoCXQEBEAJz3V9w0FMTgUBebK3fkfOMLNzWn5aMR608wQHOEPYhHffCJfdJR6lUWLHZz5+EZRfM9oHpysMtToYQoGtb9xM7D5J3lnWZgSea2R7xSeqpClN5nQUMGu8y2d2S3g9o1vrTdeu71u09QFOx2AXBPUmCjpCuBlNyYEEQMfRMtQ6PDbPdvLM1uylbQqB+/6jMsCyEFvlLit9GcZ7ItKQN+jsZNmP+f7ytVXLsZTjPLd5mWWrf6T1T1Xt9DBoLXnMrmDiCf/EXiTYonIO6B0FHvNUCrDzZ7rxIebqePLes1Q2yoUqmC8g+cww3 Key.OPENSSH.RSA.Encrypted
diff --git a/test/Data/Key.OPENSSH.RSA.Encrypted.txt b/test/Data/Key.OPENSSH.RSA.Encrypted.txt
index b9eed58be..62586de3e 100644
--- a/test/Data/Key.OPENSSH.RSA.Encrypted.txt
+++ b/test/Data/Key.OPENSSH.RSA.Encrypted.txt
@@ -1,28 +1,30 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABCoWhCSaG
-psKT80oPIOAlqJAAAAEAAAAAEAAAEXAAAAB3NzaC1yc2EAAAADAQABAAABAQCxOfnmxC1g
-mmX18LCBG/X73BoCXQEBEAJz3V9w0FMTgUBebK3fkfOMLNzWn5aMR608wQHOEPYhHffCJf
-dJR6lUWLHZz5+EZRfM9oHpysMtToYQoGtb9xM7D5J3lnWZgSea2R7xSeqpClN5nQUMGu8y
-2d2S3g9o1vrTdeu71u09QFOx2AXBPUmCjpCuBlNyYEEQMfRMtQ6PDbPdvLM1uylbQqB+/6
-jMsCyEFvlLit9GcZ7ItKQN+jsZNmP+f7ytVXLsZTjPLd5mWWrf6T1T1Xt9DBoLXnMrmDiC
-f/EXiTYonIO6B0FHvNUCrDzZ7rxIebqePLes1Q2yoUqmC8g+cww3AAADwNRNGSnB7cRpgU
-BxdyC0ofj0hUONXjmoT+OGPph9lgZMUnzcon9Z1bpsJuMoRXL14Cdbds7YPmw1YB94Uc+S
-8QexLJG0wGel2yvzJhU+QFsLeVRS4tayERFXGCoVpu7RunEYy+hvaiX5CD+luEkiarfj9I
-N8+9QUMhDYkELwWBV4rde18Vr8m1P1FuFgqikY0TfSKUGCkvjl4FvDxrxqsewaEkkzwRTI
-PhOFCCM5jBPWE+uWVcwKoidvAqcNbmwIzDNZGwXtrAvYYzZa62C/MNLHuFU1weuJiM8sYa
-6iKrk681BrrpGcSEZEXd41CFY3BWlIDTozrWn03xFlIpeLG2YMPcuYqFhR/41BJfa+fW5B
-Ei0SuUx2xjdRiamqpPku4H6ulkjl0KlFCr976Y2V1JZMQh7bd0huubmf4P4poBk6ZgGpSf
-snhcv1HjCVkvfA2yhOcXogzK2HOZgDS5sdSb/kUGURdjlj6ccSzc3OYaHAy9gZXj8Q58pA
-4KrXTDlCJ9BTR8PIND54j6gMKu5ijX0TP9nJf/hG9GXx+Xss8T3xdPxdNBapPCcuxGZGJN
-H+KFqrpmZYHm0evqFPS7BCUp2VvID6SMgrTYiH0IIbMHLStfdNchtn3EudMbW9vRhxg3Do
-npT7Px2JYp87PNoHg2eOx0yGy9r81n2+Wi7SpGCWD8MFfxqd4JIQ8+zjrIRAA1q53uuSUh
-m/hlmJWEjQWmcBw5bKrOU0CfGGoT3o6HWYRQ9d5+kKeoS+dOINxxf80G5b7vOrE3PbFxT3
-W8zwRd90Msr3LXgPaN0V4RJeBX38e0EvVbArL2MgSs/BC5aID0N0Sqiu+13AqqNYxj6RH2
-FA7FN+BBa16fvdi5h5kNnZUrQUKOAImjEE494O8uGKQImviGqB5PY6DJqHPTtn7RSwFx9E
-rR7nbAZPTucIN/OIfURxTedhROk0PXjWnwpjuz+UpaMRWqgWTv3bLOuqorqMLibAFLRQEQ
-6pR0wbmTpTfEW1jNmAohxB4N14YdSfhThzkCAgpQW6UCLc83y3EDzQFi5862a+2ixULKhK
-220tZRk2GU7OFAPRpgQ/sxptGqZbNdOV80wk1MgykoFkoptRkm7bfJcdLHZnP7E6yU0ssP
-rCbQlfD0/dD2QE/7HqxHsipNNuEagULjK6WUYXkpx1Siq2vecjZw8dNp7EBh+KlujEm+Dr
-R7KFdFCw8DUwrzXwfMIogeRVbW8H0/fQEqsX5oPLTEOnNBjzf8pHush7CCrprbo0ZK3xFp
-Vr3LUCoA==
------END OPENSSH PRIVATE KEY-----
\ No newline at end of file
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABBG
+IAWU/wNbg8olz6BhAdPiAAAAEAAAAAEAAAEXAAAAB3NzaC1yc2EAAAADAQABAAAB
+AQCxOfnmxC1gmmX18LCBG/X73BoCXQEBEAJz3V9w0FMTgUBebK3fkfOMLNzWn5aM
+R608wQHOEPYhHffCJfdJR6lUWLHZz5+EZRfM9oHpysMtToYQoGtb9xM7D5J3lnWZ
+gSea2R7xSeqpClN5nQUMGu8y2d2S3g9o1vrTdeu71u09QFOx2AXBPUmCjpCuBlNy
+YEEQMfRMtQ6PDbPdvLM1uylbQqB+/6jMsCyEFvlLit9GcZ7ItKQN+jsZNmP+f7yt
+VXLsZTjPLd5mWWrf6T1T1Xt9DBoLXnMrmDiCf/EXiTYonIO6B0FHvNUCrDzZ7rxI
+ebqePLes1Q2yoUqmC8g+cww3AAAD0FJlZT8ZlW/a4ZLCYzZw1XpWsoHxrrFkmO4C
+bLYeMnpHge24Cx7vV5DT9L3GIPrKvHwDMn0a0fW3GNPRWWV6dCTNiN+YZYUFCJQT
+TIFRQMqLqXOiAneDYOpGK739jp/v8joEPGirpnQ6kNW3dMgjgWsrYe8mMwqQ4Q/W
+yFyYfEcZHK0/rKBs3pYKT5dH4EemCOnbxIGxf1FBp6++F9J4cIOFF7kDEsdaBZff
+PHsxFheIEP7yeZM6IMchJQ4EbfXb61f62IHjRMfXkENzTDnMklxM3wgNLIgV9sXt
+XDhYq/mVYrbts7sLKyFQvhM79GcDmxI+ZU7qPQ2cjuOtw734GAWsOmXyA/NUii9l
+AjIZp2N/xDAUTypBNcsp7T0ijmTvJVlsVyKIPX4bzl2wPgJth4+IqgFftOUHDsVX
+D6/+pu64rYG5g2YQOeL5Cs2kngqtFEVs2Kgz8i8C7Rse7Fkckfwg3bDXOjU/3GRR
+XYfAgOCsOQ8sFbfnyuRqC55sW7Nc0BGEJ5aEliByF0gNnlAxrX6BJwO8EVQlP5GQ
+dtN91F6TvdKgSJvshINKrr8D39JoK9MtjyeZ/t1mPZiRfwtjtd52T+BwKq+oM7HB
+D/pgDlsdvHnTE2b7sGIq6MP8vMAXpuTcaTgvFj/lzhJ8193ufTwU1U6WJ5egSEkk
+k8HXbaLo0g5vaBmpM6ImLJD7REgOEV3TWxKWDRscdZhcNTiDZMY6/1K0SoFjJQ1t
+a3rzqS4lGaexsT2RlBdSAl7f0A6VHMRM9CNUJFogpjw6BzxTWXhJbRzgLPPxlity
+sRMmdBVzV+O4l+Xht3eVrC2pk/qGytlmlWku2Wto+mHA/FUj7NdEBElevgHeXjhL
+fKHsumP7Wr1P5KYFOFBnZqNvHU1CmQ4vm3/YEyClhJNzvMFou80i1ll4rBTnLozV
+jDbIy5An8qFmB566CdHg/iGbdq85iL4ae8PrFb9Qc5mCJf8OCmNeeYu4f3yCeXZu
+TjCVJHwx7wVEegS2MZbLWDL1Jds0d7kx0h24zn8QI0EdZrugQc3gZxpbLmmua5Kd
+XWJw4zqaFFP9QU+OLVDBAn+RFF/rj6aHa18v6Udyulj5mGaSDANv3JcAHxy7QVZ2
+Kc3qlD49SKL8H6zj1ozeh0M2J5GRHEPS1DUmauW+Qkl8admEsctunjbbNMjCRc5J
+M1U8tI5NyPAihovpIRMnz8yhuFgcL9jLREokw/eNNRpayWSwKfLKdn2/DC2ZLx2n
+CgP5dGDweT48SE9BveF0SfO2/6c/9QxkYEvA8YFWRB4Bd/NtiL0=
+-----END OPENSSH PRIVATE KEY-----
diff --git a/test/Data/Key.OPENSSH.RSA.pub b/test/Data/Key.OPENSSH.RSA.pub
new file mode 100644
index 000000000..3e77649c4
--- /dev/null
+++ b/test/Data/Key.OPENSSH.RSA.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDtbs6KCLsePWaxraXweKYs/NqBWYT8Kx4woJHE8xO1ZO+hl0y3uF+S2FYDuHbRruhJJ4fa3sWp46lU0YVi9FXcFVawpkkxFx0mJMJkCMffytiT3Re9neYqso3/d9xCyHg6I+dapPodKqDXiiJXxQ+1TCcTrmyRZLG/G34QuVWkKobm8TY78Y0MpATsXNi3q9CKEwVIAEGqO9q7SaNfTTYpiIIyvq+CXxdiQMDifn4nJBJDHOed+sv3dmhqq6NE/ZtPlSFeBvOvwcXC6pAa9REQJlNMjwGK//q04if3HaERo3q/EMu1dz30TZ3o1bpx2uLBoYUniOBVYMTmZTTTpd09 Key.OPENSSH.RSA
diff --git a/test/Data/Key.OPENSSH.RSA.txt b/test/Data/Key.OPENSSH.RSA.txt
index 893001ebb..ac60a2ff0 100644
--- a/test/Data/Key.OPENSSH.RSA.txt
+++ b/test/Data/Key.OPENSSH.RSA.txt
@@ -1,27 +1,30 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
-NhAAAAAwEAAQAAAQEA7W7Oigi7Hj1msa2l8HimLPzagVmE/CseMKCRxPMTtWTvoZdMt7hf
-kthWA7h20a7oSSeH2t7FqeOpVNGFYvRV3BVWsKZJMRcdJiTCZAjH38rYk90XvZ3mKrKN/3
-fcQsh4OiPnWqT6HSqg14oiV8UPtUwnE65skWSxvxt+ELlVpCqG5vE2O/GNDKQE7FzYt6vQ
-ihMFSABBqjvau0mjX002KYiCMr6vgl8XYkDA4n5+JyQSQxznnfrL93ZoaqujRP2bT5UhXg
-bzr8HFwuqQGvURECZTTI8Biv/6tOIn9x2hEaN6vxDLtXc99E2d6NW6cdriwaGFJ4jgVWDE
-5mU006XdPQAAA8jzN6zf8zes3wAAAAdzc2gtcnNhAAABAQDtbs6KCLsePWaxraXweKYs/N
-qBWYT8Kx4woJHE8xO1ZO+hl0y3uF+S2FYDuHbRruhJJ4fa3sWp46lU0YVi9FXcFVawpkkx
-Fx0mJMJkCMffytiT3Re9neYqso3/d9xCyHg6I+dapPodKqDXiiJXxQ+1TCcTrmyRZLG/G3
-4QuVWkKobm8TY78Y0MpATsXNi3q9CKEwVIAEGqO9q7SaNfTTYpiIIyvq+CXxdiQMDifn4n
-JBJDHOed+sv3dmhqq6NE/ZtPlSFeBvOvwcXC6pAa9REQJlNMjwGK//q04if3HaERo3q/EM
-u1dz30TZ3o1bpx2uLBoYUniOBVYMTmZTTTpd09AAAAAwEAAQAAAQEA6Xgq+gppzOt9nrts
-z5Ajf1tHlSesn7XaYuCRVgPb3mOZSuEW3BUdTa0Sr2fk1nzSBpUrfqnN3idyK2g3bD1sbB
-RDgUKR+AaNcCN3TpxfxgyVeJhQLvEkEdovzQRUfwrXRfxmE3jkRGfVbvxylrG8p35xcmXy
-del46r2i8dj8gIY3tKp0RMvZ4ZlNbhWHPd5OxyHWL9e3gbOSyIyjQgTKZezhzErS/X/KJ/
-XYqzyBAqNqZ2Rg1kKiHRlHS6KEI2tyFwYfh+Rb6L9xch1SqOtQhTWirmxS25dpGD2jgalX
-eyiw8PmuqTiWCqUmUMx6MdF3tFsirr54K4QA9kqMeaRLtQAAAIEAsUQT0Uhq7l0ugTd4Y9
-89bH6eW0fol21/m7B5zkJQepNadUPTs188uvv4inW8n2O3RCanXWHZfCJ1AsR/MEEW2C6Q
-DtvqKXHbzfWQlCYSVxB17CjURKa8fNaIAk98zgmNNwO53NBleyrUhPgvm3xt7ACgpzXY5R
-wNJL8/a0WOmgwAAACBAP508Op6wWPAwn1JfBZuqQtjcfnJeN4NkYQBdybn0vVu5UdyqSQL
-a8hlAzROhA+qJvrlsZgM9h8CyLTyuim8likZHocwO13zBTdVaQ8c2lJvf2uXTIXNZHseS7
-ITkfBiO1hSB4z8RDkOr35mGfdbyJIFAwFZF4Xs8WnQF+vHEadrAAAAgQDu329eCwVFf9g0
-zNHfZu31p0WtErcsRv57fq+UoPtov8nxUF71oOWe5KSGnGtMICI31kBtPhUbvfOmuqNrgJ
-BjgjbPQmi0xSAE5L3QuEKRNjlaE3/WadKBwzhJDtauuYk1ifkrdAVp67XyQ5puyuGgVaQB
-NPbrxA9g1IbyeL4/9wAAAAtzcmlua2VzQE5FTwECAwQFBg==
------END OPENSSH PRIVATE KEY-----
\ No newline at end of file
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdz
+c2gtcnNhAAAAAwEAAQAAAQEA7W7Oigi7Hj1msa2l8HimLPzagVmE/CseMKCRxPMT
+tWTvoZdMt7hfkthWA7h20a7oSSeH2t7FqeOpVNGFYvRV3BVWsKZJMRcdJiTCZAjH
+38rYk90XvZ3mKrKN/3fcQsh4OiPnWqT6HSqg14oiV8UPtUwnE65skWSxvxt+ELlV
+pCqG5vE2O/GNDKQE7FzYt6vQihMFSABBqjvau0mjX002KYiCMr6vgl8XYkDA4n5+
+JyQSQxznnfrL93ZoaqujRP2bT5UhXgbzr8HFwuqQGvURECZTTI8Biv/6tOIn9x2h
+EaN6vxDLtXc99E2d6NW6cdriwaGFJ4jgVWDE5mU006XdPQAAA9DGPmJsxj5ibAAA
+AAdzc2gtcnNhAAABAQDtbs6KCLsePWaxraXweKYs/NqBWYT8Kx4woJHE8xO1ZO+h
+l0y3uF+S2FYDuHbRruhJJ4fa3sWp46lU0YVi9FXcFVawpkkxFx0mJMJkCMffytiT
+3Re9neYqso3/d9xCyHg6I+dapPodKqDXiiJXxQ+1TCcTrmyRZLG/G34QuVWkKobm
+8TY78Y0MpATsXNi3q9CKEwVIAEGqO9q7SaNfTTYpiIIyvq+CXxdiQMDifn4nJBJD
+HOed+sv3dmhqq6NE/ZtPlSFeBvOvwcXC6pAa9REQJlNMjwGK//q04if3HaERo3q/
+EMu1dz30TZ3o1bpx2uLBoYUniOBVYMTmZTTTpd09AAAAAwEAAQAAAQEA6Xgq+gpp
+zOt9nrtsz5Ajf1tHlSesn7XaYuCRVgPb3mOZSuEW3BUdTa0Sr2fk1nzSBpUrfqnN
+3idyK2g3bD1sbBRDgUKR+AaNcCN3TpxfxgyVeJhQLvEkEdovzQRUfwrXRfxmE3jk
+RGfVbvxylrG8p35xcmXydel46r2i8dj8gIY3tKp0RMvZ4ZlNbhWHPd5OxyHWL9e3
+gbOSyIyjQgTKZezhzErS/X/KJ/XYqzyBAqNqZ2Rg1kKiHRlHS6KEI2tyFwYfh+Rb
+6L9xch1SqOtQhTWirmxS25dpGD2jgalXeyiw8PmuqTiWCqUmUMx6MdF3tFsirr54
+K4QA9kqMeaRLtQAAAIEAsUQT0Uhq7l0ugTd4Y989bH6eW0fol21/m7B5zkJQepNa
+dUPTs188uvv4inW8n2O3RCanXWHZfCJ1AsR/MEEW2C6QDtvqKXHbzfWQlCYSVxB1
+7CjURKa8fNaIAk98zgmNNwO53NBleyrUhPgvm3xt7ACgpzXY5RwNJL8/a0WOmgwA
+AACBAP508Op6wWPAwn1JfBZuqQtjcfnJeN4NkYQBdybn0vVu5UdyqSQLa8hlAzRO
+hA+qJvrlsZgM9h8CyLTyuim8likZHocwO13zBTdVaQ8c2lJvf2uXTIXNZHseS7IT
+kfBiO1hSB4z8RDkOr35mGfdbyJIFAwFZF4Xs8WnQF+vHEadrAAAAgQDu329eCwVF
+f9g0zNHfZu31p0WtErcsRv57fq+UoPtov8nxUF71oOWe5KSGnGtMICI31kBtPhUb
+vfOmuqNrgJBjgjbPQmi0xSAE5L3QuEKRNjlaE3/WadKBwzhJDtauuYk1ifkrdAVp
+67XyQ5puyuGgVaQBNPbrxA9g1IbyeL4/9wAAAA9LZXkuT1BFTlNTSC5SU0EBAgME
+BQYHCAkK
+-----END OPENSSH PRIVATE KEY-----
diff --git a/test/Data/Key.RSA.Encrypted.Aes.128.CBC.12345.pub b/test/Data/Key.RSA.Encrypted.Aes.128.CBC.12345.pub
new file mode 100644
index 000000000..2147fb08a
--- /dev/null
+++ b/test/Data/Key.RSA.Encrypted.Aes.128.CBC.12345.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCha/vKqT3Nf07l0b/7A5BtSdTy+WnCt9z8QVMq85RjgYc4n3cCh0tEmyE3EjR9Bmc9bBIR2wWUHnLc2gmDXe4Y1YGKQyWCPTVnPPpBN+eama+BYPbfQDn8wRNsEghtc2TgXH2Oj28yGnGf7JM46rSCsyJwx9doEvrFptQGiAdXCk6aLnRzFhC4reVe9iBi1y1A4T5mVkljjwdVRpIMZYshHEi8mc/mvV+f7t9aXG33WZ+r6rGUT4cs6hpcxyg8AStnlpwYuLApeX6I/1rqGLktJCPGFeFAJS+Oy/I1sK7IgvKqSMSikKRT5hKoBra4EHRspe4giqRQFf402jfr4EKr imported-openssh-key
diff --git a/test/Data/Key.RSA.Encrypted.Aes.128.CBC.12345.txt b/test/Data/Key.RSA.Encrypted.Aes.128.CBC.12345.txt
index cc017a909..c86a05726 100644
--- a/test/Data/Key.RSA.Encrypted.Aes.128.CBC.12345.txt
+++ b/test/Data/Key.RSA.Encrypted.Aes.128.CBC.12345.txt
@@ -1,4 +1,4 @@
------BEGIN RSA PRIVATE KEY-----
+-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,AD7A2024C208E41F91C191B89AB9515A
diff --git a/test/Data/Key.RSA.Encrypted.Aes.192.CBC.12345.pub b/test/Data/Key.RSA.Encrypted.Aes.192.CBC.12345.pub
new file mode 100644
index 000000000..4fc4b25c0
--- /dev/null
+++ b/test/Data/Key.RSA.Encrypted.Aes.192.CBC.12345.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4nJsl4i410AyFpLbh7AWSq+X+q6lbRSUW8XqhSb6b2AClQ7pBkwPm2/VL1Jk3+d1itzChHAQgQWjt0E9uh/BL/Rz0fHXqzrbOn1Yuwq0N9ZMsIss8ue6q2Txi8tn2qBIhhB37MZcOZYH2Vp4+kLf5SmqOr/0/Iyz4H77NnJz9H8VWNnmIC/lVmFnpdrzCkn5RzKrlfZElrQPfYXMwM6ivKoB3j5S5EThn0RAyLpGJsD2nB+/0bLbPyvIa+EEzzfsIBvO9Q9ULWPEBGJdSLsz++NvNGay40uVT7PDsUB59n/vsT1/gZ+kbl6gneM+qnhTxZUFzxtDqJXx9dXwymZqz
diff --git a/test/Data/Key.RSA.Encrypted.Aes.192.CBC.12345.txt b/test/Data/Key.RSA.Encrypted.Aes.192.CBC.12345.txt
index 51e902101..41945ff22 100644
--- a/test/Data/Key.RSA.Encrypted.Aes.192.CBC.12345.txt
+++ b/test/Data/Key.RSA.Encrypted.Aes.192.CBC.12345.txt
@@ -1,4 +1,4 @@
------BEGIN RSA PRIVATE KEY-----
+-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-192-CBC,0E34605476FC4C57886CE6350CD6F61E
diff --git a/test/Data/Key.RSA.Encrypted.Aes.256.CBC.12345.pub b/test/Data/Key.RSA.Encrypted.Aes.256.CBC.12345.pub
new file mode 100644
index 000000000..8b041597f
--- /dev/null
+++ b/test/Data/Key.RSA.Encrypted.Aes.256.CBC.12345.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6KpJwRX4HfoFimrRTxqHsyAoPgMD+dm2/6NjIZiy2CPuNGfci+EKjSmdQHhqM8jlhBKhSiAnsEuW46WGlCzpQm2uSA1hFCz/pdExNw9onfY2hdJwOrFlDO9rOcedeZhSQ5gDW/c/MreQQDgEST8tBBM8Yuuk9h6763+Cbd7TAvOskfmx9RXRMeFaqYOe8uVvNQDAYKlcfhjRESfkDtUvJSUyjZYkKR0wnm9fFGL6K/jQrbDYG75wEyB6+bSPHl3ZLakjHJiNOXVlOgJVk9Gw147hLPd+zxyE4eJV5J7rQv96QUWouYPFcMD4EfginfkIbNg02A5onkjTTVUBnIK31
diff --git a/test/Data/Key.RSA.Encrypted.Aes.256.CBC.12345.txt b/test/Data/Key.RSA.Encrypted.Aes.256.CBC.12345.txt
index cb31e913c..a26bdef3d 100644
--- a/test/Data/Key.RSA.Encrypted.Aes.256.CBC.12345.txt
+++ b/test/Data/Key.RSA.Encrypted.Aes.256.CBC.12345.txt
@@ -1,4 +1,4 @@
------BEGIN RSA PRIVATE KEY-----
+-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-256-CBC,063DE67AE11456C89BCE9D4A21BE3DFB
diff --git a/test/Data/Key.RSA.Encrypted.Des.CBC.12345.pub b/test/Data/Key.RSA.Encrypted.Des.CBC.12345.pub
new file mode 100644
index 000000000..0c98bc9f0
--- /dev/null
+++ b/test/Data/Key.RSA.Encrypted.Des.CBC.12345.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs7PAiYUZLgiAKPJpJ62JFBrE1d4lfG0w5vbTkMuwJvYmvWyBPU+Hc7jXxgK1iqsz/s0wDZutENyE9VBilTHAYDBOauXjSfQwlo7zHmK1HZ7h87jcIhltpY0NzBGmd/lQ+yDeXiSFGGoFyjwW6VpOfs0AR+oLA2Hpy4b9lI/QWzGPnSz53LVpALI9ssx15OgwjCNxUW+gjMMNrDN4Gz8EryvY28fwGVgPt6uZeT7bU02aSdcsTvWneGwoNeKIGWuwfIXghiTzIosijMbftWnWVNylM5hQOYlQloxVtCCKe5vnz5PeYfwE38yElu7XV6LqEibFNjor9Mcsc+Rr7d/rN
diff --git a/test/Data/Key.RSA.Encrypted.Des.CBC.12345.txt b/test/Data/Key.RSA.Encrypted.Des.CBC.12345.txt
index 32734a07a..9ce0163d3 100644
--- a/test/Data/Key.RSA.Encrypted.Des.CBC.12345.txt
+++ b/test/Data/Key.RSA.Encrypted.Des.CBC.12345.txt
@@ -1,4 +1,4 @@
------BEGIN RSA PRIVATE KEY-----
+-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-CBC,BD35E157CDD07CAD
diff --git a/test/Data/Key.RSA.Encrypted.Des.Ede3.CBC.12345.pub b/test/Data/Key.RSA.Encrypted.Des.Ede3.CBC.12345.pub
new file mode 100644
index 000000000..d5265ace0
--- /dev/null
+++ b/test/Data/Key.RSA.Encrypted.Des.Ede3.CBC.12345.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCY3ezaIynwdqwNBagUkBVhXETR16+KFGBy9bKcocgAmfvJR1HZc1xiyYPFMh32bN8ZNM6n9PVoBWwtSEmUyUbULa2/EOjOR+Vg9KzFC2Sw1yvu5DyRZngFWpZXZ4rYHVXZCF2cNeQ2uC5zilgdxmSmdDGokHBDuVv89n2DzqwymuCPFOkw+FXCdyaELro2tUmF1VBKHPj5It5U9HauPfcVmWX4ZD1wsEEVmKZS/03h+MDGCjUQE59DGIwZrWsIkOY9/QIU0040XYVOWsHdXlL58fjveOoSDz78dVaVbTE7HRJv0iO71o7xwyc/6js1SoHjRFlQNP4b6q5Z8NYqiL6T imported-openssh-key
diff --git a/test/Data/Key.RSA.Encrypted.Des.Ede3.CBC.12345.txt b/test/Data/Key.RSA.Encrypted.Des.Ede3.CBC.12345.txt
index aa9250a6d..a0f4b0e75 100644
--- a/test/Data/Key.RSA.Encrypted.Des.Ede3.CBC.12345.txt
+++ b/test/Data/Key.RSA.Encrypted.Des.Ede3.CBC.12345.txt
@@ -1,4 +1,4 @@
------BEGIN RSA PRIVATE KEY-----
+-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,AF373EFF708479DF
diff --git a/test/Data/Key.RSA.Encrypted.Des.Ede3.CFB.1234567890.pub b/test/Data/Key.RSA.Encrypted.Des.Ede3.CFB.1234567890.pub
new file mode 100644
index 000000000..9bd8adc51
--- /dev/null
+++ b/test/Data/Key.RSA.Encrypted.Des.Ede3.CFB.1234567890.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAs8tm1pWW8JOQTpuvsGlf/x7su38XuKo7zOLiY/6gB+ZBWs6UC3TnP1UnG13qyS9euWmIWqVz/3d6OM/O9ysjwgzBjRGQIyekxbXxDb+IpYrZR8T5QHXFjPp/yXGcknurUYF8G4ubxqJAULe5lCzg/b4aN9Vxv1tMTRdaArLPldc=
diff --git a/test/Data/Key.RSA.Encrypted.Des.Ede3.CFB.1234567890.txt b/test/Data/Key.RSA.Encrypted.Des.Ede3.CFB.1234567890.txt
index 066d39fb3..8021cda6d 100644
--- a/test/Data/Key.RSA.Encrypted.Des.Ede3.CFB.1234567890.txt
+++ b/test/Data/Key.RSA.Encrypted.Des.Ede3.CFB.1234567890.txt
@@ -1,4 +1,4 @@
------BEGIN RSA PRIVATE KEY-----
+-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CFB,81C75CC63A21DFFB
diff --git a/test/Data/Key.RSA.pub b/test/Data/Key.RSA.pub
new file mode 100644
index 000000000..071cafa1b
--- /dev/null
+++ b/test/Data/Key.RSA.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuTtXn+BatX1oJuvhqfJZw5jc/pcIxJUPmuoFCH3+bXfKBJ/94ixNETzZBasyvT/ozboAbCG3qcJOYxf2BEeTAIXe1jLAoTd1GKCwMvZOyjnsPN95/lChwfdnBbMzpZYTGfoUylXme/mzjjLu/J0qXgR5lyk9HFT+x5YEtRl8VSHiDkLKTZ37dwhsqgcs+PkfvYMUK+C8evnfE0tgWgKZk0Eatl87nLWyVXB4LzhSDtGKLCPAOgrX7fYfplDwJ2WK1N6nG0FnxW1HhDeSK7e2TbAa2vZQgvFXMWnO4O/NZKp4COpOReyliWhdtKAjr/+cD4yDfPjhjjKOYfxbvdRG4Q== imported-openssh-key
diff --git a/test/Data/Key.RSA.txt b/test/Data/Key.RSA.txt
index cf2cc9795..76971dfe2 100644
--- a/test/Data/Key.RSA.txt
+++ b/test/Data/Key.RSA.txt
@@ -1,4 +1,4 @@
------BEGIN RSA PRIVATE KEY-----
+-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEAuTtXn+BatX1oJuvhqfJZw5jc/pcIxJUPmuoFCH3+bXfKBJ/9
4ixNETzZBasyvT/ozboAbCG3qcJOYxf2BEeTAIXe1jLAoTd1GKCwMvZOyjnsPN95
/lChwfdnBbMzpZYTGfoUylXme/mzjjLu/J0qXgR5lyk9HFT+x5YEtRl8VSHiDkLK
diff --git a/test/Data/Key.SSH2.DSA.Encrypted.Des.CBC.12345.pub b/test/Data/Key.SSH2.DSA.Encrypted.Des.CBC.12345.pub
new file mode 100644
index 000000000..3b07844b3
--- /dev/null
+++ b/test/Data/Key.SSH2.DSA.Encrypted.Des.CBC.12345.pub
@@ -0,0 +1 @@
+ssh-dss AAAAB3NzaC1kc3MAAACBAI8gyHFchkVhkPiwkhkjFDqN6w2nFWTqVy9sLjFs38oEWLMpAw9+c132erUptAhNQ6JZUAVZGllv/3V5hksSDyChe9WY5IfsOlh6X0dcZCwBKysEzQlPyMFqAtbc9uv7oUWNzBfvEbtV6WN/VmcmXf7dyo3EBVXbBFdPl1NKC7W9AAAAFQDY1+bTt7s2iNmYoBE4C9hdWRCyeQAAAIAEtj09ugx/Tdl6bo7X6mX17hcgVgIxcYj5VNONg2k6IHmRFriLviYaS68mIB4SG3jmvvxbXAGqR1bWBUrv90n0wpxxcuuNoCFylJQyuqUkzSsUHb0WMcncZ/tBQt+NJnRB1Zp9sw8n20ocpg3WVPdaXTtc4pk83NYB6ywG6UFPvgAAAIAX+De5dwo33LMl9W8IvA4dY8Q1wshdycAGJzhy+qYF9dCcwD1Pg+4EbPjYPmzJopsVrK97v9QhxyYcXMr/iHhngGwd9nYNzzSKx665vkSjzyeJWpeQ+fvNV3CLItP01ypbUreM+s+Vz1wor5joLKcDS4X0oQ0RIVZNEHnekuLuFg==
diff --git a/test/Data/Key.SSH2.DSA.pub b/test/Data/Key.SSH2.DSA.pub
new file mode 100644
index 000000000..3b07844b3
--- /dev/null
+++ b/test/Data/Key.SSH2.DSA.pub
@@ -0,0 +1 @@
+ssh-dss AAAAB3NzaC1kc3MAAACBAI8gyHFchkVhkPiwkhkjFDqN6w2nFWTqVy9sLjFs38oEWLMpAw9+c132erUptAhNQ6JZUAVZGllv/3V5hksSDyChe9WY5IfsOlh6X0dcZCwBKysEzQlPyMFqAtbc9uv7oUWNzBfvEbtV6WN/VmcmXf7dyo3EBVXbBFdPl1NKC7W9AAAAFQDY1+bTt7s2iNmYoBE4C9hdWRCyeQAAAIAEtj09ugx/Tdl6bo7X6mX17hcgVgIxcYj5VNONg2k6IHmRFriLviYaS68mIB4SG3jmvvxbXAGqR1bWBUrv90n0wpxxcuuNoCFylJQyuqUkzSsUHb0WMcncZ/tBQt+NJnRB1Zp9sw8n20ocpg3WVPdaXTtc4pk83NYB6ywG6UFPvgAAAIAX+De5dwo33LMl9W8IvA4dY8Q1wshdycAGJzhy+qYF9dCcwD1Pg+4EbPjYPmzJopsVrK97v9QhxyYcXMr/iHhngGwd9nYNzzSKx665vkSjzyeJWpeQ+fvNV3CLItP01ypbUreM+s+Vz1wor5joLKcDS4X0oQ0RIVZNEHnekuLuFg==
diff --git a/test/Data/Key.SSH2.RSA.Encrypted.Des.CBC.12345.pub b/test/Data/Key.SSH2.RSA.Encrypted.Des.CBC.12345.pub
new file mode 100644
index 000000000..128dbc936
--- /dev/null
+++ b/test/Data/Key.SSH2.RSA.Encrypted.Des.CBC.12345.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVwZxtc4I5nngC8qAu7uJsl9yEqccA5MbUHEyTHL/SkKhM9IMBeIfI3GM3iqOTyeqDV1+w92NcJGlb54GxAyElnU+oiHhYHt+Qrv5abi3CGpCEtDu4/COc1+U1ipGLN5gnnBSh+4rYjfQOCI1CPDaFXpOizyKS9UDsYJ52OdJxFhtRq5XyutcLr5efLqYPYXcEYT8JB1hNlc2zuYoiQKlv3OIlcwzuO4J8FI6pBLBnLtd4Qq4yrM/12IcIHKqoJyKmkdzRFlMs40JNZrud2ioB2FmmST+kOqYVMRYQm5Q83yNYKq6RLhHPFcQTeVvNlsidiayV2Vch5uhCgUkz7hZf imported-openssh-key
diff --git a/test/Data/Key.SSH2.RSA.Encrypted.Des.CBC.12345.txt b/test/Data/Key.SSH2.RSA.Encrypted.Des.CBC.12345.txt
index 2a81a23d5..952b012f9 100644
--- a/test/Data/Key.SSH2.RSA.Encrypted.Des.CBC.12345.txt
+++ b/test/Data/Key.SSH2.RSA.Encrypted.Des.CBC.12345.txt
@@ -1,4 +1,4 @@
----- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
+---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
Comment: "imported-openssh-key"
P2/56wAAA/MAAAA3aWYtbW9kbntzaWdue3JzYS1wa2NzMS1zaGExfSxlbmNyeXB0e3JzYS
1wa2NzMXYyLW9hZXB9fQAAAAgzZGVzLWNiYwAAA6A6Wt6IR5cz0PCsSJDOjcs3MdQscfdN
diff --git a/test/Data/Key.SSH2.RSA.pub b/test/Data/Key.SSH2.RSA.pub
new file mode 100644
index 000000000..128dbc936
--- /dev/null
+++ b/test/Data/Key.SSH2.RSA.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVwZxtc4I5nngC8qAu7uJsl9yEqccA5MbUHEyTHL/SkKhM9IMBeIfI3GM3iqOTyeqDV1+w92NcJGlb54GxAyElnU+oiHhYHt+Qrv5abi3CGpCEtDu4/COc1+U1ipGLN5gnnBSh+4rYjfQOCI1CPDaFXpOizyKS9UDsYJ52OdJxFhtRq5XyutcLr5efLqYPYXcEYT8JB1hNlc2zuYoiQKlv3OIlcwzuO4J8FI6pBLBnLtd4Qq4yrM/12IcIHKqoJyKmkdzRFlMs40JNZrud2ioB2FmmST+kOqYVMRYQm5Q83yNYKq6RLhHPFcQTeVvNlsidiayV2Vch5uhCgUkz7hZf imported-openssh-key
diff --git a/test/Data/Key.SSH2.RSA.txt b/test/Data/Key.SSH2.RSA.txt
index 04f9a3ce7..2de7f0f80 100644
--- a/test/Data/Key.SSH2.RSA.txt
+++ b/test/Data/Key.SSH2.RSA.txt
@@ -1,4 +1,4 @@
----- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
+---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
Comment: "imported-openssh-key"
P2/56wAAA+4AAAA3aWYtbW9kbntzaWdue3JzYS1wa2NzMS1zaGExfSxlbmNyeXB0e3JzYS
1wa2NzMXYyLW9hZXB9fQAAAARub25lAAADnwAAA5sAAAARAQABAAAIAJoF62h2fdR02ncN
diff --git a/test/Renci.SshNet.Benchmarks/Renci.SshNet.Benchmarks.csproj b/test/Renci.SshNet.Benchmarks/Renci.SshNet.Benchmarks.csproj
index ee97588d6..3f1186f39 100644
--- a/test/Renci.SshNet.Benchmarks/Renci.SshNet.Benchmarks.csproj
+++ b/test/Renci.SshNet.Benchmarks/Renci.SshNet.Benchmarks.csproj
@@ -15,6 +15,6 @@
-
+
diff --git a/test/Renci.SshNet.IntegrationTests/AuthenticationMethodFactory.cs b/test/Renci.SshNet.IntegrationTests/AuthenticationMethodFactory.cs
index 638b285d8..17e4c75b6 100644
--- a/test/Renci.SshNet.IntegrationTests/AuthenticationMethodFactory.cs
+++ b/test/Renci.SshNet.IntegrationTests/AuthenticationMethodFactory.cs
@@ -10,33 +10,63 @@ public PasswordAuthenticationMethod CreatePowerUserPasswordAuthenticationMethod(
public PrivateKeyAuthenticationMethod CreateRegularUserPrivateKeyAuthenticationMethod()
{
- var privateKeyFile = GetPrivateKey("Renci.SshNet.IntegrationTests.resources.client.id_rsa");
+ var privateKeyFile = GetPrivateKey("Data.Key.RSA.txt");
return new PrivateKeyAuthenticationMethod(Users.Regular.UserName, privateKeyFile);
}
public PrivateKeyAuthenticationMethod CreateRegularUserMultiplePrivateKeyAuthenticationMethod()
{
- var privateKeyFile1 = GetPrivateKey("Renci.SshNet.IntegrationTests.resources.client.id_rsa");
- var privateKeyFile2 = GetPrivateKey("Renci.SshNet.IntegrationTests.resources.client.id_rsa");
+ var privateKeyFile1 = GetPrivateKey("Data.Key.RSA.txt");
+ var privateKeyFile2 = GetPrivateKey("Data.Key.RSA.txt");
return new PrivateKeyAuthenticationMethod(Users.Regular.UserName, privateKeyFile1, privateKeyFile2);
}
public PrivateKeyAuthenticationMethod CreateRegularUserPrivateKeyWithPassPhraseAuthenticationMethod()
{
- var privateKeyFile = GetPrivateKey("Renci.SshNet.IntegrationTests.resources.client.id_rsa_with_pass", "tester");
+ var privateKeyFile = GetPrivateKey("Data.Key.RSA.Encrypted.Aes.256.CBC.12345.txt", "12345");
return new PrivateKeyAuthenticationMethod(Users.Regular.UserName, privateKeyFile);
}
public PrivateKeyAuthenticationMethod CreateRegularUserPrivateKeyWithEmptyPassPhraseAuthenticationMethod()
{
- var privateKeyFile = GetPrivateKey("Renci.SshNet.IntegrationTests.resources.client.id_rsa_with_pass", null);
+ var privateKeyFile = GetPrivateKey("Data.Key.RSA.Encrypted.Aes.256.CBC.12345.txt", null);
return new PrivateKeyAuthenticationMethod(Users.Regular.UserName, privateKeyFile);
}
public PrivateKeyAuthenticationMethod CreateRegularUserPrivateKeyAuthenticationMethodWithBadKey()
{
- var privateKeyFile = GetPrivateKey("Renci.SshNet.IntegrationTests.resources.client.id_noaccess.rsa");
- return new PrivateKeyAuthenticationMethod(Users.Regular.UserName, privateKeyFile);
+ string unauthorizedKey = """
+ -----BEGIN RSA PRIVATE KEY-----
+ MIIEpAIBAAKCAQEAuK3OhcrEnQbbE1+WaE57tUCcTz1yqdE2AwvMfs3of1nyfGcS
+ Rz9vzAFYU+3uEEApk0QOsIeWCyB2DIlPnlQHyjVWRYPqiTtQ7GmdzbF0ISa7dr23
+ EHJKgtJxSm3O/sb5F9JyqlxFMhKpz5NVgnN7NFcej93opHZN6h9LaP8cHgJIepWV
+ IkZqhcv8v6SpAgei0muoPHB+ZA6Rycnv+2//WUBzu+3AJu0PiHUkTTVC8M5svMRV
+ Ah8CnLsCkAAx7ld4AH7McRlFjymmkwxTSewFJYkloI/OqDOjsmuW03Gmx+eytPWa
+ HEPGeRhcz1kZ6eOmqrPMlTaLPV1MbFn86nauAQIDAQABAoIBAGEiWauZOMx2nKeV
+ 8SAvl3V/5DbxVOvotAXqIMbZOl4xSw8Pj1eWEBE26+RJEpvNg5CHjUpgJhT4H978
+ Ibpe7DH418V8WtGPN0MBUhSsLy54lsUfh7fIxVQFp7zEAMmUkdNrxw+/tE1f75zU
+ G3efkb+3ysVUrFZEOzrW9uzksT8+gm2Ll/IKuDy2r5k9mJr2cX5OYKxXjtNo5duO
+ UK+M3jW9Sk1k23Jzpq2GwuJGTTjgtI41ND6CDkrY7COdRQdIx3eQ0uQSXosKNREe
+ lv0VTlboVyh8JXt+G1tkfA6+Al77/mzycaZVX26C8Io7Y/S7JVG7TT1p1RsFGZM8
+ kcqvpBkCgYEA7vD3S+6T+8Ql8U877nDi/Ttf16NEUUQllgjWgCP+DiWcqQGWaiaB
+ JTYyM4Ydb4jy2jAcAdf3HfImE4QO3+u/wyuQrdlvWByHo2NqOxYMdyqKqwGh7qhU
+ zZFbGfHRD/gV4hWXfzj65wA8uMBVc5J3/ug7nmkTWywiDH/SsPdbxmcCgYEAxd0c
+ EbJ3dlIyK5Ul1Gw5dASyE91Nx/NHAvB+5QHH5rIe/IqbtxbXmEMKcxwEPN8hvpzs
+ g487TQFkNPze6X8vZkiuaNLUq9vwRlQwr/LIdjLLKOA69wKfFDSkei8LEMgEz7Wg
+ ZEm8ifJP75hGozx31bW4dYX2o2X75SbXneMVF1cCgYEAo4h8WJXC5o9KwKtQA1Nz
+ p4lZgUaW3V/csaD+3djEan5HiEwz3BbaUNOU7DqgLtP2EmrW4FQlJ3Oxp628WHkL
+ V9KbRMEKOa3dD3BdJm9ivLR7D6sgXy0KTV9skIc2ZM2QfJn2g/ZFkpBQ/sl0MpNO
+ WUIse7DCtKWx8AgT9VZ2k4UCgYB1G8JSQyPrtwiUvQkP6iIzJdhUY4Z20ulztu4U
+ EvLC+yfV5x/0xKNELmHP8YQclyA81loyH6NEl488wXIaFznxuxDnX+mZ8moK5ieO
+ 7A5zzuppvhWIP1fyOJok6xUMkKYwXdqZoP7jUrS3JZShZteyeIS9olVxLpphbZTu
+ kQnZrwKBgQDhO2+iGXwNLS+OFKwEiyUgvi6jb5OrIsdwWgqaqQarm6h0QWtxrCs6
+ CMFFEusswZEGRo83J6lQxtcXvhWzTkVPu69J8YvTQqcKlvUSA9TEG2iX9bwXSWzy
+ LeGb5NjBZ3szfzp9l5Utnj5GuAGoDDDKpf7M6S95Lg6F58Mhd/tCFA==
+ -----END RSA PRIVATE KEY-----
+ """;
+
+ using MemoryStream memoryStream = new(Encoding.UTF8.GetBytes(unauthorizedKey));
+ return new PrivateKeyAuthenticationMethod(Users.Regular.UserName, new PrivateKeyFile(memoryStream));
}
public PasswordAuthenticationMethod CreateRegulatUserPasswordAuthenticationMethod()
@@ -64,21 +94,10 @@ public KeyboardInteractiveAuthenticationMethod CreateRegularUserKeyboardInteract
private PrivateKeyFile GetPrivateKey(string resourceName, string passPhrase = null)
{
- using (var stream = GetResourceStream(resourceName))
+ using (var stream = TestBase.GetData(resourceName))
{
return new PrivateKeyFile(stream, passPhrase);
}
}
-
- private Stream GetResourceStream(string resourceName)
- {
- var type = GetType();
- var resourceStream = type.Assembly.GetManifestResourceStream(resourceName);
- if (resourceStream == null)
- {
- throw new ArgumentException($"Resource '{resourceName}' not found in assembly '{type.Assembly.FullName}'.", nameof(resourceName));
- }
- return resourceStream;
- }
}
}
diff --git a/test/Renci.SshNet.IntegrationTests/PrivateKeyAuthenticationTests.cs b/test/Renci.SshNet.IntegrationTests/PrivateKeyAuthenticationTests.cs
index 05b6c4787..19414999e 100644
--- a/test/Renci.SshNet.IntegrationTests/PrivateKeyAuthenticationTests.cs
+++ b/test/Renci.SshNet.IntegrationTests/PrivateKeyAuthenticationTests.cs
@@ -25,59 +25,59 @@ public void TearDown()
[TestMethod]
public void SshDss()
{
- DoTest(PublicKeyAlgorithm.SshDss, "id_dsa");
+ DoTest(PublicKeyAlgorithm.SshDss, "Data.Key.SSH2.DSA.Encrypted.Des.CBC.12345.txt", "12345");
}
[TestMethod]
public void SshRsa()
{
- DoTest(PublicKeyAlgorithm.SshRsa, "id_rsa");
+ DoTest(PublicKeyAlgorithm.SshRsa, "Data.Key.RSA.txt");
}
[TestMethod]
public void SshRsaSha256()
{
- DoTest(PublicKeyAlgorithm.RsaSha2256, "id_rsa");
+ DoTest(PublicKeyAlgorithm.RsaSha2256, "Data.Key.RSA.txt");
}
[TestMethod]
public void SshRsaSha512()
{
- DoTest(PublicKeyAlgorithm.RsaSha2512, "id_rsa");
+ DoTest(PublicKeyAlgorithm.RsaSha2512, "Data.Key.RSA.txt");
}
[TestMethod]
public void Ecdsa256()
{
- DoTest(PublicKeyAlgorithm.EcdsaSha2Nistp256, "key_ecdsa_256_openssh");
+ DoTest(PublicKeyAlgorithm.EcdsaSha2Nistp256, "Data.Key.ECDSA.Encrypted.txt", "12345");
}
[TestMethod]
public void Ecdsa384()
{
- DoTest(PublicKeyAlgorithm.EcdsaSha2Nistp384, "key_ecdsa_384_openssh");
+ DoTest(PublicKeyAlgorithm.EcdsaSha2Nistp384, "Data.Key.OPENSSH.ECDSA384.Encrypted.txt", "12345");
}
[TestMethod]
public void Ecdsa521()
{
- DoTest(PublicKeyAlgorithm.EcdsaSha2Nistp521, "key_ecdsa_521_openssh");
+ DoTest(PublicKeyAlgorithm.EcdsaSha2Nistp521, "Data.Key.OPENSSH.ECDSA521.Encrypted.txt", "12345");
}
[TestMethod]
public void Ed25519()
{
- DoTest(PublicKeyAlgorithm.SshEd25519, "key_ed25519_openssh");
+ DoTest(PublicKeyAlgorithm.SshEd25519, "Data.Key.OPENSSH.ED25519.Encrypted.txt", "12345");
}
- private void DoTest(PublicKeyAlgorithm publicKeyAlgorithm, string keyResource)
+ private void DoTest(PublicKeyAlgorithm publicKeyAlgorithm, string keyResource, string passPhrase = null)
{
_remoteSshdConfig.ClearPublicKeyAcceptedAlgorithms()
.AddPublicKeyAcceptedAlgorithm(publicKeyAlgorithm)
.Update()
.Restart();
- var connectionInfo = _connectionInfoFactory.Create(CreatePrivateKeyAuthenticationMethod(keyResource));
+ var connectionInfo = _connectionInfoFactory.Create(CreatePrivateKeyAuthenticationMethod(keyResource, passPhrase));
using (var client = new SshClient(connectionInfo))
{
@@ -85,17 +85,11 @@ private void DoTest(PublicKeyAlgorithm publicKeyAlgorithm, string keyResource)
}
}
- private PrivateKeyAuthenticationMethod CreatePrivateKeyAuthenticationMethod(string keyResource)
+ private static PrivateKeyAuthenticationMethod CreatePrivateKeyAuthenticationMethod(string keyResource, string passPhrase)
{
- var privateKey = CreatePrivateKeyFromManifestResource("Renci.SshNet.IntegrationTests.resources.client." + keyResource);
- return new PrivateKeyAuthenticationMethod(Users.Regular.UserName, privateKey);
- }
-
- private PrivateKeyFile CreatePrivateKeyFromManifestResource(string resourceName)
- {
- using (var stream = GetManifestResourceStream(resourceName))
+ using (var stream = GetData(keyResource))
{
- return new PrivateKeyFile(stream);
+ return new PrivateKeyAuthenticationMethod(Users.Regular.UserName, new PrivateKeyFile(stream, passPhrase));
}
}
}
diff --git a/test/Renci.SshNet.IntegrationTests/Renci.SshNet.IntegrationTests.csproj b/test/Renci.SshNet.IntegrationTests/Renci.SshNet.IntegrationTests.csproj
index 285ed0f39..19e104b31 100644
--- a/test/Renci.SshNet.IntegrationTests/Renci.SshNet.IntegrationTests.csproj
+++ b/test/Renci.SshNet.IntegrationTests/Renci.SshNet.IntegrationTests.csproj
@@ -8,10 +8,6 @@
$(NoWarn);SYSLIB0021;SYSLIB1045;SYSLIB0014;IDE0220;IDE0010
-
- TRACE;FEATURE_MSTEST_DATATEST;FEATURE_SOCKET_EAP;FEATURE_ENCODING_ASCII;FEATURE_THREAD_SLEEP;FEATURE_THREAD_THREADPOOL
-
-
@@ -39,15 +35,7 @@
-
-
-
-
-
-
-
-
-
+
diff --git a/test/Renci.SshNet.IntegrationTests/ScpTests.cs b/test/Renci.SshNet.IntegrationTests/ScpTests.cs
index 2fd4ea0ce..c244b86a8 100644
--- a/test/Renci.SshNet.IntegrationTests/ScpTests.cs
+++ b/test/Renci.SshNet.IntegrationTests/ScpTests.cs
@@ -19,21 +19,8 @@ public void SetUp()
_remotePathTransformation = RemotePathTransformation.ShellQuote;
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpDownloadStreamDirectoryDoesNotExistData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Download_Stream_DirectoryDoesNotExist()
- {
- foreach (var data in GetScpDownloadStreamDirectoryDoesNotExistData())
- {
- Scp_Download_Stream_DirectoryDoesNotExist((IRemotePathTransformation) data[0],
- (string) data[1],
- (string) data[2]);
- }
- }
-#endif
public void Scp_Download_Stream_DirectoryDoesNotExist(IRemotePathTransformation remotePathTransformation,
string remotePath,
string remoteFile)
@@ -106,21 +93,8 @@ public void Scp_Download_Stream_DirectoryDoesNotExist(IRemotePathTransformation
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpDownloadStreamFileDoesNotExistData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Download_Stream_FileDoesNotExist()
- {
- foreach (var data in GetScpDownloadStreamFileDoesNotExistData())
- {
- Scp_Download_Stream_FileDoesNotExist((IRemotePathTransformation)data[0],
- (string)data[1],
- (string)data[2]);
- }
- }
-#endif
public void Scp_Download_Stream_FileDoesNotExist(IRemotePathTransformation remotePathTransformation,
string remotePath,
string remoteFile)
@@ -195,20 +169,8 @@ public void Scp_Download_Stream_FileDoesNotExist(IRemotePathTransformation remot
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpDownloadDirectoryInfoDirectoryDoesNotExistData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Download_DirectoryInfo_DirectoryDoesNotExist()
- {
- foreach (var data in GetScpDownloadDirectoryInfoDirectoryDoesNotExistData())
- {
- Scp_Download_DirectoryInfo_DirectoryDoesNotExist((IRemotePathTransformation)data[0],
- (string)data[1]);
- }
- }
-#endif
public void Scp_Download_DirectoryInfo_DirectoryDoesNotExist(IRemotePathTransformation remotePathTransformation,
string remotePath)
{
@@ -265,20 +227,8 @@ public void Scp_Download_DirectoryInfo_DirectoryDoesNotExist(IRemotePathTransfor
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpDownloadDirectoryInfoExistingFileData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Download_DirectoryInfo_ExistingFile()
- {
- foreach (var data in GetScpDownloadDirectoryInfoExistingFileData())
- {
- Scp_Download_DirectoryInfo_ExistingFile((IRemotePathTransformation)data[0],
- (string)data[1]);
- }
- }
-#endif
public void Scp_Download_DirectoryInfo_ExistingFile(IRemotePathTransformation remotePathTransformation,
string remotePath)
{
@@ -340,20 +290,8 @@ public void Scp_Download_DirectoryInfo_ExistingFile(IRemotePathTransformation re
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpDownloadDirectoryInfoExistingDirectoryData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Download_DirectoryInfo_ExistingDirectory()
- {
- foreach (var data in GetScpDownloadDirectoryInfoExistingDirectoryData())
- {
- Scp_Download_DirectoryInfo_ExistingDirectory((IRemotePathTransformation)data[0],
- (string)data[1]);
- }
- }
-#endif
public void Scp_Download_DirectoryInfo_ExistingDirectory(IRemotePathTransformation remotePathTransformation,
string remotePath)
{
@@ -495,21 +433,8 @@ public void Scp_Download_DirectoryInfo_ExistingDirectory(IRemotePathTransformati
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpDownloadFileInfoDirectoryDoesNotExistData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Download_FileInfo_DirectoryDoesNotExist()
- {
- foreach (var data in GetScpDownloadFileInfoDirectoryDoesNotExistData())
- {
- Scp_Download_FileInfo_DirectoryDoesNotExist((IRemotePathTransformation)data[0],
- (string)data[1],
- (string)data[2]);
- }
- }
-#endif
public void Scp_Download_FileInfo_DirectoryDoesNotExist(IRemotePathTransformation remotePathTransformation,
string remotePath,
string remoteFile)
@@ -580,21 +505,8 @@ public void Scp_Download_FileInfo_DirectoryDoesNotExist(IRemotePathTransformatio
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpDownloadFileInfoFileDoesNotExistData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Download_FileInfo_FileDoesNotExist()
- {
- foreach (var data in GetScpDownloadFileInfoFileDoesNotExistData())
- {
- Scp_Download_FileInfo_FileDoesNotExist((IRemotePathTransformation)data[0],
- (string)data[1],
- (string)data[2]);
- }
- }
-#endif
public void Scp_Download_FileInfo_FileDoesNotExist(IRemotePathTransformation remotePathTransformation,
string remotePath,
string remoteFile)
@@ -667,20 +579,8 @@ public void Scp_Download_FileInfo_FileDoesNotExist(IRemotePathTransformation rem
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpDownloadFileInfoExistingDirectoryData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Download_FileInfo_ExistingDirectory()
- {
- foreach (var data in GetScpDownloadFileInfoExistingDirectoryData())
- {
- Scp_Download_FileInfo_ExistingDirectory((IRemotePathTransformation)data[0],
- (string)data[1]);
- }
- }
-#endif
public void Scp_Download_FileInfo_ExistingDirectory(IRemotePathTransformation remotePathTransformation,
string remotePath)
{
@@ -748,22 +648,8 @@ public void Scp_Download_FileInfo_ExistingDirectory(IRemotePathTransformation re
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpDownloadFileInfoExistingFileData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Download_FileInfo_ExistingFile()
- {
- foreach (var data in GetScpDownloadFileInfoExistingFileData())
- {
- Scp_Download_FileInfo_ExistingFile((IRemotePathTransformation)data[0],
- (string)data[1],
- (string)data[2],
- (int)data[3]);
- }
- }
-#endif
public void Scp_Download_FileInfo_ExistingFile(IRemotePathTransformation remotePathTransformation,
string remotePath,
string remoteFile,
@@ -854,20 +740,8 @@ public void Scp_Download_FileInfo_ExistingFile(IRemotePathTransformation remoteP
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpDownloadStreamExistingDirectoryData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Download_Stream_ExistingDirectory()
- {
- foreach (var data in GetScpDownloadStreamExistingDirectoryData())
- {
- Scp_Download_Stream_ExistingDirectory((IRemotePathTransformation)data[0],
- (string)data[1]);
- }
- }
-#endif
public void Scp_Download_Stream_ExistingDirectory(IRemotePathTransformation remotePathTransformation,
string remotePath)
{
@@ -934,22 +808,8 @@ public void Scp_Download_Stream_ExistingDirectory(IRemotePathTransformation remo
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpDownloadStreamExistingFileData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Download_Stream_ExistingFile()
- {
- foreach (var data in GetScpDownloadStreamExistingFileData())
- {
- Scp_Download_Stream_ExistingFile((IRemotePathTransformation)data[0],
- (string)data[1],
- (string)data[2],
- (int)data[3]);
- }
- }
-#endif
public void Scp_Download_Stream_ExistingFile(IRemotePathTransformation remotePathTransformation,
string remotePath,
string remoteFile,
@@ -1035,21 +895,8 @@ public void Scp_Download_Stream_ExistingFile(IRemotePathTransformation remotePat
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpUploadFileStreamDirectoryDoesNotExistData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Upload_FileStream_DirectoryDoesNotExist()
- {
- foreach (var data in GetScpUploadFileStreamDirectoryDoesNotExistData())
- {
- Scp_Upload_FileStream_DirectoryDoesNotExist((IRemotePathTransformation)data[0],
- (string)data[1],
- (string)data[2]);
- }
- }
-#endif
public void Scp_Upload_FileStream_DirectoryDoesNotExist(IRemotePathTransformation remotePathTransformation,
string remotePath,
string remoteFile)
@@ -1118,20 +965,8 @@ public void Scp_Upload_FileStream_DirectoryDoesNotExist(IRemotePathTransformatio
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpUploadFileStreamExistingDirectoryData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Upload_FileStream_ExistingDirectory()
- {
- foreach (var data in GetScpUploadFileStreamExistingDirectoryData())
- {
- Scp_Upload_FileStream_ExistingDirectory((IRemotePathTransformation)data[0],
- (string)data[1]);
- }
- }
-#endif
public void Scp_Upload_FileStream_ExistingDirectory(IRemotePathTransformation remotePathTransformation,
string remoteFile)
{
@@ -1193,20 +1028,8 @@ public void Scp_Upload_FileStream_ExistingDirectory(IRemotePathTransformation re
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(ScpUploadFileStreamExistingFileData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Upload_FileStream_ExistingFile()
- {
- foreach (var data in ScpUploadFileStreamExistingFileData())
- {
- Scp_Upload_FileStream_ExistingFile((IRemotePathTransformation)data[0],
- (string)data[1]);
- }
- }
-#endif
public void Scp_Upload_FileStream_ExistingFile(IRemotePathTransformation remotePathTransformation,
string remoteFile)
{
@@ -1274,22 +1097,8 @@ public void Scp_Upload_FileStream_ExistingFile(IRemotePathTransformation remoteP
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpUploadFileStreamFileDoesNotExistData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Upload_FileStream_FileDoesNotExist()
- {
- foreach (var data in GetScpUploadFileStreamFileDoesNotExistData())
- {
- Scp_Upload_FileStream_FileDoesNotExist((IRemotePathTransformation)data[0],
- (string)data[1],
- (string)data[2],
- (int)data[3]);
- }
- }
-#endif
public void Scp_Upload_FileStream_FileDoesNotExist(IRemotePathTransformation remotePathTransformation,
string remotePath,
string remoteFile,
@@ -1387,21 +1196,8 @@ public void Scp_Upload_FileStream_FileDoesNotExist(IRemotePathTransformation rem
///
/// https://github.com/sshnet/SSH.NET/issues/289
///
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpUploadFileInfoDirectoryDoesNotExistData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Upload_FileInfo_DirectoryDoesNotExist()
- {
- foreach (var data in GetScpUploadFileInfoDirectoryDoesNotExistData())
- {
- Scp_Upload_FileInfo_DirectoryDoesNotExist((IRemotePathTransformation)data[0],
- (string)data[1],
- (string)data[2]);
- }
- }
-#endif
public void Scp_Upload_FileInfo_DirectoryDoesNotExist(IRemotePathTransformation remotePathTransformation,
string remotePath,
string remoteFile)
@@ -1480,20 +1276,8 @@ public void Scp_Upload_FileInfo_DirectoryDoesNotExist(IRemotePathTransformation
///
/// https://github.com/sshnet/SSH.NET/issues/286
///
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpUploadFileInfoExistingDirectoryData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Upload_FileInfo_ExistingDirectory()
- {
- foreach (var data in GetScpUploadFileInfoExistingDirectoryData())
- {
- Scp_Upload_FileInfo_ExistingDirectory((IRemotePathTransformation)data[0],
- (string)data[1]);
- }
- }
-#endif
public void Scp_Upload_FileInfo_ExistingDirectory(IRemotePathTransformation remotePathTransformation,
string remoteFile)
{
@@ -1554,20 +1338,8 @@ public void Scp_Upload_FileInfo_ExistingDirectory(IRemotePathTransformation remo
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpUploadFileInfoExistingFileData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Upload_FileInfo_ExistingFile()
- {
- foreach (var data in GetScpUploadFileInfoExistingFileData())
- {
- Scp_Upload_FileInfo_ExistingFile((IRemotePathTransformation)data[0],
- (string)data[1]);
- }
- }
-#endif
public void Scp_Upload_FileInfo_ExistingFile(IRemotePathTransformation remotePathTransformation,
string remoteFile)
{
@@ -1644,22 +1416,8 @@ public void Scp_Upload_FileInfo_ExistingFile(IRemotePathTransformation remotePat
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpUploadFileInfoFileDoesNotExistData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Upload_FileInfo_FileDoesNotExist()
- {
- foreach (var data in GetScpUploadFileInfoFileDoesNotExistData())
- {
- Scp_Upload_FileInfo_FileDoesNotExist((IRemotePathTransformation)data[0],
- (string)data[1],
- (string)data[2],
- (int)data[3]);
- }
- }
-#endif
public void Scp_Upload_FileInfo_FileDoesNotExist(IRemotePathTransformation remotePathTransformation,
string remotePath,
string remoteFile,
@@ -1763,20 +1521,8 @@ public void Scp_Upload_FileInfo_FileDoesNotExist(IRemotePathTransformation remot
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpUploadDirectoryInfoDirectoryDoesNotExistData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Upload_DirectoryInfo_DirectoryDoesNotExist()
- {
- foreach (var data in GetScpUploadDirectoryInfoDirectoryDoesNotExistData())
- {
- Scp_Upload_DirectoryInfo_DirectoryDoesNotExist((IRemotePathTransformation)data[0],
- (string)data[1]);
- }
- }
-#endif
public void Scp_Upload_DirectoryInfo_DirectoryDoesNotExist(IRemotePathTransformation remotePathTransformation,
string remoteDirectory)
{
@@ -1840,20 +1586,8 @@ public void Scp_Upload_DirectoryInfo_DirectoryDoesNotExist(IRemotePathTransforma
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpUploadDirectoryInfoExistingDirectoryData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Upload_DirectoryInfo_ExistingDirectory()
- {
- foreach (var data in GetScpUploadDirectoryInfoExistingDirectoryData())
- {
- Scp_Upload_DirectoryInfo_ExistingDirectory((IRemotePathTransformation)data[0],
- (string)data[1]);
- }
- }
-#endif
public void Scp_Upload_DirectoryInfo_ExistingDirectory(IRemotePathTransformation remotePathTransformation,
string remoteDirectory)
{
@@ -2056,20 +1790,8 @@ public void Scp_Upload_DirectoryInfo_ExistingDirectory(IRemotePathTransformation
}
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetScpUploadDirectoryInfoExistingFileData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Scp_Upload_DirectoryInfo_ExistingFile()
- {
- foreach (var data in GetScpUploadDirectoryInfoExistingFileData())
- {
- Scp_Upload_DirectoryInfo_ExistingFile((IRemotePathTransformation)data[0],
- (string)data[1]);
- }
- }
-#endif
public void Scp_Upload_DirectoryInfo_ExistingFile(IRemotePathTransformation remotePathTransformation,
string remoteDirectory)
{
diff --git a/test/Renci.SshNet.IntegrationTests/SftpTests.cs b/test/Renci.SshNet.IntegrationTests/SftpTests.cs
index 7fb18c709..e6f40c05e 100644
--- a/test/Renci.SshNet.IntegrationTests/SftpTests.cs
+++ b/test/Renci.SshNet.IntegrationTests/SftpTests.cs
@@ -25,19 +25,8 @@ public void SetUp()
_remotePathTransformation = RemotePathTransformation.ShellQuote;
}
-#if FEATURE_MSTEST_DATATEST
[DataTestMethod]
[DynamicData(nameof(GetSftpUploadFileFileStreamData), DynamicDataSourceType.Method)]
-#else
- [TestMethod]
- public void Sftp_Upload_DirectoryInfo_ExistingFile()
- {
- foreach (var data in GetSftpUploadFileFileStreamData())
- {
- Sftp_UploadFile_FileStream((int) data[0]);
- }
- }
-#endif
public void Sftp_UploadFile_FileStream(int size)
{
var file = CreateTempFile(size);
@@ -300,7 +289,7 @@ public void Sftp_Create_FileDoesNotExist()
try
{
- using (var imageStream = GetResourceStream("Renci.SshNet.IntegrationTests.resources.issue #70.png"))
+ using (var imageStream = GetData("resources.issue #70.png"))
{
using (var fs = client.Create(remoteFile))
{
@@ -6301,17 +6290,6 @@ private static byte[] GetBytesWithPreamble(string text, Encoding encoding)
return textBytes;
}
- private static Stream GetResourceStream(string resourceName)
- {
- var type = typeof(SftpTests);
- var resourceStream = type.Assembly.GetManifestResourceStream(resourceName);
- if (resourceStream == null)
- {
- throw new ArgumentException($"Resource '{resourceName}' not found in assembly '{type.Assembly.FullName}'.", nameof(resourceName));
- }
- return resourceStream;
- }
-
private static decimal CalculateTransferSpeed(long length, long elapsedMilliseconds)
{
return (length / 1024m) / (elapsedMilliseconds / 1000m);
diff --git a/test/Renci.SshNet.IntegrationTests/TestBase.cs b/test/Renci.SshNet.IntegrationTests/TestBase.cs
index 511bb144d..9c9445f65 100644
--- a/test/Renci.SshNet.IntegrationTests/TestBase.cs
+++ b/test/Renci.SshNet.IntegrationTests/TestBase.cs
@@ -66,15 +66,12 @@ protected static void CreateFile(string fileName, int size)
}
}
- protected Stream GetManifestResourceStream(string resourceName)
+ internal static Stream GetData(string name)
{
- var type = GetType();
- var resourceStream = type.Assembly.GetManifestResourceStream(resourceName);
- if (resourceStream == null)
- {
- throw new ArgumentException($"Resource '{resourceName}' not found in assembly '{type.Assembly.FullName}'.", nameof(resourceName));
- }
- return resourceStream;
+ string resourceName = $"Renci.SshNet.IntegrationTests.{name}";
+
+ return typeof(TestBase).Assembly.GetManifestResourceStream(resourceName)
+ ?? throw new ArgumentException($"Resource '{resourceName}' not found in assembly '{typeof(TestBase).Assembly.FullName}'.", nameof(name));
}
}
}
diff --git a/test/Renci.SshNet.IntegrationTests/resources/client/id_dsa.ppk b/test/Renci.SshNet.IntegrationTests/resources/client/id_dsa.ppk
deleted file mode 100644
index b73384f82..000000000
--- a/test/Renci.SshNet.IntegrationTests/resources/client/id_dsa.ppk
+++ /dev/null
@@ -1,17 +0,0 @@
-PuTTY-User-Key-File-2: ssh-dss
-Encryption: none
-Comment: imported-openssh-key
-Public-Lines: 10
-AAAAB3NzaC1kc3MAAACBALVl3fae2O4qwsAK95SUShX0KMUNP+yl/uT3lGH9T/Zp
-tnHSlrTxnTWXCl0g91KEeCaEnDDhLxm4aCv1Ag4B/yvcM4u34qkmaNLy2LiAxiqd
-obZcNG61Pqwqd5IDkp38LBsn8tmb12xu9NalpUfOiSEB1cyCr4zFZMrm0wtdyJQV
-AAAAFQCu+iNkqf/YOAYjYrHSCHFmWAfEYQAAAIAOVJ434UAR3Hn6lA5nWNfFOuUV
-H3W7nJaP0FQJiIPx7GUbdxO9qtDNTbWkWL3c9qx5+B7Ole4xM7cvyXPrNQUYDHCF
-lS+Ue2x3IeJrkdfZkH9ePP25y5A0J4/c+8XXvQaj4zA5nfw13oy5Ptyd7d3Kq5tE
-DM8KiVdIhwkXjUA3PQAAAIEAm8IGZQatS7M6AfNITNWG4TI7Z2aRQjLb9/MWJIID
-7c/VQ4zdTZdG3kpk0Gj9n4xreopK5NmYAdj8rtFfPBgmXltsLqt+bBcXkpxW//7W
-C29WOXW3t90ySTh+cWuWfr9fV7mf4Ql/6u/ZIgpQNvnNYezazt3fK8EXjI1dAXEu
-QxE=
-Private-Lines: 1
-AAAAFBhGOzk+Aimeob964E8+HsQNlyde
-Private-MAC: 1c254f3882a6661c98fb82dea1a55638a23633e5
diff --git a/test/Renci.SshNet.IntegrationTests/resources/client/id_noaccess.rsa b/test/Renci.SshNet.IntegrationTests/resources/client/id_noaccess.rsa
deleted file mode 100644
index cf2cc9795..000000000
--- a/test/Renci.SshNet.IntegrationTests/resources/client/id_noaccess.rsa
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEoQIBAAKCAQEAuTtXn+BatX1oJuvhqfJZw5jc/pcIxJUPmuoFCH3+bXfKBJ/9
-4ixNETzZBasyvT/ozboAbCG3qcJOYxf2BEeTAIXe1jLAoTd1GKCwMvZOyjnsPN95
-/lChwfdnBbMzpZYTGfoUylXme/mzjjLu/J0qXgR5lyk9HFT+x5YEtRl8VSHiDkLK
-TZ37dwhsqgcs+PkfvYMUK+C8evnfE0tgWgKZk0Eatl87nLWyVXB4LzhSDtGKLCPA
-OgrX7fYfplDwJ2WK1N6nG0FnxW1HhDeSK7e2TbAa2vZQgvFXMWnO4O/NZKp4COpO
-ReyliWhdtKAjr/+cD4yDfPjhjjKOYfxbvdRG4QIBIwKCAQAqVrTxV9o4HKoXhl93
-TVZYl/f/rX5Y0Z0quSW4zFdpendRg6e+qwpNFTjrWlS9ivNiOSSrAGR+ktAWpmQe
-PD7bjFAw9ahfXSIUQfxja3+5Mc+Y4p+KlhZYOIyTlqy4Ik2CR8o84G8yR7QDPteK
-Mo1XUXrguPgGedPV2SWlvK60XyAXqsewDhi7SeImZomKzbh33SXjVxakzHfa8BEU
-eIIeR9oFlQMuYdo4GrHhFO2T+g/gqw/kVd1zkeEwt06fZVDErVwp+twewxxvwrk4
-CKUCzavfhDfi5sJ5YdzhDBRgkyBgJI+f15dKyqqOiAparV9+uzrD6vIuNnlVoqQA
-iugLAoGBAPBliy32e83nshBknBn5HOK2rO3a1zHxvYr/NzITXtdZOjatNyfXtkwi
-Ll/el5tZhJvKe9nItSI/4w7mvlvXZfW8h3MR0qb8at4jWa8ya2hwEerqaJonqjjb
-+eBhg27ltZIQRk8Bv6ApXTAWkc+dFGhEIysokDQX7V72Bdrizup1AoGBAMVBLHK0
-5IFb8x7danlAmDX6bqCObId4Pce2OeONFIj1jIowvCXaE0t9zU4X5SdN5ujqu4Dq
-XgzUdNeKcJxWpFO74MDRxT3CbMz36fikJnvxWl/+q0HalYuCY8gm14VYcThUBAro
-3c941INueybGNLIA9jc7RMnsFtyVTvNYpaU9AoGAFJr9TRUgjf3qsPKuS15+0Zqh
-G7OsC5hgtCSBEuu3rA72XHU/Pe3rDdcLSgvD2h2dpvQZPo2L3l0/WQx2t2o78H3f
-uWftfAcB2Iav6nIJNNZn75BvXaug4E1ej5NUaJdYtL+Q/3UtrqR1s6opwVabWWTt
-ElPvGmhzboodwk30en8CgYAyuPzNCfGdm00lMZ8JPH7pTwaBDq4xdrDM9FgHUCna
-E0FlXP0uTgT2J6nSQKijtPI75JadfhgvL1E+vTLmX2wViBU45XvcrlZ92Vlr0nBL
-wbgnUB1otIzauyD49AuIsFegxSWcZ8QCJmKIMlouir0X1FyR3Apfzv6Qfio+kyNH
-vwKBgQCtwxojkzUSfV3zDt6bYSLBzgXgo/Zr9lS+gSggP72DzINmW2gbA0fkM2Zu
-JltcfakKv4gVX/1zooz+7t+4bj6dqt+bl7hYz0VnTSDZGuo5LKDif/4gSGrdblC2
-QLTuX2HjWCZdsue7mRwL7cXR4zlIoE99+Ryhdxvc5wHSfYr/JA==
------END RSA PRIVATE KEY-----
\ No newline at end of file
diff --git a/test/Renci.SshNet.IntegrationTests/resources/client/id_rsa b/test/Renci.SshNet.IntegrationTests/resources/client/id_rsa
deleted file mode 100644
index da8f397ea..000000000
--- a/test/Renci.SshNet.IntegrationTests/resources/client/id_rsa
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAuDdE+laKZ8D0mEFMNMGkDYQY89A2BUML5L+DsFmEn//3yRdz
-Omx+Nk59ifiJUPuP3whZxN5vfbHleU9ZshI+37LqTbXmNrChRlxDSxrQA/++hTNI
-gZl8e+sZUk8mUkpjQyEVOMVEdt3H3PmpfOBeZjtpRJPuWa90J+SVKbnAX4rOL7bt
-LDA4GeMNXdLXLl5E/zBCZ9ol9nJ8W0suajQDx7u2/ixH1wb9jqzA6j68f1+kERII
-t8OUcS+ZM+274rVrCMCL290k9gEQAKwcG/KRMqdgP8Oadtq5ELS/t4m2fH5JqYJ9
-9399QGT4LTPvoiTwZjyhYwK3FhCfXyFQf+gwIwIDAQABAoIBAGLChsFrKfJr2PXT
-dAaIleoFGteDlaKGilbNcc1WgKrCsNXnM4hr59I3jEgurXd0FnKs6GuKEN2jRPIf
-X2f/LiQBqGmXDl/dm+i7x/v42PJ75mlE0Cdi4QESTlX5RwMxDDxN/TGdWJIdXmwS
-kRH4u8M1ML9qS4tba/uDKZDgG8lcF/z6K0RbXDMxL0azfbd5e+jca1e8Fs93X5s7
-mJotXaA+L33R7lCpBBOa1OY517Ug7bdI+uWh59o0bw8v2q8vr8ISOHU3N+JvKZ62
-2z5O6lLyB94sF6ltXRv9pmfcSBjfB8CJx5q1yejUZKM6VfN98MTSKo8WKMEtGmqk
-BtZFTlECgYEA8WYG6vntqXPCHhFFfgCymh8OoXL/mPDSkqsswKfeD4O+Ml9hRUtg
-xl6FDxFAMR7WJ4Vb8u9IMOc7Xx+nzlZNsdC5m7FAVRIEUPPjEucte+ZYKjSy+WOd
-dAtQ07O3z9fi+JNplSjisKtBWaemfqc2TcYXOeIIgwJnkaCf2C7I2bsCgYEAw1vJ
-9c5VLTisPj7ijMeGLWISG5E0aidOrb15E8xcnXuT9TEW1Dc1EgRK/D03tlnoxr1I
-CISPx4EmdLTiEl2AVi33DOhCeFAt8TOd/y3chKsbewb+BYEMmBD93mhsKg+YmC5E
-284SCV3fCcyFJfo9oy5Z2tIELerjT0cnpHgPCLkCgYEAij3OemRUeTUklol3jXgi
-z+Y3P7gWreREAuBqSY4YujPNCRXcI43ORuu8MWvEohyxsYJKrO3hHrhdJNWBCMYd
-ylXo5UN1vwIJXL6+bIXdY1X/aXQyhmVItzr/t6z0997/STFKRrRaVahNTWWYEHH7
-xEBL7scF7tjCrQAaafgo558CgYBkrrm3ZU+grsSWj/JSe8I7QX/zlTJeQ0PZZv0v
-pvNUdowaoeISHSHM10mOFj7QTCYbxxGI0kkHmRgordCVhnrN74KTtGANgcUrul6D
-VS+BcG4JSeFBFPFYreko5shYJRGP3MjAP8Qr76Uzd6RnnkCGCS1mCTb+M0BTa2iS
-6w1UgQKBgQDQ2qV4s7xH3dixy4MWhDBFmrQlFpQkNNkrJ/ImHrxI2tFyNaq1fE+Q
-PrXJi8mjwb/ETVN2C5iBTtIyVg1pZk3YAWAvIt9SPaRVYQWj8IJeOTTaNEZEvp5K
-1LJBWO0ksgJK28f/z7FwejeGbBwg8ch9wVhtFwIV++rZ76smP7C+9Q==
------END RSA PRIVATE KEY-----
diff --git a/test/Renci.SshNet.IntegrationTests/resources/client/id_rsa.pub b/test/Renci.SshNet.IntegrationTests/resources/client/id_rsa.pub
deleted file mode 100644
index 24ba2f7dd..000000000
--- a/test/Renci.SshNet.IntegrationTests/resources/client/id_rsa.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4N0T6VopnwPSYQUw0waQNhBjz0DYFQwvkv4OwWYSf//fJF3M6bH42Tn2J+IlQ+4/fCFnE3m99seV5T1myEj7fsupNteY2sKFGXENLGtAD/76FM0iBmXx76xlSTyZSSmNDIRU4xUR23cfc+al84F5mO2lEk+5Zr3Qn5JUpucBfis4vtu0sMDgZ4w1d0tcuXkT/MEJn2iX2cnxbSy5qNAPHu7b+LEfXBv2OrMDqPrx/X6QREgi3w5RxL5kz7bvitWsIwIvb3ST2ARAArBwb8pEyp2A/w5p22rkQtL+3ibZ8fkmpgn33f31AZPgtM++iJPBmPKFjArcWEJ9fIVB/6DAj
diff --git a/test/Renci.SshNet.IntegrationTests/resources/client/id_rsa_with_pass b/test/Renci.SshNet.IntegrationTests/resources/client/id_rsa_with_pass
deleted file mode 100644
index 841532d1f..000000000
--- a/test/Renci.SshNet.IntegrationTests/resources/client/id_rsa_with_pass
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABC9v0UCCP
-T+1yNEu9m0w939AAAAEAAAAAEAAAEXAAAAB3NzaC1yc2EAAAADAQABAAABAQC4N0T6Vopn
-wPSYQUw0waQNhBjz0DYFQwvkv4OwWYSf//fJF3M6bH42Tn2J+IlQ+4/fCFnE3m99seV5T1
-myEj7fsupNteY2sKFGXENLGtAD/76FM0iBmXx76xlSTyZSSmNDIRU4xUR23cfc+al84F5m
-O2lEk+5Zr3Qn5JUpucBfis4vtu0sMDgZ4w1d0tcuXkT/MEJn2iX2cnxbSy5qNAPHu7b+LE
-fXBv2OrMDqPrx/X6QREgi3w5RxL5kz7bvitWsIwIvb3ST2ARAArBwb8pEyp2A/w5p22rkQ
-tL+3ibZ8fkmpgn33f31AZPgtM++iJPBmPKFjArcWEJ9fIVB/6DAjAAADwPBAapXaoQvm3O
-2i9sBnmO+d8kCdm2nhGbEXNzswb0toARYyx7/rPON15BHv470NLK4GjtxWb8SbkUBjWIXJ
-dpJR1feYAgJQ27yaU6SBEJvnQBFI3EvH+h9ykaikDP/SzgZuGup5NZIoB09PzCPk4SbAwn
-skFT3s1v3ufaULYTiAO2xtWzABkjxfw8HOo+PF3UqGIF4145kGLUT1pUN7iy5EQZA8evRb
-Yt/9+ChcyBgKONgXdpjLNf02XIM/jQofZkROBg7ZAKCjtL3yGpvtOpwzCKy1hWDmgjtkeK
-Xn84/qwXWEobBa2wrDQ4Mjj7AIimRsCciO05bVB5KtNjT+WzCalpTzfj2nazukteNRKTD3
-bQR0gLFfFX4/YodXmtu2n+0R2AKkdPW5ZhoEEpT1FjfYUImAuElSEy5FEeR3bwE5uGQkF4
-uIMJWD+89QxO9PWKTloVI2hrOF9/z+UzUi7p16FQFDlB82qCQAiaIOHgotgDn9+OwMw0ew
-Gu/D3T8ZpKXcTAxK1JeoDFh2h+CE37JDvftNIxIhTp7lrhCdioj1DSBorwfke/q4+OvLUH
-8SZ6ZgppHjJ4jg6lB9TWCpD5PECDW+NuQQwUb5V4NKoBqnJrPaNUSbI7SL5Pq3mOXXNRmv
-q1Va06CfcHL3JupICFifux5xBDlQY0foAt7DFOgA6qANaCnRl2H2oFsEdRhBbL6EPP0bAQ
-7PBvWJlt5Aqr1V7QzcCHNZcyGpjiHeXsQxSWXzb1xQprlrDSnlGZpusrBTcZTLWUtOAgqQ
-dNbUNeUq1E74rZ/RBiVliaLHNBKwTCE9KyZTl/DcfgInB7DDEd7Vlmujzar7xAXRJot7k2
-a12gT69eVsqiO5si23493JFl0JB5vbQvQWARAvcdNPDPiILoJVpbgyL9oMzVzTjJyqYS1x
-cHXKE+rL4ZHeQhcfySXplZlUY9ADVY5QywAj2kl+5gT3Fohu/95axF7w9dAHyMntxbVnA3
-r0zOmqbAKOYEYEXxZ+Vq09YdEyJh33V48PUmvCusWWyeKIfjO4R1nD2+7iyiF7joF7bOBm
-o0LXuJdr81BCMueryPUaqSRpGhg/P/nUqzxj7p0mAh9uUOr/CtOpbc6wNY70RgdiMGFWhz
-zhO54p7iEg2zZNUZ5zRM1hTBikTeYyInpw8IQiMv9GH7/9gWwqPsh0qRVjj5kjqjSu069d
-FeuGjsMGCnLLG6WvOQ9DgH9JR4cfinBL3JwtpHFBIHwhsh2EIuSseVHvQlFlEc1U+7Yoxc
-0dn1VVtg==
------END OPENSSH PRIVATE KEY-----
diff --git a/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_256_openssh b/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_256_openssh
deleted file mode 100644
index 29ecb9073..000000000
--- a/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_256_openssh
+++ /dev/null
@@ -1,9 +0,0 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
-1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQT886z6SLRIzRu7VNA6SSeKZCNNRPXe
-iutTik1T3RUEshgnTI/V3T/d5QurCQPvf2ob3+Rd4FhCsVCS9gilIhVsAAAAsH3KX4d9yl
-+HAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPzzrPpItEjNG7tU
-0DpJJ4pkI01E9d6K61OKTVPdFQSyGCdMj9XdP93lC6sJA+9/ahvf5F3gWEKxUJL2CKUiFW
-wAAAAgYxeSyo7MVNup52COOCarcvARKlWhKIP2CKzj4qa5/6EAAAAYc3NobmV0QFVidW50
-dTE5MTBEZXNrdG9w
------END OPENSSH PRIVATE KEY-----
diff --git a/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_256_openssh.pub b/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_256_openssh.pub
deleted file mode 100644
index 33524cea6..000000000
--- a/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_256_openssh.pub
+++ /dev/null
@@ -1 +0,0 @@
-ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPzzrPpItEjNG7tU0DpJJ4pkI01E9d6K61OKTVPdFQSyGCdMj9XdP93lC6sJA+9/ahvf5F3gWEKxUJL2CKUiFWw= sshnet@Ubuntu1910Desktop
diff --git a/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_384_openssh b/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_384_openssh
deleted file mode 100644
index e720d2407..000000000
--- a/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_384_openssh
+++ /dev/null
@@ -1,10 +0,0 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAiAAAABNlY2RzYS
-1zaGEyLW5pc3RwMzg0AAAACG5pc3RwMzg0AAAAYQS0rLvxzSomgC4UNulA7/jdABXTG9un
-zFazinvOughrumo0n/R1DoSRXY4bHooQdq02pTD6/DK3FzS7n4ouJi/LuJfX1EFxYMJzP2
-aYlT0rOgvvIuLv2Q4OzcdjV8mzSIEAAADo1T5ZUtU+WVIAAAATZWNkc2Etc2hhMi1uaXN0
-cDM4NAAAAAhuaXN0cDM4NAAAAGEEtKy78c0qJoAuFDbpQO/43QAV0xvbp8xWs4p7zroIa7
-pqNJ/0dQ6EkV2OGx6KEHatNqUw+vwytxc0u5+KLiYvy7iX19RBcWDCcz9mmJU9KzoL7yLi
-79kODs3HY1fJs0iBAAAAMQDgRb336Dk9e4VxOpSqnwBqHRsJ3QmSME9qMBvx5SXykHFAsK
-wzVKEvIQizmg/+sWcAAAAYc3NobmV0QFVidW50dTE5MTBEZXNrdG9wAQIDBAUGBw==
------END OPENSSH PRIVATE KEY-----
diff --git a/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_384_openssh.pub b/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_384_openssh.pub
deleted file mode 100644
index 99878d2ca..000000000
--- a/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_384_openssh.pub
+++ /dev/null
@@ -1 +0,0 @@
-ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBLSsu/HNKiaALhQ26UDv+N0AFdMb26fMVrOKe866CGu6ajSf9HUOhJFdjhseihB2rTalMPr8MrcXNLufii4mL8u4l9fUQXFgwnM/ZpiVPSs6C+8i4u/ZDg7Nx2NXybNIgQ== sshnet@Ubuntu1910Desktop
diff --git a/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_521_openssh b/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_521_openssh
deleted file mode 100644
index 47ee8ff8b..000000000
--- a/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_521_openssh
+++ /dev/null
@@ -1,12 +0,0 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAArAAAABNlY2RzYS
-1zaGEyLW5pc3RwNTIxAAAACG5pc3RwNTIxAAAAhQQAgeFoEYBgUaOlJPnEYIPLSTwmxLRl
-EUVpVAOzww3q10fj/Tuppty/fRLcbMoeVzWKl8mjDbR+XOdaKDGo6xcHGsgByITz2/F9wr
-E8BHyFEPemg8h0DKLW0X55J+rnn3lE0a0jXKngJ3VLVcgKgXam7KtpoCWFx689jVCpTxWI
-GrkIvlkAAAEYr0LrEa9C6xEAAAATZWNkc2Etc2hhMi1uaXN0cDUyMQAAAAhuaXN0cDUyMQ
-AAAIUEAIHhaBGAYFGjpST5xGCDy0k8JsS0ZRFFaVQDs8MN6tdH4/07qabcv30S3GzKHlc1
-ipfJow20flznWigxqOsXBxrIAciE89vxfcKxPAR8hRD3poPIdAyi1tF+eSfq5595RNGtI1
-yp4Cd1S1XICoF2puyraaAlhcevPY1QqU8ViBq5CL5ZAAAAQQ50pmBidmKTIknaRpdO5WIu
-nYEGMUkLqdZ0egk9Ggg63mOHiLykf+XWcGbHbHM95CISXhqlvMtCYeGwOpP6FoMGAAAAGH
-NzaG5ldEBVYnVudHUxOTEwRGVza3RvcAECAw==
------END OPENSSH PRIVATE KEY-----
diff --git a/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_521_openssh.pub b/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_521_openssh.pub
deleted file mode 100644
index 085fa07bf..000000000
--- a/test/Renci.SshNet.IntegrationTests/resources/client/key_ecdsa_521_openssh.pub
+++ /dev/null
@@ -1 +0,0 @@
-ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBACB4WgRgGBRo6Uk+cRgg8tJPCbEtGURRWlUA7PDDerXR+P9O6mm3L99Etxsyh5XNYqXyaMNtH5c51ooMajrFwcayAHIhPPb8X3CsTwEfIUQ96aDyHQMotbRfnkn6uefeUTRrSNcqeAndUtVyAqBdqbsq2mgJYXHrz2NUKlPFYgauQi+WQ== sshnet@Ubuntu1910Desktop
diff --git a/test/Renci.SshNet.IntegrationTests/resources/client/key_ed25519_openssh b/test/Renci.SshNet.IntegrationTests/resources/client/key_ed25519_openssh
deleted file mode 100644
index 0bcb6e755..000000000
--- a/test/Renci.SshNet.IntegrationTests/resources/client/key_ed25519_openssh
+++ /dev/null
@@ -1,7 +0,0 @@
------BEGIN OPENSSH PRIVATE KEY-----
-b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
-QyNTUxOQAAACAJDRj1Tk7s7ik4Bnx3L3tjEY+e8l4ZmYJFMovUaZia5QAAAKBKTcfHSk3H
-xwAAAAtzc2gtZWQyNTUxOQAAACAJDRj1Tk7s7ik4Bnx3L3tjEY+e8l4ZmYJFMovUaZia5Q
-AAAEBMMOaGa8RU8Vy0vLFlRT5iVSxl3ji9NBKaO/RS0aFL3QkNGPVOTuzuKTgGfHcve2MR
-j57yXhmZgkUyi9RpmJrlAAAAGHNzaG5ldEBVYnVudHUxOTEwRGVza3RvcAECAwQF
------END OPENSSH PRIVATE KEY-----
diff --git a/test/Renci.SshNet.IntegrationTests/user/sshnet/authorized_keys b/test/Renci.SshNet.IntegrationTests/user/sshnet/authorized_keys
index d91b4786c..5ba085cb6 100644
--- a/test/Renci.SshNet.IntegrationTests/user/sshnet/authorized_keys
+++ b/test/Renci.SshNet.IntegrationTests/user/sshnet/authorized_keys
@@ -1,6 +1,7 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4N0T6VopnwPSYQUw0waQNhBjz0DYFQwvkv4OwWYSf//fJF3M6bH42Tn2J+IlQ+4/fCFnE3m99seV5T1myEj7fsupNteY2sKFGXENLGtAD/76FM0iBmXx76xlSTyZSSmNDIRU4xUR23cfc+al84F5mO2lEk+5Zr3Qn5JUpucBfis4vtu0sMDgZ4w1d0tcuXkT/MEJn2iX2cnxbSy5qNAPHu7b+LEfXBv2OrMDqPrx/X6QREgi3w5RxL5kz7bvitWsIwIvb3ST2ARAArBwb8pEyp2A/w5p22rkQtL+3ibZ8fkmpgn33f31AZPgtM++iJPBmPKFjArcWEJ9fIVB/6DAj
-ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPzzrPpItEjNG7tU0DpJJ4pkI01E9d6K61OKTVPdFQSyGCdMj9XdP93lC6sJA+9/ahvf5F3gWEKxUJL2CKUiFWw=
-ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBLSsu/HNKiaALhQ26UDv+N0AFdMb26fMVrOKe866CGu6ajSf9HUOhJFdjhseihB2rTalMPr8MrcXNLufii4mL8u4l9fUQXFgwnM/ZpiVPSs6C+8i4u/ZDg7Nx2NXybNIgQ==
-ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBACB4WgRgGBRo6Uk+cRgg8tJPCbEtGURRWlUA7PDDerXR+P9O6mm3L99Etxsyh5XNYqXyaMNtH5c51ooMajrFwcayAHIhPPb8X3CsTwEfIUQ96aDyHQMotbRfnkn6uefeUTRrSNcqeAndUtVyAqBdqbsq2mgJYXHrz2NUKlPFYgauQi+WQ==
-ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAkNGPVOTuzuKTgGfHcve2MRj57yXhmZgkUyi9RpmJrl
-ssh-dss AAAAB3NzaC1kc3MAAACBALVl3fae2O4qwsAK95SUShX0KMUNP+yl/uT3lGH9T/ZptnHSlrTxnTWXCl0g91KEeCaEnDDhLxm4aCv1Ag4B/yvcM4u34qkmaNLy2LiAxiqdobZcNG61Pqwqd5IDkp38LBsn8tmb12xu9NalpUfOiSEB1cyCr4zFZMrm0wtdyJQVAAAAFQCu+iNkqf/YOAYjYrHSCHFmWAfEYQAAAIAOVJ434UAR3Hn6lA5nWNfFOuUVH3W7nJaP0FQJiIPx7GUbdxO9qtDNTbWkWL3c9qx5+B7Ole4xM7cvyXPrNQUYDHCFlS+Ue2x3IeJrkdfZkH9ePP25y5A0J4/c+8XXvQaj4zA5nfw13oy5Ptyd7d3Kq5tEDM8KiVdIhwkXjUA3PQAAAIEAm8IGZQatS7M6AfNITNWG4TI7Z2aRQjLb9/MWJIID7c/VQ4zdTZdG3kpk0Gj9n4xreopK5NmYAdj8rtFfPBgmXltsLqt+bBcXkpxW//7WC29WOXW3t90ySTh+cWuWfr9fV7mf4Ql/6u/ZIgpQNvnNYezazt3fK8EXjI1dAXEuQxE=
+ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuTtXn+BatX1oJuvhqfJZw5jc/pcIxJUPmuoFCH3+bXfKBJ/94ixNETzZBasyvT/ozboAbCG3qcJOYxf2BEeTAIXe1jLAoTd1GKCwMvZOyjnsPN95/lChwfdnBbMzpZYTGfoUylXme/mzjjLu/J0qXgR5lyk9HFT+x5YEtRl8VSHiDkLKTZ37dwhsqgcs+PkfvYMUK+C8evnfE0tgWgKZk0Eatl87nLWyVXB4LzhSDtGKLCPAOgrX7fYfplDwJ2WK1N6nG0FnxW1HhDeSK7e2TbAa2vZQgvFXMWnO4O/NZKp4COpOReyliWhdtKAjr/+cD4yDfPjhjjKOYfxbvdRG4Q== Key.RSA
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6KpJwRX4HfoFimrRTxqHsyAoPgMD+dm2/6NjIZiy2CPuNGfci+EKjSmdQHhqM8jlhBKhSiAnsEuW46WGlCzpQm2uSA1hFCz/pdExNw9onfY2hdJwOrFlDO9rOcedeZhSQ5gDW/c/MreQQDgEST8tBBM8Yuuk9h6763+Cbd7TAvOskfmx9RXRMeFaqYOe8uVvNQDAYKlcfhjRESfkDtUvJSUyjZYkKR0wnm9fFGL6K/jQrbDYG75wEyB6+bSPHl3ZLakjHJiNOXVlOgJVk9Gw147hLPd+zxyE4eJV5J7rQv96QUWouYPFcMD4EfginfkIbNg02A5onkjTTVUBnIK31 Key.RSA.Encrypted.Aes.256.CBC.12345
+ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOwUDIZhrxd1VJ7ByUuB25kdZlU0iCl/vru8VZcwmd0ROMLe0FruHkhG54JWTKcOxOOA1ITzEVXVTMpgN9ruRLs= Key.ECDSA.Encrypted
+ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBFL5NEL9uRhgkF2q+8m58EvtZq4mDGgcVEzafPRuNIn1018m9KuqNpOQ6d+435n+MRYThe4MUdijSIDuopX2i14Z35oKZ9x2LsV+RxQczjmbnoWZdvgcvdOo6jiJdY7XJw== Key.OPENSSH.ECDSA384.Encrypted
+ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAH9BVM6bRhbELtgdMGsin5lM42R2EWoT+6Akakl5rQy2tHHLIYGLEfaqI+0iUo2V6MxEf9w0hVz6SEsF+yDgyrYPQCIieaB1oBvIl+PZmL1XsuAXs2uMRsNJb4myGU/DiekxqzIPa0LMrBZ4xmErcn5Gazkw1EA0B3HoaW5wj+geI/efQ== Key.OPENSSH.ECDSA521.Encrypted
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGFdyflleGqSPOhgSYZf7ZQFlG0zEL9VDGC69UbtaaBy Key.OPENSSH.ED25519.Encrypted
+ssh-dss AAAAB3NzaC1kc3MAAACBAI8gyHFchkVhkPiwkhkjFDqN6w2nFWTqVy9sLjFs38oEWLMpAw9+c132erUptAhNQ6JZUAVZGllv/3V5hksSDyChe9WY5IfsOlh6X0dcZCwBKysEzQlPyMFqAtbc9uv7oUWNzBfvEbtV6WN/VmcmXf7dyo3EBVXbBFdPl1NKC7W9AAAAFQDY1+bTt7s2iNmYoBE4C9hdWRCyeQAAAIAEtj09ugx/Tdl6bo7X6mX17hcgVgIxcYj5VNONg2k6IHmRFriLviYaS68mIB4SG3jmvvxbXAGqR1bWBUrv90n0wpxxcuuNoCFylJQyuqUkzSsUHb0WMcncZ/tBQt+NJnRB1Zp9sw8n20ocpg3WVPdaXTtc4pk83NYB6ywG6UFPvgAAAIAX+De5dwo33LMl9W8IvA4dY8Q1wshdycAGJzhy+qYF9dCcwD1Pg+4EbPjYPmzJopsVrK97v9QhxyYcXMr/iHhngGwd9nYNzzSKx665vkSjzyeJWpeQ+fvNV3CLItP01ypbUreM+s+Vz1wor5joLKcDS4X0oQ0RIVZNEHnekuLuFg== Key.SSH2.DSA.Encrypted.Des.CBC.12345
diff --git a/test/Renci.SshNet.Tests/Classes/BaseClientTest_Connect_OnConnectedThrowsException.cs b/test/Renci.SshNet.Tests/Classes/BaseClientTest_Connect_OnConnectedThrowsException.cs
index 806f6c30a..543a5089c 100644
--- a/test/Renci.SshNet.Tests/Classes/BaseClientTest_Connect_OnConnectedThrowsException.cs
+++ b/test/Renci.SshNet.Tests/Classes/BaseClientTest_Connect_OnConnectedThrowsException.cs
@@ -1,11 +1,11 @@
using System;
using System.Linq;
-using System.Reflection;
using System.Threading;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using Renci.SshNet.Common;
using Renci.SshNet.Security;
+using Renci.SshNet.Tests.Common;
namespace Renci.SshNet.Tests.Classes
{
@@ -136,9 +136,7 @@ public void IsConnectedShouldReturnFalse()
private static KeyHostAlgorithm GetKeyHostAlgorithm()
{
- var executingAssembly = Assembly.GetExecutingAssembly();
-
- using (var s = executingAssembly.GetManifestResourceStream(string.Format("Renci.SshNet.Tests.Data.{0}", "Key.RSA.txt")))
+ using (var s = TestBase.GetData("Key.RSA.txt"))
{
var privateKey = new PrivateKeyFile(s);
return (KeyHostAlgorithm) privateKey.HostKeyAlgorithms.First();
diff --git a/test/Renci.SshNet.Tests/Classes/Common/HostKeyEventArgsTest.cs b/test/Renci.SshNet.Tests/Classes/Common/HostKeyEventArgsTest.cs
index 39ff85d7b..f3d0ae55b 100644
--- a/test/Renci.SshNet.Tests/Classes/Common/HostKeyEventArgsTest.cs
+++ b/test/Renci.SshNet.Tests/Classes/Common/HostKeyEventArgsTest.cs
@@ -3,7 +3,6 @@
using Renci.SshNet.Security;
using Renci.SshNet.Tests.Common;
using System.Linq;
-using System.Reflection;
namespace Renci.SshNet.Tests.Classes.Common
{
@@ -86,9 +85,7 @@ public void CanTrustTest()
private static KeyHostAlgorithm GetKeyHostAlgorithm()
{
- var executingAssembly = Assembly.GetExecutingAssembly();
-
- using (var s = executingAssembly.GetManifestResourceStream(string.Format("Renci.SshNet.Tests.Data.{0}", "Key.RSA.txt")))
+ using (var s = GetData("Key.RSA.txt"))
{
var privateKey = new PrivateKeyFile(s);
return (KeyHostAlgorithm)privateKey.HostKeyAlgorithms.First();
diff --git a/test/Renci.SshNet.Tests/Classes/NetConfClientTest_Connect_NetConfSessionConnectFailure.cs b/test/Renci.SshNet.Tests/Classes/NetConfClientTest_Connect_NetConfSessionConnectFailure.cs
index 41c285a84..1585d8734 100644
--- a/test/Renci.SshNet.Tests/Classes/NetConfClientTest_Connect_NetConfSessionConnectFailure.cs
+++ b/test/Renci.SshNet.Tests/Classes/NetConfClientTest_Connect_NetConfSessionConnectFailure.cs
@@ -1,6 +1,5 @@
using System;
using System.Linq;
-using System.Reflection;
using System.Threading;
using Microsoft.VisualStudio.TestTools.UnitTesting;
@@ -9,6 +8,7 @@
using Renci.SshNet.Common;
using Renci.SshNet.Security;
+using Renci.SshNet.Tests.Common;
namespace Renci.SshNet.Tests.Classes
{
@@ -109,9 +109,7 @@ public void HostKeyReceivedOnSessionShouldNoLongerBeSignaledViaHostKeyReceivedOn
private static KeyHostAlgorithm GetKeyHostAlgorithm()
{
- var executingAssembly = Assembly.GetExecutingAssembly();
-
- using (var s = executingAssembly.GetManifestResourceStream(string.Format("Renci.SshNet.Tests.Data.{0}", "Key.RSA.txt")))
+ using (var s = TestBase.GetData("Key.RSA.txt"))
{
var privateKey = new PrivateKeyFile(s);
return (KeyHostAlgorithm)privateKey.HostKeyAlgorithms.First();
diff --git a/test/Renci.SshNet.Tests/Classes/PrivateKeyFileTest.cs b/test/Renci.SshNet.Tests/Classes/PrivateKeyFileTest.cs
index 879dfa840..c536dc5c1 100644
--- a/test/Renci.SshNet.Tests/Classes/PrivateKeyFileTest.cs
+++ b/test/Renci.SshNet.Tests/Classes/PrivateKeyFileTest.cs
@@ -566,7 +566,7 @@ public void Test_PrivateKey_OPENSSH_ED25519_ENCRYPTED()
{
using (var stream = GetData("Key.OPENSSH.ED25519.Encrypted.txt"))
{
- _ = new PrivateKeyFile(stream, "password");
+ _ = new PrivateKeyFile(stream, "12345");
}
}
diff --git a/test/Renci.SshNet.Tests/Classes/SftpClientTest_Connect_SftpSessionConnectFailure.cs b/test/Renci.SshNet.Tests/Classes/SftpClientTest_Connect_SftpSessionConnectFailure.cs
index 92f29113a..1b2a068c1 100644
--- a/test/Renci.SshNet.Tests/Classes/SftpClientTest_Connect_SftpSessionConnectFailure.cs
+++ b/test/Renci.SshNet.Tests/Classes/SftpClientTest_Connect_SftpSessionConnectFailure.cs
@@ -1,6 +1,5 @@
using System;
using System.Linq;
-using System.Reflection;
using System.Threading;
using Microsoft.VisualStudio.TestTools.UnitTesting;
@@ -9,6 +8,7 @@
using Renci.SshNet.Common;
using Renci.SshNet.Security;
+using Renci.SshNet.Tests.Common;
namespace Renci.SshNet.Tests.Classes
{
@@ -118,16 +118,8 @@ public void HostKeyReceivedOnSessionShouldNoLongerBeSignaledViaHostKeyReceivedOn
private static KeyHostAlgorithm GetKeyHostAlgorithm()
{
- var executingAssembly = Assembly.GetExecutingAssembly();
- var resourceName = string.Format("Renci.SshNet.Tests.Data.{0}", "Key.RSA.txt");
-
- using (var s = executingAssembly.GetManifestResourceStream(resourceName))
+ using (var s = TestBase.GetData("Key.RSA.txt"))
{
- if (s is null)
- {
- throw new ArgumentException($"Resource '{resourceName}' does not exist in assembly '{executingAssembly.GetName().Name}'.");
- }
-
var privateKey = new PrivateKeyFile(s);
return (KeyHostAlgorithm)privateKey.HostKeyAlgorithms.First();
}
diff --git a/test/Renci.SshNet.Tests/Common/TestBase.cs b/test/Renci.SshNet.Tests/Common/TestBase.cs
index 5973aa4a3..fb3768f21 100644
--- a/test/Renci.SshNet.Tests/Common/TestBase.cs
+++ b/test/Renci.SshNet.Tests/Common/TestBase.cs
@@ -49,9 +49,12 @@ protected void CreateTestFile(string fileName, int size)
}
}
- protected static Stream GetData(string name)
+ internal static Stream GetData(string name)
{
- return ExecutingAssembly.GetManifestResourceStream(string.Format("Renci.SshNet.Tests.Data.{0}", name));
+ string resourceName = $"Renci.SshNet.Tests.Data.{name}";
+
+ return ExecutingAssembly.GetManifestResourceStream(resourceName)
+ ?? throw new ArgumentException($"Resource '{resourceName}' not found in assembly '{typeof(TestBase).Assembly.FullName}'.");
}
}
}
diff --git a/test/Renci.SshNet.Tests/Renci.SshNet.Tests.csproj b/test/Renci.SshNet.Tests/Renci.SshNet.Tests.csproj
index a4bce13e7..085a17e75 100644
--- a/test/Renci.SshNet.Tests/Renci.SshNet.Tests.csproj
+++ b/test/Renci.SshNet.Tests/Renci.SshNet.Tests.csproj
@@ -4,24 +4,9 @@
-
+
-
-
- $(MSBuildProgramFiles32)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
- $(MSTestV1UnitTestFrameworkAssemblyCandidate)
-
- $(MSBuildProgramFiles32)\Microsoft Visual Studio\2019\Professional\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
- $(MSTestV1UnitTestFrameworkAssemblyCandidate)
-
- $(MSBuildProgramFiles32)\Microsoft Visual Studio\2019\Community\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
- $(MSTestV1UnitTestFrameworkAssemblyCandidate)
-
- $(MSBuildProgramFiles32)\Microsoft Visual Studio\2019\Preview\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
- $(MSTestV1UnitTestFrameworkAssemblyCandidate)
-
-