253 lines
6.6 KiB
C#
253 lines
6.6 KiB
C#
using System;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs
|
|
{
|
|
// Token: 0x02001D31 RID: 7473
|
|
[Token(Token = "0x2001D31")]
|
|
public class HMac : IMac
|
|
{
|
|
// Token: 0x0600B940 RID: 47424 RVA: 0x0028357C File Offset: 0x0028177C
|
|
[Token(Token = "0x600B940")]
|
|
[Address(RVA = "0x25BD270", Offset = "0x25BC270", VA = "0x1825BD270")]
|
|
public HMac(IDigest digest)
|
|
{
|
|
this.digest = digest;
|
|
byte[] array = new byte[0];
|
|
int num = this.digestSize;
|
|
this.inputPad = array;
|
|
byte[] array2 = new byte[num];
|
|
this.outputBuf = array2;
|
|
}
|
|
|
|
// Token: 0x17001D2F RID: 7471
|
|
// (get) Token: 0x0600B941 RID: 47425 RVA: 0x002835C0 File Offset: 0x002817C0
|
|
[Token(Token = "0x17001D2F")]
|
|
public virtual string AlgorithmName
|
|
{
|
|
[Token(Token = "0x600B941")]
|
|
[Address(RVA = "0x25BD320", Offset = "0x25BC320", VA = "0x1825BD320", Slot = "11")]
|
|
get
|
|
{
|
|
IDigest digest = this.digest;
|
|
return 0 + "/HMAC";
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B942 RID: 47426 RVA: 0x002835E8 File Offset: 0x002817E8
|
|
[Token(Token = "0x600B942")]
|
|
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "12")]
|
|
public virtual IDigest GetUnderlyingDigest()
|
|
{
|
|
return this.digest;
|
|
}
|
|
|
|
// Token: 0x0600B943 RID: 47427 RVA: 0x002835FC File Offset: 0x002817FC
|
|
[Token(Token = "0x600B943")]
|
|
[Address(RVA = "0x25BCD30", Offset = "0x25BBD30", VA = "0x1825BCD30", Slot = "13")]
|
|
public virtual void Init(ICipherParameters parameters)
|
|
{
|
|
int length2;
|
|
for (;;)
|
|
{
|
|
IDigest digest = this.digest;
|
|
int num = 0;
|
|
if (parameters != 0 && parameters != 0)
|
|
{
|
|
byte[] array;
|
|
int length = array.Length;
|
|
byte[] array2 = this.inputPad;
|
|
int num2 = 0;
|
|
int num3 = 0;
|
|
Array.Copy(array, num3, array2, num2, length);
|
|
IDigest digest2 = this.digest;
|
|
IDigest digest3 = this.digest;
|
|
int num4 = this.digestSize;
|
|
int num5 = this.blockLength;
|
|
byte[] array3 = this.inputPad;
|
|
num5 -= num4;
|
|
Array.Clear(array3, num4, num5);
|
|
int num6 = this.blockLength;
|
|
int num7 = 0;
|
|
byte[] array4 = this.outputBuf;
|
|
int num8 = 0;
|
|
Array.Copy(this.inputPad, num8, array4, num7, num6);
|
|
if (this.blockLength > 0)
|
|
{
|
|
byte[] array5 = this.inputPad;
|
|
num++;
|
|
if (this.blockLength > 0)
|
|
{
|
|
byte[] array6 = this.outputBuf;
|
|
num++;
|
|
}
|
|
if (num != 0)
|
|
{
|
|
IDigest digest4 = this.digest;
|
|
if (num == 0 || num == 0)
|
|
{
|
|
continue;
|
|
}
|
|
int num9 = this.blockLength;
|
|
this.opadState = num;
|
|
if (num == 0 || num == 0)
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
byte[] array7 = this.inputPad;
|
|
IDigest digest5 = this.digest;
|
|
length2 = array7.Length;
|
|
if (length2 == 0)
|
|
{
|
|
return;
|
|
}
|
|
IDigest digest6 = this.digest;
|
|
if (length2 != 0 && length2 != 0)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.ipadState = length2;
|
|
}
|
|
|
|
// Token: 0x0600B944 RID: 47428 RVA: 0x00283750 File Offset: 0x00281950
|
|
[Token(Token = "0x600B944")]
|
|
[Address(RVA = "0x411540", Offset = "0x410540", VA = "0x180411540", Slot = "14")]
|
|
public virtual int GetMacSize()
|
|
{
|
|
return this.digestSize;
|
|
}
|
|
|
|
// Token: 0x0600B945 RID: 47429 RVA: 0x00283764 File Offset: 0x00281964
|
|
[Token(Token = "0x600B945")]
|
|
[Address(RVA = "0x25BD1C0", Offset = "0x25BC1C0", VA = "0x1825BD1C0", Slot = "15")]
|
|
public virtual void Update(byte input)
|
|
{
|
|
IDigest digest = this.digest;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600B946 RID: 47430 RVA: 0x00283780 File Offset: 0x00281980
|
|
[Token(Token = "0x600B946")]
|
|
[Address(RVA = "0x25BCA60", Offset = "0x25BBA60", VA = "0x1825BCA60", Slot = "16")]
|
|
public virtual void BlockUpdate(byte[] input, int inOff, int len)
|
|
{
|
|
IDigest digest = this.digest;
|
|
}
|
|
|
|
// Token: 0x0600B947 RID: 47431 RVA: 0x0028379C File Offset: 0x0028199C
|
|
[Token(Token = "0x600B947")]
|
|
[Address(RVA = "0x25BCAE0", Offset = "0x25BBAE0", VA = "0x1825BCAE0", Slot = "17")]
|
|
public virtual int DoFinal(byte[] output, int outOff)
|
|
{
|
|
int num;
|
|
int num5;
|
|
for (;;)
|
|
{
|
|
IDigest digest = this.digest;
|
|
num = this.blockLength;
|
|
IMemoable memoable = this.opadState;
|
|
IDigest digest2 = this.digest;
|
|
if (memoable == 0)
|
|
{
|
|
int length = this.outputBuf.Length;
|
|
}
|
|
if (num != 0 && num != 0)
|
|
{
|
|
IDigest digest3 = this.digest;
|
|
int num2 = this.blockLength;
|
|
IDigest digest4 = this.digest;
|
|
int num3 = this.digestSize;
|
|
int num4 = this.blockLength;
|
|
Array.Clear(this.outputBuf, num4, num3);
|
|
IMemoable memoable2 = this.ipadState;
|
|
IDigest digest5 = this.digest;
|
|
if (memoable2 == 0)
|
|
{
|
|
break;
|
|
}
|
|
if (num5 != 0 && num5 != 0)
|
|
{
|
|
goto Block_5;
|
|
}
|
|
}
|
|
}
|
|
num5 = this.inputPad.Length;
|
|
num5 = num;
|
|
return num5;
|
|
Block_5:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600B948 RID: 47432 RVA: 0x00283854 File Offset: 0x00281A54
|
|
[Token(Token = "0x600B948")]
|
|
[Address(RVA = "0x25BD140", Offset = "0x25BC140", VA = "0x1825BD140", Slot = "18")]
|
|
public virtual void Reset()
|
|
{
|
|
IDigest digest = this.digest;
|
|
byte[] array = this.inputPad;
|
|
IDigest digest2 = this.digest;
|
|
int length = array.Length;
|
|
}
|
|
|
|
// Token: 0x0600B949 RID: 47433 RVA: 0x00283884 File Offset: 0x00281A84
|
|
[Token(Token = "0x600B949")]
|
|
[Address(RVA = "0x25BD220", Offset = "0x25BC220", VA = "0x1825BD220")]
|
|
private static void XorPad(byte[] pad, int len, byte n)
|
|
{
|
|
int num = 0;
|
|
if (len > 0)
|
|
{
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x040074D1 RID: 29905
|
|
[Token(Token = "0x40074D1")]
|
|
private const byte IPAD = 54;
|
|
|
|
// Token: 0x040074D2 RID: 29906
|
|
[Token(Token = "0x40074D2")]
|
|
private const byte OPAD = 92;
|
|
|
|
// Token: 0x040074D3 RID: 29907
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x40074D3")]
|
|
private readonly IDigest digest;
|
|
|
|
// Token: 0x040074D4 RID: 29908
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x40074D4")]
|
|
private readonly int digestSize;
|
|
|
|
// Token: 0x040074D5 RID: 29909
|
|
[FieldOffset(Offset = "0x1C")]
|
|
[Token(Token = "0x40074D5")]
|
|
private readonly int blockLength;
|
|
|
|
// Token: 0x040074D6 RID: 29910
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x40074D6")]
|
|
private IMemoable ipadState;
|
|
|
|
// Token: 0x040074D7 RID: 29911
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x40074D7")]
|
|
private IMemoable opadState;
|
|
|
|
// Token: 0x040074D8 RID: 29912
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x40074D8")]
|
|
private readonly byte[] inputPad;
|
|
|
|
// Token: 0x040074D9 RID: 29913
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x40074D9")]
|
|
private readonly byte[] outputBuf;
|
|
}
|
|
}
|