Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix newline characters in comment #1550

Merged
merged 1 commit into from
Dec 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Renci.SshNet/PrivateKeyFile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ namespace Renci.SshNet
public partial class PrivateKeyFile : IPrivateKeySource, IDisposable
{
private const string PrivateKeyPattern = @"^-+ *BEGIN (?<keyName>\w+( \w+)*) *-+\r?\n((Proc-Type: 4,ENCRYPTED\r?\nDEK-Info: (?<cipherName>[A-Z0-9-]+),(?<salt>[a-fA-F0-9]+)\r?\n\r?\n)|(Comment: ""?[^\r\n]*""?\r?\n))?(?<data>([a-zA-Z0-9/+=]{1,80}\r?\n)+)(\r?\n)?-+ *END \k<keyName> *-+";
private const string PuTTYPrivateKeyPattern = @"^(?<keyName>PuTTY-User-Key-File)-(?<version>\d+): (?<algorithmName>[\w-]+)\r?\nEncryption: (?<encryptionType>[\w-]+)\r?\nComment: (?<comment>.*)\r?\nPublic-Lines: \d+\r?\n(?<publicKey>(([a-zA-Z0-9/+=]{1,64})\r?\n)+)(Key-Derivation: (?<argon2Type>\w+)\r?\nArgon2-Memory: (?<argon2Memory>\d+)\r?\nArgon2-Passes: (?<argon2Passes>\d+)\r?\nArgon2-Parallelism: (?<argon2Parallelism>\d+)\r?\nArgon2-Salt: (?<argon2Salt>[a-fA-F0-9]+)\r?\n)?Private-Lines: \d+\r?\n(?<data>(([a-zA-Z0-9/+=]{1,64})\r?\n)+)+Private-MAC: (?<mac>[a-fA-F0-9]+)";
private const string PuTTYPrivateKeyPattern = @"^(?<keyName>PuTTY-User-Key-File)-(?<version>\d+): (?<algorithmName>[\w-]+)\r?\nEncryption: (?<encryptionType>[\w-]+)\r?\nComment: (?<comment>.*?)\r?\nPublic-Lines: \d+\r?\n(?<publicKey>(([a-zA-Z0-9/+=]{1,64})\r?\n)+)(Key-Derivation: (?<argon2Type>\w+)\r?\nArgon2-Memory: (?<argon2Memory>\d+)\r?\nArgon2-Passes: (?<argon2Passes>\d+)\r?\nArgon2-Parallelism: (?<argon2Parallelism>\d+)\r?\nArgon2-Salt: (?<argon2Salt>[a-fA-F0-9]+)\r?\n)?Private-Lines: \d+\r?\n(?<data>(([a-zA-Z0-9/+=]{1,64})\r?\n)+)+Private-MAC: (?<mac>[a-fA-F0-9]+)";
private const string CertificatePattern = @"(?<type>[-\w]+@openssh\.com)\s(?<data>[a-zA-Z0-9\/+=]*)(\s+(?<comment>.*))?";

#if NET7_0_OR_GREATER
Expand Down
42 changes: 21 additions & 21 deletions test/Data/Key.PuTTY2.RSA.Encrypted.12345.ppk
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,25 @@ PuTTY-User-Key-File-2: ssh-rsa
Encryption: aes256-cbc
Comment: Key.OPENSSH.RSA
Public-Lines: 6
AAAAB3NzaC1yc2EAAAADAQABAAABAQDtbs6KCLsePWaxraXweKYs/NqBWYT8Kx4w
oJHE8xO1ZO+hl0y3uF+S2FYDuHbRruhJJ4fa3sWp46lU0YVi9FXcFVawpkkxFx0m
JMJkCMffytiT3Re9neYqso3/d9xCyHg6I+dapPodKqDXiiJXxQ+1TCcTrmyRZLG/
G34QuVWkKobm8TY78Y0MpATsXNi3q9CKEwVIAEGqO9q7SaNfTTYpiIIyvq+CXxdi
QMDifn4nJBJDHOed+sv3dmhqq6NE/ZtPlSFeBvOvwcXC6pAa9REQJlNMjwGK//q0
4if3HaERo3q/EMu1dz30TZ3o1bpx2uLBoYUniOBVYMTmZTTTpd09
AAAAB3NzaC1yc2EAAAABJQAAAQEAhV8n1KDNo6N3dkNbIf8PhKNxxb68Sgy9abub
6Q17ozTKKFOVyKTy2Du3ZJ03ep8J3/4OzCbmH88KKcp3MtdWCX6DhEB8Tt7MMcL4
7KgLQoHshe+DH09XmdYBmPNCdT6mqOB3UaoEzHDUspP/dAsIaOAlu31gqXhDb4I3
SL5X5N3cACm+C33aKlL21XZTB+WJtFvl6DslkbLOaELeji25ZB5ALU6+iyUvMEqQ
nWHRkpZENaoaP3Na6q5OJKEGKd+ur5MuehlxMvgvNIfi431IHZmY9IrxMDryztYd
BctztWzHS8Fo3REj5jvIXzxK9hK5txFmi3TCaI5js/XdYwZr7Q==
Private-Lines: 14
i38C+M7U/qOvzvOdtEC60v3cn354TMdDpAVk22UuNgQY7u6avW907mUuXjqU7Tjy
G66uQ+6vOnaQR6xTYWn3uI1YMWGsRylLiNZ/O/dIpITv+9xuU5U8qB+nFIH3iD6U
cBuumRKH2k2IxYVBO1nKTt3T3HejIIy3JlFifs9ylahgPD1m8jIfNARnYB09fOQr
g+nV4YNRntOqpf+cUpc+TGnz35oa9O+6fzJY/2hdkOJ+fUBdlYmcKEZZ9PgYHAlM
+aoQhL1vRoqZqzfHZYcMUBlmbRMgWiPfFB59nU0QbZ2uClbFxGGehBnCAsnd8Nni
TafVYckp3kCNLmctrmorsRgM/IXWcdqmrGJO5sHEsutQqs9Dp3KM9xhRP23xoGnZ
ssNw1qEAOP/k9JTCID/oeRE7RvAEMEdCs3l6FHKDvInR5xDuNrGehHdc3vGqklkC
1kBER2vWRX+LANNXcfISRDNajC6XKsDo6aGJRPTMj/tbVJNbjP4Oi6fwcFizV9Z0
yJiw1yV5AjUc8nG3cuTb1wNZ8DTPccq+W6ir8U+Vmdc67Mhxas6e2UKa5nXC+HqC
jtM1oCPpxNyRoJSuxcWrwcs/yEhFfSOBU9PFsbJcX5i+ilZ2ZSipFc2fOcSx/6RC
U36mELhmHPINoTDOc6qvL/fXRkqtoQGZm2UHoINVLkeMu3ERkxxDk9kFqRcSdFd+
nSMJt9d3YRSsjhzvro65ugKiYBubugon24frB3nARI9zoe0BZB9H/RW3RPlMT8d9
H+gElqyiYWZKKJs+Qht6NY0Hv1gp9erMIcTTts/w7ZRc5oS8pLCKOuB9wKYepJm7
5I0x8qVotiHglDJ7PPbP+3UzrJvGp2nwPzj4qokCZKFhPYNYiCY16V0LaBRoE3mQ
Private-MAC: 191817999553b67a7516223647e90e0b17db8918
7aKnXgEFpI13WMiMB/Fxh4TZU56/tVDjrSFZOacypsS8DMdw+ovbblDRD9tzv0XO
1tRuV0K/IIkHu7PrszeWzq3MS1QMmOyOYePZtzIfEyAOBSjR4humXZKw7JZE313u
Lea/o4PgaDJAVtWTsF42o+0bNmYL3NIUNawTb+t61hVk8cEwJm2evo/ZzLE9uCeR
X6n8MJ41p/6803oCg6o7V2Qwk9Zadv6UzQDv1fLB18ZjD40FfyEWDe1jWbIZ0H1r
4XS8MIdAVXwkhqMhwzzXPtT9CdEFHY5tR0L3mKq7TrcRwJTuUbct5uHe7HeoeNWN
NjCxj9MazAMaqGe43q/FwPPXbYY7OvImFcUWFJO/k9ysVqxg5HlgLBvsl9gtXGRz
kaQgHP+2iM9GjxlJcCbviE7yD92zbfbR5moIeINqFa7TMlXGWCteJ00qyh3RbUVb
D1yJnBzKJ7S7Y3a4T861d4d5OHVhPVBpcGB43FZC0h6qChqZ0eZtRx4J6e+f/32n
6g4yvja/0nGUkrHvutfOYV0hTShGYXrIKxgBu7NYxgHdQnUnxq0e2kF9xtskXZVb
pk6ZaDbNHQW7AvUebJFnoPCPjvF8UVFJ2jimsro4PECViH3Sj9PoFpLMBmWVomtz
+EXkrISVIdudQVZPXtDp3/oRuW5Zfj5hfrxG9lsuxxtXJoBBXVVhxOVpCAzyw6lI
KN5ZdDry7GuPMDp3JBdqtAOrz2p9Z2XJp3NCgwuNjPu3qGngH/DGHi1ZA6rhzyHk
3tT96ww6Lmgiza1/d+DGNgYiRWB0aF5+Gj4ixb6jIv/OhCxHPL8dEN1HxxwanrUp
vGbhRv5xDWdf7eYuGyCUnkrlNjC7jvEOQNwx6KxLGzLcSdbIRmwmtjbbWNFk6qJv
Private-MAC: 63bf8fb4565012276cdf442031308b2157b79f67