瀏覽代碼

fix newline characters in PuTTY key file comment (#1550)

Varorbc 10 月之前
父節點
當前提交
ee054f4d31
共有 2 個文件被更改,包括 22 次插入22 次删除
  1. 1 1
      src/Renci.SshNet/PrivateKeyFile.cs
  2. 21 21
      test/Data/Key.PuTTY2.RSA.Encrypted.12345.ppk

+ 1 - 1
src/Renci.SshNet/PrivateKeyFile.cs

@@ -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

+ 21 - 21
test/Data/Key.PuTTY2.RSA.Encrypted.12345.ppk

@@ -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