oh dear
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls
|
||||
{
|
||||
// Token: 0x02001B7F RID: 7039
|
||||
[Token(Token = "0x2001B7F")]
|
||||
public class TlsMac
|
||||
{
|
||||
// Token: 0x0600AF2E RID: 44846 RVA: 0x002614CC File Offset: 0x0025F6CC
|
||||
[Token(Token = "0x600AF2E")]
|
||||
[Address(RVA = "0x198B610", Offset = "0x198A410", VA = "0x18198B610")]
|
||||
public TlsMac(TlsContext context, IDigest digest, byte[] key, int keyOff, int keyLen)
|
||||
{
|
||||
this.context = context;
|
||||
KeyParameter keyParameter;
|
||||
byte[] array = Arrays.Clone(keyParameter.GetKey());
|
||||
this.secret = array;
|
||||
if (digest != 0)
|
||||
{
|
||||
}
|
||||
this.digestBlockSize = (int)((uint)128);
|
||||
this.digestOverhead = (int)((uint)16);
|
||||
if (!TlsUtilities.IsSsl(context))
|
||||
{
|
||||
HMac hmac = new HMac(digest);
|
||||
this.mac = hmac;
|
||||
}
|
||||
Ssl3Mac ssl3Mac;
|
||||
ssl3Mac.digest = digest;
|
||||
ssl3Mac.padLength = (int)((uint)48);
|
||||
this.mac = ssl3Mac;
|
||||
if (ssl3Mac == (ulong)20L)
|
||||
{
|
||||
this.digestOverhead = (int)((ulong)4L);
|
||||
}
|
||||
IMac mac = this.mac;
|
||||
IMac mac2 = this.mac;
|
||||
this.macLength = ssl3Mac;
|
||||
int num = Math.Min(this.macLength, 10);
|
||||
this.macLength = num;
|
||||
}
|
||||
|
||||
// Token: 0x17001BB7 RID: 7095
|
||||
// (get) Token: 0x0600AF2F RID: 44847 RVA: 0x00261590 File Offset: 0x0025F790
|
||||
[Token(Token = "0x17001BB7")]
|
||||
public virtual byte[] MacSecret
|
||||
{
|
||||
[Token(Token = "0x600AF2F")]
|
||||
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return this.secret;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001BB8 RID: 7096
|
||||
// (get) Token: 0x0600AF30 RID: 44848 RVA: 0x002615A4 File Offset: 0x0025F7A4
|
||||
[Token(Token = "0x17001BB8")]
|
||||
public virtual int Size
|
||||
{
|
||||
[Token(Token = "0x600AF30")]
|
||||
[Address(RVA = "0x4730E0", Offset = "0x471EE0", VA = "0x1804730E0", Slot = "5")]
|
||||
get
|
||||
{
|
||||
return this.macLength;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600AF31 RID: 44849 RVA: 0x002615B8 File Offset: 0x0025F7B8
|
||||
[Token(Token = "0x600AF31")]
|
||||
[Address(RVA = "0x198B350", Offset = "0x198A150", VA = "0x18198B350", Slot = "6")]
|
||||
public virtual byte[] CalculateMac(long seqNo, byte type, byte[] message, int offset, int length)
|
||||
{
|
||||
TlsContext tlsContext = this.context;
|
||||
bool flag;
|
||||
if (flag)
|
||||
{
|
||||
}
|
||||
int num = 0;
|
||||
byte[] array = new byte[13];
|
||||
int num2 = 0;
|
||||
TlsUtilities.WriteUint64(seqNo, array, num2);
|
||||
TlsUtilities.WriteUint8(type, array, 8);
|
||||
if (num == 0)
|
||||
{
|
||||
}
|
||||
IMac mac = this.mac;
|
||||
int length2 = array.Length;
|
||||
IMac mac2 = this.mac;
|
||||
return MacUtilities.DoFinal(this.mac);
|
||||
}
|
||||
|
||||
// Token: 0x0600AF32 RID: 44850 RVA: 0x00261624 File Offset: 0x0025F824
|
||||
[Token(Token = "0x600AF32")]
|
||||
[Address(RVA = "0x198B120", Offset = "0x1989F20", VA = "0x18198B120", Slot = "7")]
|
||||
public virtual byte[] CalculateMacConstantTime(long seqNo, byte type, byte[] message, int offset, int length, int fullLength, byte[] dummyData)
|
||||
{
|
||||
int size = this.Size;
|
||||
bool flag = TlsUtilities.IsSsl(this.context);
|
||||
byte[] array;
|
||||
byte[] array2;
|
||||
array -= array2;
|
||||
int num = 0;
|
||||
IMac mac = this.mac;
|
||||
num += num;
|
||||
num++;
|
||||
IMac mac2 = this.mac;
|
||||
num += 4;
|
||||
num += 19;
|
||||
IMac mac3 = this.mac;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600AF33 RID: 44851 RVA: 0x00261684 File Offset: 0x0025F884
|
||||
[Token(Token = "0x600AF33")]
|
||||
[Address(RVA = "0x198B570", Offset = "0x198A370", VA = "0x18198B570", Slot = "8")]
|
||||
protected virtual int GetDigestBlockCount(int inputLength)
|
||||
{
|
||||
int num = this.digestOverhead;
|
||||
return num + inputLength;
|
||||
}
|
||||
|
||||
// Token: 0x0600AF34 RID: 44852 RVA: 0x002616A0 File Offset: 0x0025F8A0
|
||||
[Token(Token = "0x600AF34")]
|
||||
[Address(RVA = "0x198B580", Offset = "0x198A380", VA = "0x18198B580", Slot = "9")]
|
||||
protected virtual byte[] Truncate(byte[] bs)
|
||||
{
|
||||
int num = this.macLength;
|
||||
if (bs.Length > num)
|
||||
{
|
||||
return Arrays.CopyOf(bs, num);
|
||||
}
|
||||
return bs;
|
||||
}
|
||||
|
||||
// Token: 0x0400701D RID: 28701
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400701D")]
|
||||
protected readonly TlsContext context;
|
||||
|
||||
// Token: 0x0400701E RID: 28702
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400701E")]
|
||||
protected readonly byte[] secret;
|
||||
|
||||
// Token: 0x0400701F RID: 28703
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400701F")]
|
||||
protected readonly IMac mac;
|
||||
|
||||
// Token: 0x04007020 RID: 28704
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007020")]
|
||||
protected readonly int digestBlockSize;
|
||||
|
||||
// Token: 0x04007021 RID: 28705
|
||||
[FieldOffset(Offset = "0x2C")]
|
||||
[Token(Token = "0x4007021")]
|
||||
protected readonly int digestOverhead;
|
||||
|
||||
// Token: 0x04007022 RID: 28706
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007022")]
|
||||
protected readonly int macLength;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user