Merge pull request #1219 from Rob-Hague/testkeys

* Remove byte order mark, set eol=lf in key files
* Change the passphrase of Key.OPENSSH.ED25519.Encrypted to "12345"
* Normalize the OpenSSH files

Change the data to be in 64-wide columns instead of 70, and add a newline
at the end of the file. ssh-keygen does not like it otherwise.

puttygen Key.OPENSSH.ECDSA.Encrypted.txt -O private-openssh-new -C Key.OPENSSH.ECDSA.Encrypted
puttygen Key.OPENSSH.ECDSA.txt -O private-openssh-new -C Key.OPENSSH.ECDSA
puttygen Key.OPENSSH.ECDSA384.Encrypted.txt -O private-openssh-new -C Key.OPENSSH.ECDSA384.Encrypted
puttygen Key.OPENSSH.ECDSA384.txt -O private-openssh-new -C Key.OPENSSH.ECDSA384
puttygen Key.OPENSSH.ECDSA521.Encrypted.txt -O private-openssh-new -C Key.OPENSSH.ECDSA521.Encrypted
puttygen Key.OPENSSH.ECDSA521.txt -O private-openssh-new -C Key.OPENSSH.ECDSA521
puttygen Key.OPENSSH.ED25519.Encrypted.txt -O private-openssh-new -C Key.OPENSSH.ED25519.Encrypted
puttygen Key.OPENSSH.ED25519.txt -O private-openssh-new -C Key.OPENSSH.ED25519
puttygen Key.OPENSSH.RSA.Encrypted.txt -O private-openssh-new -C Key.OPENSSH.RSA.Encrypted
puttygen Key.OPENSSH.RSA.txt -O private-openssh-new -C Key.OPENSSH.RSA

(the -C flag changes the comment, otherwise puttygen refuses to do anything)

* Add OpenSSH public key files

Generated with

puttygen Key.OPENSSH.ECDSA.Encrypted.txt -o Key.OPENSSH.ECDSA.Encrypted.pub -O public-openssh
puttygen Key.OPENSSH.ECDSA.txt -o Key.OPENSSH.ECDSA.pub -O public-openssh
puttygen Key.OPENSSH.ECDSA384.Encrypted.txt -o Key.OPENSSH.ECDSA384.Encrypted.pub -O public-openssh
puttygen Key.OPENSSH.ECDSA384.txt -o Key.OPENSSH.ECDSA384.pub -O public-openssh
puttygen Key.OPENSSH.ECDSA521.Encrypted.txt -o Key.OPENSSH.ECDSA521.Encrypted.pub -O public-openssh
puttygen Key.OPENSSH.ECDSA521.txt -o Key.OPENSSH.ECDSA521.pub -O public-openssh
puttygen Key.OPENSSH.ED25519.Encrypted.txt -o Key.OPENSSH.ED25519.Encrypted.pub -O public-openssh
puttygen Key.OPENSSH.ED25519.txt -o Key.OPENSSH.ED25519.pub -O public-openssh
puttygen Key.OPENSSH.RSA.Encrypted.txt -o Key.OPENSSH.RSA.Encrypted.pub -O public-openssh
puttygen Key.OPENSSH.RSA.txt -o Key.OPENSSH.RSA.pub -O public-openssh

and so forth. Some whose ciphers are unsupported by puttygen were generated with e.g.

sudo ssh-keygen -f Key.RSA.Encrypted.Des.CBC.12345.txt -y > Key.RSA.Encrypted.Des.CBC.12345.pub

* Remove duplicate GetManifestResourceStream helpers

* Use shared Data folder for client keys in integration tests

* Remove unused symbols
This commit is contained in:
Gert Driesen
2023-11-12 17:02:55 +01:00
committed by GitHub
83 changed files with 269 additions and 693 deletions
+3
View File
@@ -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
+3
View File
@@ -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
+1
View File
@@ -0,0 +1 @@
ssh-dss AAAAB3NzaC1kc3MAAACBALVl3fae2O4qwsAK95SUShX0KMUNP+yl/uT3lGH9T/ZptnHSlrTxnTWXCl0g91KEeCaEnDDhLxm4aCv1Ag4B/yvcM4u34qkmaNLy2LiAxiqdobZcNG61Pqwqd5IDkp38LBsn8tmb12xu9NalpUfOiSEB1cyCr4zFZMrm0wtdyJQVAAAAFQCu+iNkqf/YOAYjYrHSCHFmWAfEYQAAAIAOVJ434UAR3Hn6lA5nWNfFOuUVH3W7nJaP0FQJiIPx7GUbdxO9qtDNTbWkWL3c9qx5+B7Ole4xM7cvyXPrNQUYDHCFlS+Ue2x3IeJrkdfZkH9ePP25y5A0J4/c+8XXvQaj4zA5nfw13oy5Ptyd7d3Kq5tEDM8KiVdIhwkXjUA3PQAAAIEAm8IGZQatS7M6AfNITNWG4TI7Z2aRQjLb9/MWJIID7c/VQ4zdTZdG3kpk0Gj9n4xreopK5NmYAdj8rtFfPBgmXltsLqt+bBcXkpxW//7WC29WOXW3t90ySTh+cWuWfr9fV7mf4Ql/6u/ZIgpQNvnNYezazt3fK8EXjI1dAXEuQxE=
+1
View File
@@ -0,0 +1 @@
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOwUDIZhrxd1VJ7ByUuB25kdZlU0iCl/vru8VZcwmd0ROMLe0FruHkhG54JWTKcOxOOA1ITzEVXVTMpgN9ruRLs= imported-openssh-key
+1 -1
View File
@@ -1,4 +1,4 @@
-----BEGIN EC PRIVATE KEY-----
-----BEGIN EC PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,54D46F498C989115AAE14FEA21E3AF11
+1
View File
@@ -0,0 +1 @@
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEA+TDv5/cqkg07M8M1aQKS8eUkBXnBOWXw5IMalXR0HnJtQQD6M2eHihjYSp+9oU+/Zi5afR11/qDRHLlU/Nx8= imported-openssh-key
+1 -1
View File
@@ -1,4 +1,4 @@
-----BEGIN EC PRIVATE KEY-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIEdqaFKgJBIibVjyUh1v7Y35LwIQJrocdTaYFLwl7iB0oAoGCCqGSM49
AwEHoUQDQgAEQD5MO/n9yqSDTszwzVpApLx5SQFecE5ZfDkgxqVdHQecm1BAPozZ
4eKGNhKn72hT79mLlp9HXX+oNEcuVT83Hw==
+1
View File
@@ -0,0 +1 @@
ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBAKCegTbmw9KKkPpn6qMsTmPMp9yCr+xOyrRgQOFaToNzFq57mT1jxfIXRL0wyAgINVGNTyHpS2sMalvOYD2lKQkD/i3SlgQXXiGx9yopulY07Q1n2pNk1g8ay4k4Yt24Q== imported-openssh-key
+1 -1
View File
@@ -1,4 +1,4 @@
-----BEGIN EC PRIVATE KEY-----
-----BEGIN EC PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,1D64653C5E18C2AACB0B17E3FE43C219
+1
View File
@@ -0,0 +1 @@
ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBBSTitW+g48jWFDNak3HT1Sjqob6ysZxu8GrXl4UrQacr9PRQErF1tnb7/8oBgjpJ4Mcz23c5EXVpfkSmNMQEjh3tlj+VX2Nfoycnhe4a14mx6UzaIybL6n1ljDzcFgHVg== imported-openssh-key
+1 -1
View File
@@ -1,4 +1,4 @@
-----BEGIN EC PRIVATE KEY-----
-----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDCQawHdHLR7NvKa2vPV0sVkbzOE8c0enp95iEysGcGV66RXE1EH//nh
gu5UzeTR4KigBwYFK4EEACKhZANiAAQUk4rVvoOPI1hQzWpNx09Uo6qG+srGcbvB
q15eFK0GnK/T0UBKxdbZ2+//KAYI6SeDHM9t3ORF1aX5EpjTEBI4d7ZY/lV9jX6M
+1
View File
@@ -0,0 +1 @@
ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBACwzN70vaXBOSasttYWPYsPTwe4aQWx86wSig5xddvJXwX0Wzg0KYRkF5f2wJbk59JufZVaLcQpOQ/kN/2EOHVzhgA1V1BcBFbmoKSnMMwx/pQUVOu54tPC3CTAIN1CeG9UaBWcz44YXmSRQM5vz4OzZnzVFusFvY6+fnldTeNgQYqz9g== imported-openssh-key
+1 -1
View File
@@ -1,4 +1,4 @@
-----BEGIN EC PRIVATE KEY-----
-----BEGIN EC PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,F995028237EBD79C928530CC6C3E957F
+1
View File
@@ -0,0 +1 @@
ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBABrpVjsANqcvqMUo1wo0I1uVCXQ6xrauy4iU86FiOwFmkYRrle4w3oYdRJwniC3TwGMuBuMPMIoCTXr0UtUzn1vkQESNR/J/jAxVseLlVe+KDfZHKvsvk2+O4XaSa1qMfLwN3spwlj08+ylKjlO6V3g0hbz4ZaSVwuiRS7Xsv8W2MV6rg== imported-openssh-key
+1 -1
View File
@@ -1,4 +1,4 @@
-----BEGIN EC PRIVATE KEY-----
-----BEGIN EC PRIVATE KEY-----
MIHcAgEBBEIBn2DAme7AU8sCA+/sd6s3c2FNW26IiPvulGd3FC8k5q+fjBZ5LUWR
iJMGrsf2rJLO8hXMGJYoF9tjZEGaabQ8KVagBwYFK4EEACOhgYkDgYYABABrpVjs
ANqcvqMUo1wo0I1uVCXQ6xrauy4iU86FiOwFmkYRrle4w3oYdRJwniC3TwGMuBuM
@@ -0,0 +1 @@
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK6YY2NwwLDSMnJTD+a4OfitCDuG/MnY/AstPgh54xMrZF6Qr0U1H6kRMKY6JJsj31CI97qDYrnTA00Sx5Jy6yw= Key.OPENSSH.ECDSA.Encrypted
+10 -9
View File
@@ -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-----
-----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-----
+1
View File
@@ -0,0 +1 @@
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI/dlNvfssW9KYrB67TcDmz9zBzDf7eMvUupAroP3b3FjUnYnpL3Utc4GkF/PiX7w2DuxaG70/+EX/CYHZBHKCs= Key.OPENSSH.ECDSA
+9 -9
View File
@@ -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-----
-----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-----
@@ -0,0 +1 @@
ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBFL5NEL9uRhgkF2q+8m58EvtZq4mDGgcVEzafPRuNIn1018m9KuqNpOQ6d+435n+MRYThe4MUdijSIDuopX2i14Z35oKZ9x2LsV+RxQczjmbnoWZdvgcvdOo6jiJdY7XJw== Key.OPENSSH.ECDSA384.Encrypted
+12 -11
View File
@@ -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-----
-----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-----
+1
View File
@@ -0,0 +1 @@
ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBFM/UMxegeBb5Ff5L83FQQSWi7VyYsPoISJH7OnNoYbqbOXouFRj5nd/Yze7i7u1wzxOAH+OIducj1Np43lArgdfUP0NeQflGF+ct+ubeQJM2gIUp3RZr9AC8quU0qJGLw== Key.OPENSSH.ECDSA384
+11 -10
View File
@@ -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-----
-----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-----
@@ -0,0 +1 @@
ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAH9BVM6bRhbELtgdMGsin5lM42R2EWoT+6Akakl5rQy2tHHLIYGLEfaqI+0iUo2V6MxEf9w0hVz6SEsF+yDgyrYPQCIieaB1oBvIl+PZmL1XsuAXs2uMRsNJb4myGU/DiekxqzIPa0LMrBZ4xmErcn5Gazkw1EA0B3HoaW5wj+geI/efQ== Key.OPENSSH.ECDSA521.Encrypted
+13 -11
View File
@@ -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-----
+1
View File
@@ -0,0 +1 @@
ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBABrunhZWBr7Tyq7XrQGt3MrJE0kxAJ4aEWW412rvf+5pbeqWqgSJo21zm4HscfKMJZBOZ/OtJEtFntgHBRqdzDKHgCrqAGAaxdXPA29jeTFEOUatJ8yaweVfPjV2DD3CbV8Fx/3ueJ7FFD/EaWGTJ/shiVD+zkGlcXaVL2XQfmEGKmlGA== Key.OPENSSH.ECDSA521
+13 -12
View File
@@ -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-----
-----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-----
@@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGFdyflleGqSPOhgSYZf7ZQFlG0zEL9VDGC69UbtaaBy Key.OPENSSH.ED25519.Encrypted
+8 -8
View File
@@ -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-----
+1
View File
@@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA0JZnDQrxQZcNALfZYG7LPAW1MYEGvVW5nje7OlMGMi Key.OPENSSH.ED25519
+4 -4
View File
@@ -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-----
+1
View File
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxOfnmxC1gmmX18LCBG/X73BoCXQEBEAJz3V9w0FMTgUBebK3fkfOMLNzWn5aMR608wQHOEPYhHffCJfdJR6lUWLHZz5+EZRfM9oHpysMtToYQoGtb9xM7D5J3lnWZgSea2R7xSeqpClN5nQUMGu8y2d2S3g9o1vrTdeu71u09QFOx2AXBPUmCjpCuBlNyYEEQMfRMtQ6PDbPdvLM1uylbQqB+/6jMsCyEFvlLit9GcZ7ItKQN+jsZNmP+f7ytVXLsZTjPLd5mWWrf6T1T1Xt9DBoLXnMrmDiCf/EXiTYonIO6B0FHvNUCrDzZ7rxIebqePLes1Q2yoUqmC8g+cww3 Key.OPENSSH.RSA.Encrypted
+30 -28
View File
@@ -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-----
-----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-----
+1
View File
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDtbs6KCLsePWaxraXweKYs/NqBWYT8Kx4woJHE8xO1ZO+hl0y3uF+S2FYDuHbRruhJJ4fa3sWp46lU0YVi9FXcFVawpkkxFx0mJMJkCMffytiT3Re9neYqso3/d9xCyHg6I+dapPodKqDXiiJXxQ+1TCcTrmyRZLG/G34QuVWkKobm8TY78Y0MpATsXNi3q9CKEwVIAEGqO9q7SaNfTTYpiIIyvq+CXxdiQMDifn4nJBJDHOed+sv3dmhqq6NE/ZtPlSFeBvOvwcXC6pAa9REQJlNMjwGK//q04if3HaERo3q/EMu1dz30TZ3o1bpx2uLBoYUniOBVYMTmZTTTpd09 Key.OPENSSH.RSA
+30 -27
View File
@@ -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-----
-----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-----
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCha/vKqT3Nf07l0b/7A5BtSdTy+WnCt9z8QVMq85RjgYc4n3cCh0tEmyE3EjR9Bmc9bBIR2wWUHnLc2gmDXe4Y1YGKQyWCPTVnPPpBN+eama+BYPbfQDn8wRNsEghtc2TgXH2Oj28yGnGf7JM46rSCsyJwx9doEvrFptQGiAdXCk6aLnRzFhC4reVe9iBi1y1A4T5mVkljjwdVRpIMZYshHEi8mc/mvV+f7t9aXG33WZ+r6rGUT4cs6hpcxyg8AStnlpwYuLApeX6I/1rqGLktJCPGFeFAJS+Oy/I1sK7IgvKqSMSikKRT5hKoBra4EHRspe4giqRQFf402jfr4EKr imported-openssh-key
@@ -1,4 +1,4 @@
-----BEGIN RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,AD7A2024C208E41F91C191B89AB9515A
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4nJsl4i410AyFpLbh7AWSq+X+q6lbRSUW8XqhSb6b2AClQ7pBkwPm2/VL1Jk3+d1itzChHAQgQWjt0E9uh/BL/Rz0fHXqzrbOn1Yuwq0N9ZMsIss8ue6q2Txi8tn2qBIhhB37MZcOZYH2Vp4+kLf5SmqOr/0/Iyz4H77NnJz9H8VWNnmIC/lVmFnpdrzCkn5RzKrlfZElrQPfYXMwM6ivKoB3j5S5EThn0RAyLpGJsD2nB+/0bLbPyvIa+EEzzfsIBvO9Q9ULWPEBGJdSLsz++NvNGay40uVT7PDsUB59n/vsT1/gZ+kbl6gneM+qnhTxZUFzxtDqJXx9dXwymZqz
@@ -1,4 +1,4 @@
-----BEGIN RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-192-CBC,0E34605476FC4C57886CE6350CD6F61E
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6KpJwRX4HfoFimrRTxqHsyAoPgMD+dm2/6NjIZiy2CPuNGfci+EKjSmdQHhqM8jlhBKhSiAnsEuW46WGlCzpQm2uSA1hFCz/pdExNw9onfY2hdJwOrFlDO9rOcedeZhSQ5gDW/c/MreQQDgEST8tBBM8Yuuk9h6763+Cbd7TAvOskfmx9RXRMeFaqYOe8uVvNQDAYKlcfhjRESfkDtUvJSUyjZYkKR0wnm9fFGL6K/jQrbDYG75wEyB6+bSPHl3ZLakjHJiNOXVlOgJVk9Gw147hLPd+zxyE4eJV5J7rQv96QUWouYPFcMD4EfginfkIbNg02A5onkjTTVUBnIK31
@@ -1,4 +1,4 @@
-----BEGIN RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-256-CBC,063DE67AE11456C89BCE9D4A21BE3DFB
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs7PAiYUZLgiAKPJpJ62JFBrE1d4lfG0w5vbTkMuwJvYmvWyBPU+Hc7jXxgK1iqsz/s0wDZutENyE9VBilTHAYDBOauXjSfQwlo7zHmK1HZ7h87jcIhltpY0NzBGmd/lQ+yDeXiSFGGoFyjwW6VpOfs0AR+oLA2Hpy4b9lI/QWzGPnSz53LVpALI9ssx15OgwjCNxUW+gjMMNrDN4Gz8EryvY28fwGVgPt6uZeT7bU02aSdcsTvWneGwoNeKIGWuwfIXghiTzIosijMbftWnWVNylM5hQOYlQloxVtCCKe5vnz5PeYfwE38yElu7XV6LqEibFNjor9Mcsc+Rr7d/rN
@@ -1,4 +1,4 @@
-----BEGIN RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-CBC,BD35E157CDD07CAD
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCY3ezaIynwdqwNBagUkBVhXETR16+KFGBy9bKcocgAmfvJR1HZc1xiyYPFMh32bN8ZNM6n9PVoBWwtSEmUyUbULa2/EOjOR+Vg9KzFC2Sw1yvu5DyRZngFWpZXZ4rYHVXZCF2cNeQ2uC5zilgdxmSmdDGokHBDuVv89n2DzqwymuCPFOkw+FXCdyaELro2tUmF1VBKHPj5It5U9HauPfcVmWX4ZD1wsEEVmKZS/03h+MDGCjUQE59DGIwZrWsIkOY9/QIU0040XYVOWsHdXlL58fjveOoSDz78dVaVbTE7HRJv0iO71o7xwyc/6js1SoHjRFlQNP4b6q5Z8NYqiL6T imported-openssh-key
@@ -1,4 +1,4 @@
-----BEGIN RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,AF373EFF708479DF
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAs8tm1pWW8JOQTpuvsGlf/x7su38XuKo7zOLiY/6gB+ZBWs6UC3TnP1UnG13qyS9euWmIWqVz/3d6OM/O9ysjwgzBjRGQIyekxbXxDb+IpYrZR8T5QHXFjPp/yXGcknurUYF8G4ubxqJAULe5lCzg/b4aN9Vxv1tMTRdaArLPldc=
@@ -1,4 +1,4 @@
-----BEGIN RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CFB,81C75CC63A21DFFB
+1
View File
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuTtXn+BatX1oJuvhqfJZw5jc/pcIxJUPmuoFCH3+bXfKBJ/94ixNETzZBasyvT/ozboAbCG3qcJOYxf2BEeTAIXe1jLAoTd1GKCwMvZOyjnsPN95/lChwfdnBbMzpZYTGfoUylXme/mzjjLu/J0qXgR5lyk9HFT+x5YEtRl8VSHiDkLKTZ37dwhsqgcs+PkfvYMUK+C8evnfE0tgWgKZk0Eatl87nLWyVXB4LzhSDtGKLCPAOgrX7fYfplDwJ2WK1N6nG0FnxW1HhDeSK7e2TbAa2vZQgvFXMWnO4O/NZKp4COpOReyliWhdtKAjr/+cD4yDfPjhjjKOYfxbvdRG4Q== imported-openssh-key
+1 -1
View File
@@ -1,4 +1,4 @@
-----BEGIN RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEAuTtXn+BatX1oJuvhqfJZw5jc/pcIxJUPmuoFCH3+bXfKBJ/9
4ixNETzZBasyvT/ozboAbCG3qcJOYxf2BEeTAIXe1jLAoTd1GKCwMvZOyjnsPN95
/lChwfdnBbMzpZYTGfoUylXme/mzjjLu/J0qXgR5lyk9HFT+x5YEtRl8VSHiDkLK
@@ -0,0 +1 @@
ssh-dss AAAAB3NzaC1kc3MAAACBAI8gyHFchkVhkPiwkhkjFDqN6w2nFWTqVy9sLjFs38oEWLMpAw9+c132erUptAhNQ6JZUAVZGllv/3V5hksSDyChe9WY5IfsOlh6X0dcZCwBKysEzQlPyMFqAtbc9uv7oUWNzBfvEbtV6WN/VmcmXf7dyo3EBVXbBFdPl1NKC7W9AAAAFQDY1+bTt7s2iNmYoBE4C9hdWRCyeQAAAIAEtj09ugx/Tdl6bo7X6mX17hcgVgIxcYj5VNONg2k6IHmRFriLviYaS68mIB4SG3jmvvxbXAGqR1bWBUrv90n0wpxxcuuNoCFylJQyuqUkzSsUHb0WMcncZ/tBQt+NJnRB1Zp9sw8n20ocpg3WVPdaXTtc4pk83NYB6ywG6UFPvgAAAIAX+De5dwo33LMl9W8IvA4dY8Q1wshdycAGJzhy+qYF9dCcwD1Pg+4EbPjYPmzJopsVrK97v9QhxyYcXMr/iHhngGwd9nYNzzSKx665vkSjzyeJWpeQ+fvNV3CLItP01ypbUreM+s+Vz1wor5joLKcDS4X0oQ0RIVZNEHnekuLuFg==
+1
View File
@@ -0,0 +1 @@
ssh-dss AAAAB3NzaC1kc3MAAACBAI8gyHFchkVhkPiwkhkjFDqN6w2nFWTqVy9sLjFs38oEWLMpAw9+c132erUptAhNQ6JZUAVZGllv/3V5hksSDyChe9WY5IfsOlh6X0dcZCwBKysEzQlPyMFqAtbc9uv7oUWNzBfvEbtV6WN/VmcmXf7dyo3EBVXbBFdPl1NKC7W9AAAAFQDY1+bTt7s2iNmYoBE4C9hdWRCyeQAAAIAEtj09ugx/Tdl6bo7X6mX17hcgVgIxcYj5VNONg2k6IHmRFriLviYaS68mIB4SG3jmvvxbXAGqR1bWBUrv90n0wpxxcuuNoCFylJQyuqUkzSsUHb0WMcncZ/tBQt+NJnRB1Zp9sw8n20ocpg3WVPdaXTtc4pk83NYB6ywG6UFPvgAAAIAX+De5dwo33LMl9W8IvA4dY8Q1wshdycAGJzhy+qYF9dCcwD1Pg+4EbPjYPmzJopsVrK97v9QhxyYcXMr/iHhngGwd9nYNzzSKx665vkSjzyeJWpeQ+fvNV3CLItP01ypbUreM+s+Vz1wor5joLKcDS4X0oQ0RIVZNEHnekuLuFg==
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVwZxtc4I5nngC8qAu7uJsl9yEqccA5MbUHEyTHL/SkKhM9IMBeIfI3GM3iqOTyeqDV1+w92NcJGlb54GxAyElnU+oiHhYHt+Qrv5abi3CGpCEtDu4/COc1+U1ipGLN5gnnBSh+4rYjfQOCI1CPDaFXpOizyKS9UDsYJ52OdJxFhtRq5XyutcLr5efLqYPYXcEYT8JB1hNlc2zuYoiQKlv3OIlcwzuO4J8FI6pBLBnLtd4Qq4yrM/12IcIHKqoJyKmkdzRFlMs40JNZrud2ioB2FmmST+kOqYVMRYQm5Q83yNYKq6RLhHPFcQTeVvNlsidiayV2Vch5uhCgUkz7hZf imported-openssh-key
@@ -1,4 +1,4 @@
---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
Comment: "imported-openssh-key"
P2/56wAAA/MAAAA3aWYtbW9kbntzaWdue3JzYS1wa2NzMS1zaGExfSxlbmNyeXB0e3JzYS
1wa2NzMXYyLW9hZXB9fQAAAAgzZGVzLWNiYwAAA6A6Wt6IR5cz0PCsSJDOjcs3MdQscfdN
+1
View File
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVwZxtc4I5nngC8qAu7uJsl9yEqccA5MbUHEyTHL/SkKhM9IMBeIfI3GM3iqOTyeqDV1+w92NcJGlb54GxAyElnU+oiHhYHt+Qrv5abi3CGpCEtDu4/COc1+U1ipGLN5gnnBSh+4rYjfQOCI1CPDaFXpOizyKS9UDsYJ52OdJxFhtRq5XyutcLr5efLqYPYXcEYT8JB1hNlc2zuYoiQKlv3OIlcwzuO4J8FI6pBLBnLtd4Qq4yrM/12IcIHKqoJyKmkdzRFlMs40JNZrud2ioB2FmmST+kOqYVMRYQm5Q83yNYKq6RLhHPFcQTeVvNlsidiayV2Vch5uhCgUkz7hZf imported-openssh-key
+1 -1
View File
@@ -1,4 +1,4 @@
---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
Comment: "imported-openssh-key"
P2/56wAAA+4AAAA3aWYtbW9kbntzaWdue3JzYS1wa2NzMS1zaGExfSxlbmNyeXB0e3JzYS
1wa2NzMXYyLW9hZXB9fQAAAARub25lAAADnwAAA5sAAAARAQABAAAIAJoF62h2fdR02ncN
@@ -15,6 +15,6 @@
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\Data\*.txt" LinkBase="Data" />
<EmbeddedResource Include="..\Data\*" LinkBase="Data" />
</ItemGroup>
</Project>
@@ -10,33 +10,63 @@
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 @@
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;
}
}
}
@@ -25,59 +25,59 @@ namespace Renci.SshNet.IntegrationTests
[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 @@ namespace Renci.SshNet.IntegrationTests
}
}
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));
}
}
}
@@ -8,10 +8,6 @@
<NoWarn>$(NoWarn);SYSLIB0021;SYSLIB1045;SYSLIB0014;IDE0220;IDE0010</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'net7.0' ">
<DefineConstants>TRACE;FEATURE_MSTEST_DATATEST;FEATURE_SOCKET_EAP;FEATURE_ENCODING_ASCII;FEATURE_THREAD_SLEEP;FEATURE_THREAD_THREADPOOL</DefineConstants>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
@@ -39,15 +35,7 @@
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="resources\client\id_dsa" />
<EmbeddedResource Include="resources\client\id_dsa.ppk" />
<EmbeddedResource Include="resources\client\id_noaccess.rsa" />
<EmbeddedResource Include="resources\client\id_rsa" />
<EmbeddedResource Include="resources\client\id_rsa_with_pass" />
<EmbeddedResource Include="resources\client\key_ecdsa_256_openssh" />
<EmbeddedResource Include="resources\client\key_ecdsa_384_openssh" />
<EmbeddedResource Include="resources\client\key_ecdsa_521_openssh" />
<EmbeddedResource Include="resources\client\key_ed25519_openssh" />
<EmbeddedResource Include="..\Data\*" LinkBase="Data" />
<EmbeddedResource Include="resources\issue #70.png" />
</ItemGroup>
</Project>
@@ -19,21 +19,8 @@ namespace Renci.SshNet.IntegrationTests
_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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
/// <summary>
/// https://github.com/sshnet/SSH.NET/issues/289
/// </summary>
#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 @@ namespace Renci.SshNet.IntegrationTests
/// <summary>
/// https://github.com/sshnet/SSH.NET/issues/286
/// </summary>
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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 @@ namespace Renci.SshNet.IntegrationTests
}
}
#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)
{
@@ -25,19 +25,8 @@ namespace Renci.SshNet.IntegrationTests
_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 @@ namespace Renci.SshNet.IntegrationTests
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 @@ namespace Renci.SshNet.IntegrationTests
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);
@@ -66,15 +66,12 @@ namespace Renci.SshNet.IntegrationTests
}
}
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));
}
}
}
@@ -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
@@ -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-----
@@ -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-----
@@ -1 +0,0 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4N0T6VopnwPSYQUw0waQNhBjz0DYFQwvkv4OwWYSf//fJF3M6bH42Tn2J+IlQ+4/fCFnE3m99seV5T1myEj7fsupNteY2sKFGXENLGtAD/76FM0iBmXx76xlSTyZSSmNDIRU4xUR23cfc+al84F5mO2lEk+5Zr3Qn5JUpucBfis4vtu0sMDgZ4w1d0tcuXkT/MEJn2iX2cnxbSy5qNAPHu7b+LEfXBv2OrMDqPrx/X6QREgi3w5RxL5kz7bvitWsIwIvb3ST2ARAArBwb8pEyp2A/w5p22rkQtL+3ibZ8fkmpgn33f31AZPgtM++iJPBmPKFjArcWEJ9fIVB/6DAj
@@ -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-----
@@ -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-----
@@ -1 +0,0 @@
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPzzrPpItEjNG7tU0DpJJ4pkI01E9d6K61OKTVPdFQSyGCdMj9XdP93lC6sJA+9/ahvf5F3gWEKxUJL2CKUiFWw= sshnet@Ubuntu1910Desktop
@@ -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-----
@@ -1 +0,0 @@
ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBLSsu/HNKiaALhQ26UDv+N0AFdMb26fMVrOKe866CGu6ajSf9HUOhJFdjhseihB2rTalMPr8MrcXNLufii4mL8u4l9fUQXFgwnM/ZpiVPSs6C+8i4u/ZDg7Nx2NXybNIgQ== sshnet@Ubuntu1910Desktop
@@ -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-----
@@ -1 +0,0 @@
ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBACB4WgRgGBRo6Uk+cRgg8tJPCbEtGURRWlUA7PDDerXR+P9O6mm3L99Etxsyh5XNYqXyaMNtH5c51ooMajrFwcayAHIhPPb8X3CsTwEfIUQ96aDyHQMotbRfnkn6uefeUTRrSNcqeAndUtVyAqBdqbsq2mgJYXHrz2NUKlPFYgauQi+WQ== sshnet@Ubuntu1910Desktop
@@ -1,7 +0,0 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACAJDRj1Tk7s7ik4Bnx3L3tjEY+e8l4ZmYJFMovUaZia5QAAAKBKTcfHSk3H
xwAAAAtzc2gtZWQyNTUxOQAAACAJDRj1Tk7s7ik4Bnx3L3tjEY+e8l4ZmYJFMovUaZia5Q
AAAEBMMOaGa8RU8Vy0vLFlRT5iVSxl3ji9NBKaO/RS0aFL3QkNGPVOTuzuKTgGfHcve2MR
j57yXhmZgkUyi9RpmJrlAAAAGHNzaG5ldEBVYnVudHUxOTEwRGVza3RvcAECAwQF
-----END OPENSSH PRIVATE KEY-----
@@ -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
@@ -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 @@ namespace Renci.SshNet.Tests.Classes
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();
@@ -3,7 +3,6 @@ using Renci.SshNet.Common;
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 @@ namespace Renci.SshNet.Tests.Classes.Common
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();
@@ -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 Moq;
using Renci.SshNet.Common;
using Renci.SshNet.Security;
using Renci.SshNet.Tests.Common;
namespace Renci.SshNet.Tests.Classes
{
@@ -109,9 +109,7 @@ namespace Renci.SshNet.Tests.Classes
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();
@@ -566,7 +566,7 @@ namespace Renci.SshNet.Tests.Classes
{
using (var stream = GetData("Key.OPENSSH.ED25519.Encrypted.txt"))
{
_ = new PrivateKeyFile(stream, "password");
_ = new PrivateKeyFile(stream, "12345");
}
}
@@ -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 Moq;
using Renci.SshNet.Common;
using Renci.SshNet.Security;
using Renci.SshNet.Tests.Common;
namespace Renci.SshNet.Tests.Classes
{
@@ -118,16 +118,8 @@ namespace Renci.SshNet.Tests.Classes
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();
}
+5 -2
View File
@@ -49,9 +49,12 @@ namespace Renci.SshNet.Tests.Common
}
}
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}'.");
}
}
}
@@ -4,24 +4,9 @@
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Include="..\Data\*.txt" LinkBase="Data" />
<EmbeddedResource Include="..\Data\*" LinkBase="Data" />
</ItemGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '16.0' ">
<!-- Look for Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll in VS 2019 Enterprise -->
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
<!-- Fall back to VS 2019 Professional -->
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2019\Professional\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
<!-- Fall back to VS 2019 Community -->
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2019\Community\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
<!-- Fall back to VS 2019 Preview -->
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2019\Preview\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />