m
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.Authentication
|
||||
{
|
||||
// Token: 0x020020A8 RID: 8360
|
||||
[Token(Token = "0x20020A8")]
|
||||
public enum AuthenticationTypes
|
||||
{
|
||||
// Token: 0x040085CB RID: 34251
|
||||
[Token(Token = "0x40085CB")]
|
||||
Unknown,
|
||||
// Token: 0x040085CC RID: 34252
|
||||
[Token(Token = "0x40085CC")]
|
||||
Basic,
|
||||
// Token: 0x040085CD RID: 34253
|
||||
[Token(Token = "0x40085CD")]
|
||||
Digest
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.Authentication
|
||||
{
|
||||
// Token: 0x020020A9 RID: 8361
|
||||
[Token(Token = "0x20020A9")]
|
||||
public sealed class Credentials
|
||||
{
|
||||
// Token: 0x17002182 RID: 8578
|
||||
// (get) Token: 0x0600D266 RID: 53862 RVA: 0x00301698 File Offset: 0x002FF898
|
||||
// (set) Token: 0x0600D267 RID: 53863 RVA: 0x003016AC File Offset: 0x002FF8AC
|
||||
[Token(Token = "0x17002182")]
|
||||
public AuthenticationTypes Type
|
||||
{
|
||||
[Token(Token = "0x600D266")]
|
||||
[Address(RVA = "0x40F000", Offset = "0x40E000", VA = "0x18040F000")]
|
||||
get;
|
||||
[Token(Token = "0x600D267")]
|
||||
[Address(RVA = "0x470D10", Offset = "0x46FD10", VA = "0x180470D10")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x17002183 RID: 8579
|
||||
// (get) Token: 0x0600D268 RID: 53864 RVA: 0x003016C0 File Offset: 0x002FF8C0
|
||||
// (set) Token: 0x0600D269 RID: 53865 RVA: 0x003016D4 File Offset: 0x002FF8D4
|
||||
[Token(Token = "0x17002183")]
|
||||
public string UserName
|
||||
{
|
||||
[Token(Token = "0x600D268")]
|
||||
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0")]
|
||||
get;
|
||||
[Token(Token = "0x600D269")]
|
||||
[Address(RVA = "0x4157F0", Offset = "0x4147F0", VA = "0x1804157F0")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x17002184 RID: 8580
|
||||
// (get) Token: 0x0600D26A RID: 53866 RVA: 0x003016E8 File Offset: 0x002FF8E8
|
||||
// (set) Token: 0x0600D26B RID: 53867 RVA: 0x003016FC File Offset: 0x002FF8FC
|
||||
[Token(Token = "0x17002184")]
|
||||
public string Password
|
||||
{
|
||||
[Token(Token = "0x600D26A")]
|
||||
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0")]
|
||||
get;
|
||||
[Token(Token = "0x600D26B")]
|
||||
[Address(RVA = "0x415810", Offset = "0x414810", VA = "0x180415810")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x0600D26C RID: 53868 RVA: 0x00301710 File Offset: 0x002FF910
|
||||
[Token(Token = "0x600D26C")]
|
||||
[Address(RVA = "0x169C830", Offset = "0x169B830", VA = "0x18169C830")]
|
||||
public Credentials(string userName, string password)
|
||||
{
|
||||
this.UserName = userName;
|
||||
this.Password = password;
|
||||
this.Type = (AuthenticationTypes)((ulong)0L);
|
||||
}
|
||||
|
||||
// Token: 0x0600D26D RID: 53869 RVA: 0x0030173C File Offset: 0x002FF93C
|
||||
[Token(Token = "0x600D26D")]
|
||||
[Address(RVA = "0xA83C00", Offset = "0xA82C00", VA = "0x180A83C00")]
|
||||
public Credentials(AuthenticationTypes type, string userName, string password)
|
||||
{
|
||||
int num = 0;
|
||||
base.FieldGetter(num, userName, password);
|
||||
this.Type = type;
|
||||
this.UserName = userName;
|
||||
this.Password = password;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,480 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using BestHTTP.Extensions;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.Authentication
|
||||
{
|
||||
// Token: 0x020020AA RID: 8362
|
||||
[Token(Token = "0x20020AA")]
|
||||
public sealed class Digest
|
||||
{
|
||||
// Token: 0x17002185 RID: 8581
|
||||
// (get) Token: 0x0600D26E RID: 53870 RVA: 0x0030176C File Offset: 0x002FF96C
|
||||
// (set) Token: 0x0600D26F RID: 53871 RVA: 0x00301780 File Offset: 0x002FF980
|
||||
[Token(Token = "0x17002185")]
|
||||
public Uri Uri
|
||||
{
|
||||
[Token(Token = "0x600D26E")]
|
||||
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530")]
|
||||
get;
|
||||
[Token(Token = "0x600D26F")]
|
||||
[Address(RVA = "0x415800", Offset = "0x414800", VA = "0x180415800")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x17002186 RID: 8582
|
||||
// (get) Token: 0x0600D270 RID: 53872 RVA: 0x00301794 File Offset: 0x002FF994
|
||||
// (set) Token: 0x0600D271 RID: 53873 RVA: 0x003017A8 File Offset: 0x002FF9A8
|
||||
[Token(Token = "0x17002186")]
|
||||
public AuthenticationTypes Type
|
||||
{
|
||||
[Token(Token = "0x600D270")]
|
||||
[Address(RVA = "0x411540", Offset = "0x410540", VA = "0x180411540")]
|
||||
get;
|
||||
[Token(Token = "0x600D271")]
|
||||
[Address(RVA = "0x5F1910", Offset = "0x5F0910", VA = "0x1805F1910")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x17002187 RID: 8583
|
||||
// (get) Token: 0x0600D272 RID: 53874 RVA: 0x003017BC File Offset: 0x002FF9BC
|
||||
// (set) Token: 0x0600D273 RID: 53875 RVA: 0x003017D0 File Offset: 0x002FF9D0
|
||||
[Token(Token = "0x17002187")]
|
||||
public string Realm
|
||||
{
|
||||
[Token(Token = "0x600D272")]
|
||||
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0")]
|
||||
get;
|
||||
[Token(Token = "0x600D273")]
|
||||
[Address(RVA = "0x415810", Offset = "0x414810", VA = "0x180415810")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x17002188 RID: 8584
|
||||
// (get) Token: 0x0600D274 RID: 53876 RVA: 0x003017E4 File Offset: 0x002FF9E4
|
||||
// (set) Token: 0x0600D275 RID: 53877 RVA: 0x003017F8 File Offset: 0x002FF9F8
|
||||
[Token(Token = "0x17002188")]
|
||||
public bool Stale
|
||||
{
|
||||
[Token(Token = "0x600D274")]
|
||||
[Address(RVA = "0x51F260", Offset = "0x51E260", VA = "0x18051F260")]
|
||||
get;
|
||||
[Token(Token = "0x600D275")]
|
||||
[Address(RVA = "0x51F2B0", Offset = "0x51E2B0", VA = "0x18051F2B0")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x17002189 RID: 8585
|
||||
// (get) Token: 0x0600D276 RID: 53878 RVA: 0x0030180C File Offset: 0x002FFA0C
|
||||
// (set) Token: 0x0600D277 RID: 53879 RVA: 0x00301820 File Offset: 0x002FFA20
|
||||
[Token(Token = "0x17002189")]
|
||||
private string Nonce
|
||||
{
|
||||
[Token(Token = "0x600D276")]
|
||||
[Address(RVA = "0x4157E0", Offset = "0x4147E0", VA = "0x1804157E0")]
|
||||
get;
|
||||
[Token(Token = "0x600D277")]
|
||||
[Address(RVA = "0x415830", Offset = "0x414830", VA = "0x180415830")]
|
||||
set;
|
||||
}
|
||||
|
||||
// Token: 0x1700218A RID: 8586
|
||||
// (get) Token: 0x0600D278 RID: 53880 RVA: 0x00301834 File Offset: 0x002FFA34
|
||||
// (set) Token: 0x0600D279 RID: 53881 RVA: 0x00301848 File Offset: 0x002FFA48
|
||||
[Token(Token = "0x1700218A")]
|
||||
private string Opaque
|
||||
{
|
||||
[Token(Token = "0x600D278")]
|
||||
[Address(RVA = "0x41CEF0", Offset = "0x41BEF0", VA = "0x18041CEF0")]
|
||||
get;
|
||||
[Token(Token = "0x600D279")]
|
||||
[Address(RVA = "0x41CFF0", Offset = "0x41BFF0", VA = "0x18041CFF0")]
|
||||
set;
|
||||
}
|
||||
|
||||
// Token: 0x1700218B RID: 8587
|
||||
// (get) Token: 0x0600D27A RID: 53882 RVA: 0x0030185C File Offset: 0x002FFA5C
|
||||
// (set) Token: 0x0600D27B RID: 53883 RVA: 0x00301870 File Offset: 0x002FFA70
|
||||
[Token(Token = "0x1700218B")]
|
||||
private string Algorithm
|
||||
{
|
||||
[Token(Token = "0x600D27A")]
|
||||
[Address(RVA = "0x417680", Offset = "0x416680", VA = "0x180417680")]
|
||||
get;
|
||||
[Token(Token = "0x600D27B")]
|
||||
[Address(RVA = "0x417960", Offset = "0x416960", VA = "0x180417960")]
|
||||
set;
|
||||
}
|
||||
|
||||
// Token: 0x1700218C RID: 8588
|
||||
// (get) Token: 0x0600D27C RID: 53884 RVA: 0x00301884 File Offset: 0x002FFA84
|
||||
// (set) Token: 0x0600D27D RID: 53885 RVA: 0x00301898 File Offset: 0x002FFA98
|
||||
[Token(Token = "0x1700218C")]
|
||||
public List<string> ProtectedUris
|
||||
{
|
||||
[Token(Token = "0x600D27C")]
|
||||
[Address(RVA = "0x4975A0", Offset = "0x4965A0", VA = "0x1804975A0")]
|
||||
get;
|
||||
[Token(Token = "0x600D27D")]
|
||||
[Address(RVA = "0x55BCF0", Offset = "0x55ACF0", VA = "0x18055BCF0")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x1700218D RID: 8589
|
||||
// (get) Token: 0x0600D27E RID: 53886 RVA: 0x003018AC File Offset: 0x002FFAAC
|
||||
// (set) Token: 0x0600D27F RID: 53887 RVA: 0x003018C0 File Offset: 0x002FFAC0
|
||||
[Token(Token = "0x1700218D")]
|
||||
private string QualityOfProtections
|
||||
{
|
||||
[Token(Token = "0x600D27E")]
|
||||
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0")]
|
||||
get;
|
||||
[Token(Token = "0x600D27F")]
|
||||
[Address(RVA = "0x55BCE0", Offset = "0x55ACE0", VA = "0x18055BCE0")]
|
||||
set;
|
||||
}
|
||||
|
||||
// Token: 0x1700218E RID: 8590
|
||||
// (get) Token: 0x0600D280 RID: 53888 RVA: 0x003018D4 File Offset: 0x002FFAD4
|
||||
// (set) Token: 0x0600D281 RID: 53889 RVA: 0x003018E8 File Offset: 0x002FFAE8
|
||||
[Token(Token = "0x1700218E")]
|
||||
private int NonceCount
|
||||
{
|
||||
[Token(Token = "0x600D280")]
|
||||
[Address(RVA = "0x56DD20", Offset = "0x56CD20", VA = "0x18056DD20")]
|
||||
get;
|
||||
[Token(Token = "0x600D281")]
|
||||
[Address(RVA = "0x56DEE0", Offset = "0x56CEE0", VA = "0x18056DEE0")]
|
||||
set;
|
||||
}
|
||||
|
||||
// Token: 0x1700218F RID: 8591
|
||||
// (get) Token: 0x0600D282 RID: 53890 RVA: 0x003018FC File Offset: 0x002FFAFC
|
||||
// (set) Token: 0x0600D283 RID: 53891 RVA: 0x00301910 File Offset: 0x002FFB10
|
||||
[Token(Token = "0x1700218F")]
|
||||
private string HA1Sess
|
||||
{
|
||||
[Token(Token = "0x600D282")]
|
||||
[Address(RVA = "0x417720", Offset = "0x416720", VA = "0x180417720")]
|
||||
get;
|
||||
[Token(Token = "0x600D283")]
|
||||
[Address(RVA = "0x417A20", Offset = "0x416A20", VA = "0x180417A20")]
|
||||
set;
|
||||
}
|
||||
|
||||
// Token: 0x0600D284 RID: 53892 RVA: 0x00301924 File Offset: 0x002FFB24
|
||||
[Token(Token = "0x600D284")]
|
||||
[Address(RVA = "0x169E7E0", Offset = "0x169D7E0", VA = "0x18169E7E0")]
|
||||
internal Digest(Uri uri)
|
||||
{
|
||||
this.Uri = uri;
|
||||
this.Algorithm = "md5";
|
||||
}
|
||||
|
||||
// Token: 0x0600D285 RID: 53893 RVA: 0x0030194C File Offset: 0x002FFB4C
|
||||
[Token(Token = "0x600D285")]
|
||||
[Address(RVA = "0x169E360", Offset = "0x169D360", VA = "0x18169E360")]
|
||||
public void ParseChallange(string header)
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
this.<Type>k__BackingField = (AuthenticationTypes)num;
|
||||
this.<Stale>k__BackingField = num != 0;
|
||||
this.<Opaque>k__BackingField = num;
|
||||
this.<HA1Sess>k__BackingField = num;
|
||||
this.<NonceCount>k__BackingField = num;
|
||||
this.<QualityOfProtections>k__BackingField = num;
|
||||
List<string> list = this.<ProtectedUris>k__BackingField;
|
||||
if (list != 0)
|
||||
{
|
||||
list.Clear();
|
||||
}
|
||||
List<HeaderValue> <Values>k__BackingField = new WWWAuthenticateHeaderParser(header).<Values>k__BackingField;
|
||||
bool flag;
|
||||
if (flag)
|
||||
{
|
||||
int stringLength = header.m_stringLength;
|
||||
int stringLength2;
|
||||
if (flag > true)
|
||||
{
|
||||
if (flag > true)
|
||||
{
|
||||
if (flag)
|
||||
{
|
||||
while (!flag)
|
||||
{
|
||||
}
|
||||
this.<QualityOfProtections>k__BackingField = flag;
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
while (!flag)
|
||||
{
|
||||
}
|
||||
this.<Nonce>k__BackingField = flag;
|
||||
}
|
||||
while (!flag)
|
||||
{
|
||||
}
|
||||
while (!flag)
|
||||
{
|
||||
}
|
||||
this.<Type>k__BackingField = (AuthenticationTypes)((ulong)2L);
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
while (!flag)
|
||||
{
|
||||
}
|
||||
this.<Realm>k__BackingField = flag;
|
||||
}
|
||||
while (!flag)
|
||||
{
|
||||
}
|
||||
while (!flag)
|
||||
{
|
||||
}
|
||||
while (flag)
|
||||
{
|
||||
}
|
||||
if (this.<ProtectedUris>k__BackingField == (ulong)0L)
|
||||
{
|
||||
List<string> list2 = new List();
|
||||
this.<ProtectedUris>k__BackingField = list2;
|
||||
}
|
||||
string text;
|
||||
this.<ProtectedUris>k__BackingField.Add(text);
|
||||
string text2;
|
||||
stringLength2 = text2.m_stringLength;
|
||||
}
|
||||
bool flag2;
|
||||
if (stringLength2 > 474311018)
|
||||
{
|
||||
if (stringLength2 == 1749328254)
|
||||
{
|
||||
while (stringLength2 == 0)
|
||||
{
|
||||
}
|
||||
this.<Stale>k__BackingField = flag2;
|
||||
}
|
||||
while (!flag2)
|
||||
{
|
||||
}
|
||||
while (!flag2)
|
||||
{
|
||||
}
|
||||
this.<Opaque>k__BackingField = flag2;
|
||||
}
|
||||
if (flag2)
|
||||
{
|
||||
while (!flag2)
|
||||
{
|
||||
}
|
||||
this.<Type>k__BackingField = (AuthenticationTypes)((ulong)1L);
|
||||
}
|
||||
while (!flag2)
|
||||
{
|
||||
}
|
||||
while (!flag2)
|
||||
{
|
||||
}
|
||||
this.<Algorithm>k__BackingField = flag2;
|
||||
}
|
||||
}
|
||||
while (num != 0);
|
||||
}
|
||||
|
||||
// Token: 0x0600D286 RID: 53894 RVA: 0x00301ABC File Offset: 0x002FFCBC
|
||||
[Token(Token = "0x600D286")]
|
||||
[Address(RVA = "0x169D440", Offset = "0x169C440", VA = "0x18169D440")]
|
||||
public string GenerateResponseHeader(HTTPRequest request, Credentials credentials, bool isProxy = false)
|
||||
{
|
||||
string text8;
|
||||
string requestPathAndQueryURL;
|
||||
for (;;)
|
||||
{
|
||||
AuthenticationTypes authenticationTypes = this.<Type>k__BackingField;
|
||||
if (authenticationTypes == AuthenticationTypes.Basic)
|
||||
{
|
||||
Encoding utf = Encoding.UTF8;
|
||||
string <Password>k__BackingField = credentials.<Password>k__BackingField;
|
||||
string <UserName>k__BackingField = credentials.<UserName>k__BackingField;
|
||||
string text = string.Format("{0}:{1}", <UserName>k__BackingField, <Password>k__BackingField);
|
||||
string text3;
|
||||
string text2 = "Basic " + text3;
|
||||
}
|
||||
if (authenticationTypes != AuthenticationTypes.Digest)
|
||||
{
|
||||
goto IL_492;
|
||||
}
|
||||
int num = this.<NonceCount>k__BackingField;
|
||||
num++;
|
||||
this.<NonceCount>k__BackingField = num;
|
||||
request.Finalize();
|
||||
string text4 = this.<NonceCount>k__BackingField.ToString("X8");
|
||||
string text5 = this.<Algorithm>k__BackingField.TrimAndLower();
|
||||
if (string.Equals(text5, "md5"))
|
||||
{
|
||||
string <Password>k__BackingField2 = credentials.<Password>k__BackingField;
|
||||
string text6 = this.<Realm>k__BackingField;
|
||||
string <UserName>k__BackingField2 = credentials.<UserName>k__BackingField;
|
||||
string text7 = string.Format("{0}:{1}:{2}", <UserName>k__BackingField2, text6, <Password>k__BackingField2).CalculateMD5Hash();
|
||||
}
|
||||
if (!string.Equals(text5, "md5-sess"))
|
||||
{
|
||||
goto IL_48C;
|
||||
}
|
||||
if (string.IsNullOrEmpty(this.<HA1Sess>k__BackingField))
|
||||
{
|
||||
break;
|
||||
}
|
||||
text8 = this.<HA1Sess>k__BackingField;
|
||||
string text9 = this.<QualityOfProtections>k__BackingField;
|
||||
if (text9 != 0)
|
||||
{
|
||||
string text10 = text9.TrimAndLower();
|
||||
}
|
||||
int num2 = 0;
|
||||
if (isProxy)
|
||||
{
|
||||
string host = request.CurrentUri.Host;
|
||||
int port = request.CurrentUri.Port;
|
||||
int num3;
|
||||
string text11 = host + ":" + num3;
|
||||
}
|
||||
int hashCode = request.<MethodType>k__BackingField.GetHashCode();
|
||||
requestPathAndQueryURL = request.CurrentUri.GetRequestPathAndQueryURL();
|
||||
if (num2 == 0)
|
||||
{
|
||||
goto IL_328;
|
||||
}
|
||||
bool flag;
|
||||
byte[] array;
|
||||
if (!flag)
|
||||
{
|
||||
bool flag2;
|
||||
if (!flag2)
|
||||
{
|
||||
goto Block_9;
|
||||
}
|
||||
}
|
||||
else if (array == 0)
|
||||
{
|
||||
goto Block_10;
|
||||
}
|
||||
}
|
||||
object[] array2 = new object[5];
|
||||
string <UserName>k__BackingField3 = credentials.<UserName>k__BackingField;
|
||||
throw new ArrayTypeMismatchException();
|
||||
Block_9:
|
||||
string text12 = (string.Empty + ":" + requestPathAndQueryURL).CalculateMD5Hash();
|
||||
object[] array3 = new object[6];
|
||||
throw new ArrayTypeMismatchException();
|
||||
Block_10:
|
||||
string text13 = VariableSizedBufferPool.NoData.CalculateMD5Hash();
|
||||
string text15;
|
||||
string text14 = string.Format("{0}:{1}:{2}", text15, requestPathAndQueryURL, text13).CalculateMD5Hash();
|
||||
object[] array4 = new object[6];
|
||||
throw new ArrayTypeMismatchException();
|
||||
IL_328:
|
||||
HTTPMethods httpmethods;
|
||||
int hashCode2 = httpmethods.GetHashCode();
|
||||
Uri uri;
|
||||
string requestPathAndQueryURL2 = uri.GetRequestPathAndQueryURL();
|
||||
string text17;
|
||||
string text16 = (text17 + ":" + requestPathAndQueryURL2).CalculateMD5Hash();
|
||||
string text18 = this.<Nonce>k__BackingField;
|
||||
string text19 = string.Format("{0}:{1}:{2}", text8, text18, text16).CalculateMD5Hash();
|
||||
object[] array5 = new object[6];
|
||||
if (text17 != 0)
|
||||
{
|
||||
}
|
||||
array5[0] = text17;
|
||||
string text20 = this.<Realm>k__BackingField;
|
||||
if (text20 != 0)
|
||||
{
|
||||
}
|
||||
array5[1] = text20;
|
||||
string text21 = this.<Nonce>k__BackingField;
|
||||
if (text21 != 0)
|
||||
{
|
||||
}
|
||||
array5[2] = text21;
|
||||
if (requestPathAndQueryURL != 0)
|
||||
{
|
||||
}
|
||||
array5[3] = requestPathAndQueryURL;
|
||||
if (text8 != 0)
|
||||
{
|
||||
}
|
||||
array5[4] = text8;
|
||||
if (text19 != 0)
|
||||
{
|
||||
}
|
||||
array5[5] = text19;
|
||||
string text22 = string.Format("Digest username=\"{0}\", realm=\"{1}\", nonce=\"{2}\", uri=\"{3}\", cnonce=\"{4}\", response=\"{5}\"", array5);
|
||||
string text23;
|
||||
if ("auth-int" != 0)
|
||||
{
|
||||
string[] array6 = new string[5];
|
||||
if (text22 != 0)
|
||||
{
|
||||
}
|
||||
array6[0] = text22;
|
||||
if (", qop=\"" != 0)
|
||||
{
|
||||
}
|
||||
array6[1] = ", qop=\"";
|
||||
array6[2] = "auth-int";
|
||||
if ("\", nc=" != 0)
|
||||
{
|
||||
}
|
||||
array6[3] = "\", nc=";
|
||||
if ("\", nc=" != 0)
|
||||
{
|
||||
}
|
||||
array6[4] = "\", nc=";
|
||||
text23 = string.Concat(array6);
|
||||
}
|
||||
string text24 = this.<Opaque>k__BackingField;
|
||||
if (text23 == 0)
|
||||
{
|
||||
string text25 = this.<Opaque>k__BackingField;
|
||||
string text26 = text23 + ", opaque=\"" + text25 + "\"";
|
||||
}
|
||||
IL_48C:
|
||||
return string.Empty;
|
||||
IL_492:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D287 RID: 53895 RVA: 0x003020B0 File Offset: 0x003002B0
|
||||
[Token(Token = "0x600D287")]
|
||||
[Address(RVA = "0x169E250", Offset = "0x169D250", VA = "0x18169E250")]
|
||||
public bool IsUriProtected(Uri uri)
|
||||
{
|
||||
string host = uri.Host;
|
||||
string host2 = this.<Uri>k__BackingField.Host;
|
||||
if (string.CompareOrdinal(host, host2) == 0)
|
||||
{
|
||||
int hashCode = uri.GetHashCode();
|
||||
if (this.<ProtectedUris>k__BackingField != 0)
|
||||
{
|
||||
int num = 0;
|
||||
bool flag;
|
||||
if (!flag)
|
||||
{
|
||||
List<string> list = this.<ProtectedUris>k__BackingField;
|
||||
num++;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.Authentication
|
||||
{
|
||||
// Token: 0x020020AB RID: 8363
|
||||
[Token(Token = "0x20020AB")]
|
||||
public static class DigestStore
|
||||
{
|
||||
// Token: 0x0600D288 RID: 53896 RVA: 0x00302108 File Offset: 0x00300308
|
||||
[Token(Token = "0x600D288")]
|
||||
[Address(RVA = "0x169CF30", Offset = "0x169BF30", VA = "0x18169CF30")]
|
||||
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: 0x0600D289 RID: 53897 RVA: 0x003021A4 File Offset: 0x003003A4
|
||||
[Token(Token = "0x600D289")]
|
||||
[Address(RVA = "0x169CD00", Offset = "0x169BD00", VA = "0x18169CD00")]
|
||||
public static Digest GetOrCreate(Uri uri)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
int num = 0;
|
||||
object locker = DigestStore.Locker;
|
||||
int num2 = 0;
|
||||
Dictionary<string, Digest> digests = DigestStore.Digests;
|
||||
string host = uri.Host;
|
||||
if (!digests.TryGetValue(host, num2))
|
||||
{
|
||||
break;
|
||||
}
|
||||
Monitor.Exit(locker);
|
||||
if (num == 0)
|
||||
{
|
||||
goto Block_1;
|
||||
}
|
||||
}
|
||||
Dictionary<string, Digest> digests2 = DigestStore.Digests;
|
||||
string host2 = uri.Host;
|
||||
Digest digest;
|
||||
digest.<Uri>k__BackingField = uri;
|
||||
digest.<Algorithm>k__BackingField = "md5";
|
||||
throw new NullReferenceException();
|
||||
Block_1:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D28A RID: 53898 RVA: 0x0030221C File Offset: 0x0030041C
|
||||
[Token(Token = "0x600D28A")]
|
||||
[Address(RVA = "0x169D1A0", Offset = "0x169C1A0", VA = "0x18169D1A0")]
|
||||
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: 0x0600D28B RID: 53899 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600D28B")]
|
||||
[Address(RVA = "0x169CB20", Offset = "0x169BB20", VA = "0x18169CB20")]
|
||||
public static string FindBest(List<string> authHeaders)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600D28C RID: 53900 RVA: 0x00302260 File Offset: 0x00300460
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600D28C")]
|
||||
[Address(RVA = "0x169D2E0", Offset = "0x169C2E0", VA = "0x18169D2E0")]
|
||||
static DigestStore()
|
||||
{
|
||||
string[] array = new string[2];
|
||||
if ("digest" != 0)
|
||||
{
|
||||
}
|
||||
array[0] = "digest";
|
||||
if ("basic" != 0)
|
||||
{
|
||||
}
|
||||
array[1] = "basic";
|
||||
DigestStore.SupportedAlgorithms = array;
|
||||
}
|
||||
|
||||
// Token: 0x040085DC RID: 34268
|
||||
[Token(Token = "0x40085DC")]
|
||||
private static Dictionary<string, Digest> Digests = new Dictionary();
|
||||
|
||||
// Token: 0x040085DD RID: 34269
|
||||
[Token(Token = "0x40085DD")]
|
||||
private static object Locker = new object();
|
||||
|
||||
// Token: 0x040085DE RID: 34270
|
||||
[Token(Token = "0x40085DE")]
|
||||
private static string[] SupportedAlgorithms;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user