<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetPrivateKeyPuTTYRegex_6
sealed class <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetPrivateKeyPuTTYRegex_6 : Regex
using System.CodeDom.Compiler;
using System.Collections;
using System.Runtime.CompilerServices;
namespace System.Text.RegularExpressions.Generated
{
[GeneratedCode("System.Text.RegularExpressions.Generator", "8.0.12.16413")]
internal sealed class <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetPrivateKeyPuTTYRegex_6 : Regex
{
private sealed class RunnerFactory : RegexRunnerFactory
{
private sealed class Runner : RegexRunner
{
protected override void Scan(ReadOnlySpan<char> inputSpan)
{
while (TryFindNextPossibleStartingPosition(inputSpan) && !TryMatchAtCurrentPosition(inputSpan) && runtextpos != inputSpan.Length) {
runtextpos++;
if (<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_hasTimeout)
CheckTimeout();
}
}
private bool TryFindNextPossibleStartingPosition(ReadOnlySpan<char> inputSpan)
{
int num = runtextpos;
if (num <= inputSpan.Length - 100) {
if (num <= 0 || inputSpan[num - 1] == '\n')
goto IL_005a;
int num2 = inputSpan.Slice(num).IndexOf('\n');
if ((uint)num2 <= inputSpan.Length - num - 1) {
num += num2 + 1;
if (num <= inputSpan.Length - 100)
goto IL_005a;
}
}
goto IL_0081;
IL_005a:
int num3 = inputSpan.Slice(num).IndexOf("PuTTY-User-Key-File-");
if (num3 >= 0) {
runtextpos = num + num3;
return true;
}
goto IL_0081;
IL_0081:
runtextpos = inputSpan.Length;
return false;
}
private bool TryMatchAtCurrentPosition(ReadOnlySpan<char> inputSpan)
{
int runtextpos = base.runtextpos;
int start = runtextpos;
int num = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;
int num6 = 0;
int num7 = 0;
int num8 = 0;
int num9 = 0;
int num10 = 0;
int num11 = 0;
int num12 = 0;
int num13 = 0;
int pos = 0;
ReadOnlySpan<char> span = inputSpan.Slice(runtextpos);
if (runtextpos > 0 && inputSpan[runtextpos - 1] != '\n') {
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
num = runtextpos;
if (!span.StartsWith("PuTTY-User-Key-File")) {
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
runtextpos += 19;
span = inputSpan.Slice(runtextpos);
Capture(1, num, runtextpos);
if (span.IsEmpty || span[0] != '-') {
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
runtextpos++;
span = inputSpan.Slice(runtextpos);
num2 = runtextpos;
int i;
for (i = 0; (uint)i < (uint)span.Length && char.IsDigit(span[i]); i++) {
}
if (i == 0) {
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
span = span.Slice(i);
runtextpos += i;
Capture(2, num2, runtextpos);
if (!span.StartsWith(": ")) {
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
runtextpos += 2;
span = inputSpan.Slice(runtextpos);
num4 = runtextpos;
int j;
for (j = 0; (uint)j < (uint)span.Length; j++) {
char c;
if ((((c = span[j]) < '') ? (" Ͽ蟿߿"[(int)c >> 4] & (1 << (c & 15))) : (RegexRunner.CharInClass(c, " \n-. \t ") ? 1 : 0)) == 0)
break;
}
if (j == 0) {
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
span = span.Slice(j);
runtextpos += j;
Capture(3, num4, runtextpos);
if (!span.IsEmpty && span[0] == '\r') {
span = span.Slice(1);
runtextpos++;
}
if (!span.StartsWith("\nEncryption: ")) {
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
runtextpos += 13;
span = inputSpan.Slice(runtextpos);
num5 = runtextpos;
int k;
for (k = 0; (uint)k < (uint)span.Length; k++) {
char c;
if ((((c = span[k]) < '') ? (" Ͽ蟿߿"[(int)c >> 4] & (1 << (c & 15))) : (RegexRunner.CharInClass(c, " \n-. \t ") ? 1 : 0)) == 0)
break;
}
if (k == 0) {
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
span = span.Slice(k);
runtextpos += k;
Capture(4, num5, runtextpos);
if (!span.IsEmpty && span[0] == '\r') {
span = span.Slice(1);
runtextpos++;
}
if (!span.StartsWith("\nComment: ")) {
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
runtextpos += 10;
span = inputSpan.Slice(runtextpos);
num6 = runtextpos;
num9 = runtextpos;
while (true) {
num8 = Crawlpos();
Capture(5, num6, runtextpos);
if (!span.IsEmpty && span[0] == '\r') {
span = span.Slice(1);
runtextpos++;
}
if (span.StartsWith("\nPublic-Lines: ")) {
runtextpos += 15;
span = inputSpan.Slice(runtextpos);
int l;
for (l = 0; (uint)l < (uint)span.Length && char.IsDigit(span[l]); l++) {
}
if (l != 0) {
span = span.Slice(l);
runtextpos += l;
if (!span.IsEmpty && span[0] == '\r') {
span = span.Slice(1);
runtextpos++;
}
if (!span.IsEmpty && span[0] == '\n') {
runtextpos++;
span = inputSpan.Slice(runtextpos);
num7 = runtextpos;
num10 = 0;
while (true) {
<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPush(ref runstack, ref pos, Crawlpos(), runtextpos);
num10++;
int m;
for (m = 0; m < 64 && (uint)m < (uint)span.Length; m++) {
char c;
if ((c = span[m]) >= '{')
break;
if ((" 蠀⏿߿߿"[(int)c >> 4] & (1 << (c & 15))) == 0)
break;
}
if (m == 0)
break;
span = span.Slice(m);
runtextpos += m;
if (!span.IsEmpty && span[0] == '\r') {
span = span.Slice(1);
runtextpos++;
}
if (span.IsEmpty || span[0] != '\n')
break;
runtextpos++;
span = inputSpan.Slice(runtextpos);
}
while (--num10 >= 0) {
runtextpos = runstack[--pos];
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(runstack[--pos]);
span = inputSpan.Slice(runtextpos);
if (num10 == 0)
break;
Capture(6, num7, runtextpos);
num11 = 0;
while (true) {
<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPush(ref runstack, ref pos, Crawlpos(), runtextpos);
num11++;
if (span.StartsWith("Key-Derivation: ")) {
runtextpos += 16;
span = inputSpan.Slice(runtextpos);
int start2 = runtextpos;
int n;
for (n = 0; (uint)n < (uint)span.Length && <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.IsWordChar(span[n]); n++) {
}
if (n != 0) {
span = span.Slice(n);
runtextpos += n;
Capture(7, start2, runtextpos);
if (!span.IsEmpty && span[0] == '\r') {
span = span.Slice(1);
runtextpos++;
}
if (span.StartsWith("\nArgon2-Memory: ")) {
runtextpos += 16;
span = inputSpan.Slice(runtextpos);
int start3 = runtextpos;
int num14;
for (num14 = 0; (uint)num14 < (uint)span.Length && char.IsDigit(span[num14]); num14++) {
}
if (num14 != 0) {
span = span.Slice(num14);
runtextpos += num14;
Capture(8, start3, runtextpos);
if (!span.IsEmpty && span[0] == '\r') {
span = span.Slice(1);
runtextpos++;
}
if (span.StartsWith("\nArgon2-Passes: ")) {
runtextpos += 16;
span = inputSpan.Slice(runtextpos);
int start4 = runtextpos;
int num15;
for (num15 = 0; (uint)num15 < (uint)span.Length && char.IsDigit(span[num15]); num15++) {
}
if (num15 != 0) {
span = span.Slice(num15);
runtextpos += num15;
Capture(9, start4, runtextpos);
if (!span.IsEmpty && span[0] == '\r') {
span = span.Slice(1);
runtextpos++;
}
if (span.StartsWith("\nArgon2-Parallelism: ")) {
runtextpos += 21;
span = inputSpan.Slice(runtextpos);
int start5 = runtextpos;
int num16;
for (num16 = 0; (uint)num16 < (uint)span.Length && char.IsDigit(span[num16]); num16++) {
}
if (num16 != 0) {
span = span.Slice(num16);
runtextpos += num16;
Capture(10, start5, runtextpos);
if (!span.IsEmpty && span[0] == '\r') {
span = span.Slice(1);
runtextpos++;
}
if (span.StartsWith("\nArgon2-Salt: ")) {
runtextpos += 14;
span = inputSpan.Slice(runtextpos);
int start6 = runtextpos;
int num17 = span.IndexOfAnyExcept(<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_asciiHexDigits);
if (num17 < 0)
num17 = span.Length;
if (num17 != 0) {
span = span.Slice(num17);
runtextpos += num17;
Capture(11, start6, runtextpos);
if (!span.IsEmpty && span[0] == '\r') {
span = span.Slice(1);
runtextpos++;
}
if (!span.IsEmpty && span[0] == '\n') {
runtextpos++;
span = inputSpan.Slice(runtextpos);
if (num11 == 0)
continue;
goto IL_087b;
}
}
}
}
}
}
}
}
}
}
}
goto IL_0841;
IL_087b:
if (span.StartsWith("Private-Lines: ")) {
runtextpos += 15;
span = inputSpan.Slice(runtextpos);
int num18;
for (num18 = 0; (uint)num18 < (uint)span.Length && char.IsDigit(span[num18]); num18++) {
}
if (num18 != 0) {
span = span.Slice(num18);
runtextpos += num18;
if (!span.IsEmpty && span[0] == '\r') {
span = span.Slice(1);
runtextpos++;
}
if (!span.IsEmpty && span[0] == '\n') {
runtextpos++;
span = inputSpan.Slice(runtextpos);
num12 = 0;
while (true) {
<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPush(ref runstack, ref pos, Crawlpos(), runtextpos);
num12++;
int num19 = runtextpos;
num13 = 0;
while (true) {
<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPush(ref runstack, ref pos, Crawlpos(), runtextpos);
num13++;
int num20;
for (num20 = 0; num20 < 64 && (uint)num20 < (uint)span.Length; num20++) {
char c;
if ((c = span[num20]) >= '{')
break;
if ((" 蠀⏿߿߿"[(int)c >> 4] & (1 << (c & 15))) == 0)
break;
}
if (num20 == 0)
break;
span = span.Slice(num20);
runtextpos += num20;
if (!span.IsEmpty && span[0] == '\r') {
span = span.Slice(1);
runtextpos++;
}
if (span.IsEmpty || span[0] != '\n')
break;
runtextpos++;
span = inputSpan.Slice(runtextpos);
}
while (true) {
if (--num13 >= 0) {
runtextpos = runstack[--pos];
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(runstack[--pos]);
span = inputSpan.Slice(runtextpos);
if (num13 != 0)
break;
}
if (--num12 >= 0) {
runtextpos = runstack[--pos];
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(runstack[--pos]);
span = inputSpan.Slice(runtextpos);
if (num12 != 0) {
if (span.StartsWith("Private-MAC: ")) {
runtextpos += 13;
span = inputSpan.Slice(runtextpos);
num3 = runtextpos;
int num21 = span.IndexOfAnyExcept(<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_asciiHexDigits);
if (num21 < 0)
num21 = span.Length;
if (num21 != 0) {
span = span.Slice(num21);
runtextpos += num21;
Capture(13, num3, runtextpos);
base.runtextpos = runtextpos;
Capture(0, start, runtextpos);
return true;
}
}
if (<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_hasTimeout)
CheckTimeout();
if (num12 != 0) {
num19 = runstack[--pos];
num13 = runstack[--pos];
if (<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_hasTimeout)
CheckTimeout();
continue;
}
}
}
goto IL_0841;
}
<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPush(ref runstack, ref pos, num13);
Capture(12, num19, runtextpos);
<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.StackPush(ref runstack, ref pos, num19);
}
}
}
}
goto IL_0841;
IL_0841:
if (--num11 < 0)
break;
runtextpos = runstack[--pos];
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(runstack[--pos]);
span = inputSpan.Slice(runtextpos);
goto IL_087b;
}
}
}
}
}
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(num8);
if (<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_hasTimeout)
CheckTimeout();
runtextpos = num9;
span = inputSpan.Slice(runtextpos);
if (span.IsEmpty || span[0] == '\n')
break;
runtextpos++;
span = inputSpan.Slice(runtextpos);
num9 = runtextpos;
}
<TryMatchAtCurrentPosition>g__UncaptureUntil|2_0(0);
return false;
}
}
[NullableContext(1)]
protected override RegexRunner CreateInstance()
{
return new Runner();
}
}
[Nullable(1)]
internal static readonly <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetPrivateKeyPuTTYRegex_6 Instance = new <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetPrivateKeyPuTTYRegex_6();
private <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__GetPrivateKeyPuTTYRegex_6()
{
pattern = "^(?<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]+)";
roptions = (RegexOptions.Multiline | RegexOptions.ExplicitCapture);
Regex.ValidateMatchTimeout(<RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_defaultTimeout);
internalMatchTimeout = <RegexGenerator_g>FF02E8C37B99F41659B0026E2B1005AC8CE9F303D9F9E176C498C4EA009567923__Utilities.s_defaultTimeout;
factory = new RunnerFactory();
base.CapNames = new Hashtable {
{
"0",
0
},
{
"algorithmName",
3
},
{
"argon2Memory",
8
},
{
"argon2Parallelism",
10
},
{
"argon2Passes",
9
},
{
"argon2Salt",
11
},
{
"argon2Type",
7
},
{
"comment",
5
},
{
"data",
12
},
{
"encryptionType",
4
},
{
"keyName",
1
},
{
"mac",
13
},
{
"publicKey",
6
},
{
"version",
2
}
};
capslist = new string[14] {
"0",
"keyName",
"version",
"algorithmName",
"encryptionType",
"comment",
"publicKey",
"argon2Type",
"argon2Memory",
"argon2Passes",
"argon2Parallelism",
"argon2Salt",
"data",
"mac"
};
capsize = 14;
}
}
}