255 lines
6.9 KiB
C#
255 lines
6.9 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs
|
|
{
|
|
// Token: 0x02001674 RID: 5748
|
|
[Token(Token = "0x2001674")]
|
|
[StructLayout(3)]
|
|
public class HMac : IMac
|
|
{
|
|
// Token: 0x06009998 RID: 39320 RVA: 0x00222E10 File Offset: 0x00221010
|
|
[Token(Token = "0x6009998")]
|
|
[Address(RVA = "0x20F1640", Offset = "0x20F0040", VA = "0x1820F1640")]
|
|
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: 0x17001891 RID: 6289
|
|
// (get) Token: 0x06009999 RID: 39321 RVA: 0x00222E54 File Offset: 0x00221054
|
|
[Token(Token = "0x17001891")]
|
|
public virtual string AlgorithmName
|
|
{
|
|
[Token(Token = "0x6009999")]
|
|
[Address(RVA = "0x20F16F0", Offset = "0x20F00F0", VA = "0x1820F16F0", Slot = "11")]
|
|
get
|
|
{
|
|
IDigest digest = this.digest;
|
|
return 0 + "/HMAC";
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600999A RID: 39322 RVA: 0x00222E7C File Offset: 0x0022107C
|
|
[Token(Token = "0x600999A")]
|
|
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "12")]
|
|
public virtual IDigest GetUnderlyingDigest()
|
|
{
|
|
return this.digest;
|
|
}
|
|
|
|
// Token: 0x0600999B RID: 39323 RVA: 0x00222E90 File Offset: 0x00221090
|
|
[Token(Token = "0x600999B")]
|
|
[Address(RVA = "0x20F1100", Offset = "0x20EFB00", VA = "0x1820F1100", 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: 0x0600999C RID: 39324 RVA: 0x00222FE4 File Offset: 0x002211E4
|
|
[Token(Token = "0x600999C")]
|
|
[Address(RVA = "0x3EE8D0", Offset = "0x3ED2D0", VA = "0x1803EE8D0", Slot = "14")]
|
|
public virtual int GetMacSize()
|
|
{
|
|
return this.digestSize;
|
|
}
|
|
|
|
// Token: 0x0600999D RID: 39325 RVA: 0x00222FF8 File Offset: 0x002211F8
|
|
[Token(Token = "0x600999D")]
|
|
[Address(RVA = "0x20F1590", Offset = "0x20EFF90", VA = "0x1820F1590", Slot = "15")]
|
|
public virtual void Update(byte input)
|
|
{
|
|
IDigest digest = this.digest;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600999E RID: 39326 RVA: 0x00223014 File Offset: 0x00221214
|
|
[Token(Token = "0x600999E")]
|
|
[Address(RVA = "0x20F0E30", Offset = "0x20EF830", VA = "0x1820F0E30", Slot = "16")]
|
|
public virtual void BlockUpdate(byte[] input, int inOff, int len)
|
|
{
|
|
IDigest digest = this.digest;
|
|
}
|
|
|
|
// Token: 0x0600999F RID: 39327 RVA: 0x00223030 File Offset: 0x00221230
|
|
[Token(Token = "0x600999F")]
|
|
[Address(RVA = "0x20F0EB0", Offset = "0x20EF8B0", VA = "0x1820F0EB0", 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: 0x060099A0 RID: 39328 RVA: 0x002230E8 File Offset: 0x002212E8
|
|
[Token(Token = "0x60099A0")]
|
|
[Address(RVA = "0x20F1510", Offset = "0x20EFF10", VA = "0x1820F1510", Slot = "18")]
|
|
public virtual void Reset()
|
|
{
|
|
IDigest digest = this.digest;
|
|
byte[] array = this.inputPad;
|
|
IDigest digest2 = this.digest;
|
|
int length = array.Length;
|
|
}
|
|
|
|
// Token: 0x060099A1 RID: 39329 RVA: 0x00223118 File Offset: 0x00221318
|
|
[Token(Token = "0x60099A1")]
|
|
[Address(RVA = "0x20F15F0", Offset = "0x20EFFF0", VA = "0x1820F15F0")]
|
|
private static void XorPad(byte[] pad, int len, byte n)
|
|
{
|
|
int num = 0;
|
|
if (len > 0)
|
|
{
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x040064D5 RID: 25813
|
|
[Token(Token = "0x40064D5")]
|
|
private const byte IPAD = 54;
|
|
|
|
// Token: 0x040064D6 RID: 25814
|
|
[Token(Token = "0x40064D6")]
|
|
private const byte OPAD = 92;
|
|
|
|
// Token: 0x040064D7 RID: 25815
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x40064D7")]
|
|
private readonly IDigest digest;
|
|
|
|
// Token: 0x040064D8 RID: 25816
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x40064D8")]
|
|
private readonly int digestSize;
|
|
|
|
// Token: 0x040064D9 RID: 25817
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x1C")]
|
|
[Token(Token = "0x40064D9")]
|
|
private readonly int blockLength;
|
|
|
|
// Token: 0x040064DA RID: 25818
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x40064DA")]
|
|
private IMemoable ipadState;
|
|
|
|
// Token: 0x040064DB RID: 25819
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x40064DB")]
|
|
private IMemoable opadState;
|
|
|
|
// Token: 0x040064DC RID: 25820
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x40064DC")]
|
|
private readonly byte[] inputPad;
|
|
|
|
// Token: 0x040064DD RID: 25821
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x40064DD")]
|
|
private readonly byte[] outputBuf;
|
|
}
|
|
}
|