126 lines
3.4 KiB
C#
126 lines
3.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.Authentication
|
|
{
|
|
// Token: 0x02001FCB RID: 8139
|
|
[Token(Token = "0x2001FCB")]
|
|
public static class DigestStore
|
|
{
|
|
// Token: 0x0600CEBA RID: 52922 RVA: 0x002F9C70 File Offset: 0x002F7E70
|
|
[Token(Token = "0x600CEBA")]
|
|
[Address(RVA = "0xA9FA30", Offset = "0xA9E830", VA = "0x180A9FA30")]
|
|
public static Digest Get(Uri uri)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
object locker = DigestStore.Locker;
|
|
int num2 = 0;
|
|
Dictionary<string, Digest> digests = DigestStore.Digests;
|
|
string host = uri.Host;
|
|
if (digests.TryGetValue(host, num2))
|
|
{
|
|
string host2 = uri.Host;
|
|
string host3 = uri.Host;
|
|
bool flag;
|
|
if (string.CompareOrdinal(host2, host3) == 0 && uri.GetHashCode() != 0 && num < uri.m_originalUnicodeString && !flag)
|
|
{
|
|
num++;
|
|
}
|
|
}
|
|
Monitor.Exit(locker);
|
|
}
|
|
while (num != 0);
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600CEBB RID: 52923 RVA: 0x002F9D0C File Offset: 0x002F7F0C
|
|
[Token(Token = "0x600CEBB")]
|
|
[Address(RVA = "0xA9F800", Offset = "0xA9E600", VA = "0x180A9F800")]
|
|
public static Digest GetOrCreate(Uri uri)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
object locker = DigestStore.Locker;
|
|
int num2 = 0;
|
|
Dictionary<string, Digest> digests = DigestStore.Digests;
|
|
string host = uri.Host;
|
|
if (!digests.TryGetValue(host, num2))
|
|
{
|
|
Dictionary<string, Digest> digests2 = DigestStore.Digests;
|
|
string host2 = uri.Host;
|
|
Digest digest;
|
|
digest.<Uri>k__BackingField = uri;
|
|
digest.<Algorithm>k__BackingField = "md5";
|
|
digests2.Add(host2, digest);
|
|
}
|
|
Monitor.Exit(locker);
|
|
}
|
|
while (num != 0);
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600CEBC RID: 52924 RVA: 0x002F9D88 File Offset: 0x002F7F88
|
|
[Token(Token = "0x600CEBC")]
|
|
[Address(RVA = "0xA9FCA0", Offset = "0xA9EAA0", VA = "0x180A9FCA0")]
|
|
public static void Remove(Uri uri)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
object locker = DigestStore.Locker;
|
|
Dictionary<string, Digest> digests = DigestStore.Digests;
|
|
string host = uri.Host;
|
|
bool flag = digests.Remove(host);
|
|
Monitor.Exit(locker);
|
|
}
|
|
while (num != 0);
|
|
}
|
|
|
|
// Token: 0x0600CEBD RID: 52925 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x600CEBD")]
|
|
[Address(RVA = "0xA9F620", Offset = "0xA9E420", VA = "0x180A9F620")]
|
|
public static string FindBest(List<string> authHeaders)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x0600CEBE RID: 52926 RVA: 0x002F9DCC File Offset: 0x002F7FCC
|
|
// Note: this type is marked as 'beforefieldinit'.
|
|
[Token(Token = "0x600CEBE")]
|
|
[Address(RVA = "0xA9FDE0", Offset = "0xA9EBE0", VA = "0x180A9FDE0")]
|
|
static DigestStore()
|
|
{
|
|
string[] array = new string[2];
|
|
if ("digest" != 0)
|
|
{
|
|
}
|
|
array[0] = "digest";
|
|
if ("basic" != 0)
|
|
{
|
|
}
|
|
array[1] = "basic";
|
|
DigestStore.SupportedAlgorithms = array;
|
|
}
|
|
|
|
// Token: 0x04008423 RID: 33827
|
|
[Token(Token = "0x4008423")]
|
|
private static Dictionary<string, Digest> Digests = new Dictionary();
|
|
|
|
// Token: 0x04008424 RID: 33828
|
|
[Token(Token = "0x4008424")]
|
|
private static object Locker = new object();
|
|
|
|
// Token: 0x04008425 RID: 33829
|
|
[Token(Token = "0x4008425")]
|
|
private static string[] SupportedAlgorithms;
|
|
}
|
|
}
|