161 lines
4.6 KiB
C#
161 lines
4.6 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs
|
|
{
|
|
// Token: 0x0200166E RID: 5742
|
|
[Token(Token = "0x200166E")]
|
|
[StructLayout(3)]
|
|
internal class MacCFBBlockCipher : IBlockCipher
|
|
{
|
|
// Token: 0x0600995A RID: 39258 RVA: 0x00221978 File Offset: 0x0021FB78
|
|
[Token(Token = "0x600995A")]
|
|
[Address(RVA = "0x20F5760", Offset = "0x20F4160", VA = "0x1820F5760")]
|
|
public MacCFBBlockCipher(IBlockCipher cipher, int bitBlockSize)
|
|
{
|
|
this.cipher = cipher;
|
|
this.blockSize = bitBlockSize;
|
|
byte[] array = new byte[bitBlockSize];
|
|
this.IV = array;
|
|
byte[] array2 = new byte[array];
|
|
this.cfbV = array2;
|
|
byte[] array3 = new byte[array2];
|
|
this.cfbOutV = array3;
|
|
}
|
|
|
|
// Token: 0x0600995B RID: 39259 RVA: 0x002219CC File Offset: 0x0021FBCC
|
|
[Token(Token = "0x600995B")]
|
|
[Address(RVA = "0x20F5330", Offset = "0x20F3D30", VA = "0x1820F5330", Slot = "5")]
|
|
public void Init(bool forEncryption, ICipherParameters parameters)
|
|
{
|
|
while (parameters != 0 && parameters != 0)
|
|
{
|
|
if (parameters != 0)
|
|
{
|
|
byte[] iv = this.IV;
|
|
byte[] array;
|
|
int length = array.Length;
|
|
int num = iv.Length;
|
|
num = length;
|
|
num -= length;
|
|
int num2 = 0;
|
|
Array.Copy(array, num2, iv, num, num);
|
|
break;
|
|
}
|
|
}
|
|
byte[] iv2 = this.IV;
|
|
byte[] array2 = this.cfbV;
|
|
IBlockCipher blockCipher = this.cipher;
|
|
IBlockCipher blockCipher2 = this.cipher;
|
|
}
|
|
|
|
// Token: 0x1700188A RID: 6282
|
|
// (get) Token: 0x0600995C RID: 39260 RVA: 0x00221A44 File Offset: 0x0021FC44
|
|
[Token(Token = "0x1700188A")]
|
|
public string AlgorithmName
|
|
{
|
|
[Token(Token = "0x600995C")]
|
|
[Address(RVA = "0x20F5840", Offset = "0x20F4240", VA = "0x1820F5840", Slot = "4")]
|
|
get
|
|
{
|
|
IBlockCipher blockCipher = this.cipher;
|
|
int num = this.blockSize;
|
|
string text;
|
|
return text;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700188B RID: 6283
|
|
// (get) Token: 0x0600995D RID: 39261 RVA: 0x00221A68 File Offset: 0x0021FC68
|
|
[Token(Token = "0x1700188B")]
|
|
public bool IsPartialBlockOkay
|
|
{
|
|
[Token(Token = "0x600995D")]
|
|
[Address(RVA = "0x4405A0", Offset = "0x43EFA0", VA = "0x1804405A0", Slot = "7")]
|
|
get
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600995E RID: 39262 RVA: 0x00221A78 File Offset: 0x0021FC78
|
|
[Token(Token = "0x600995E")]
|
|
[Address(RVA = "0x4D24F0", Offset = "0x4D0EF0", VA = "0x1804D24F0", Slot = "6")]
|
|
public int GetBlockSize()
|
|
{
|
|
return this.blockSize;
|
|
}
|
|
|
|
// Token: 0x0600995F RID: 39263 RVA: 0x00221A8C File Offset: 0x0021FC8C
|
|
[Token(Token = "0x600995F")]
|
|
[Address(RVA = "0x20F54D0", Offset = "0x20F3ED0", VA = "0x1820F54D0", Slot = "8")]
|
|
public int ProcessBlock(byte[] input, int inOff, byte[] outBytes, int outOff)
|
|
{
|
|
IBlockCipher blockCipher = this.cipher;
|
|
byte[] array = this.cfbOutV;
|
|
byte[] array2 = this.cfbV;
|
|
int num = this.blockSize;
|
|
if (num > 0)
|
|
{
|
|
byte[] array3 = this.cfbOutV;
|
|
int num2 = this.blockSize;
|
|
}
|
|
byte[] array4 = this.cfbV;
|
|
int num3 = array4.Length;
|
|
int num4 = 0;
|
|
num3 -= num;
|
|
Array.Copy(array4, num, array4, num4, num3);
|
|
byte[] array5 = this.cfbV;
|
|
int num5 = this.blockSize;
|
|
int num6 = array5.Length;
|
|
num6 -= num5;
|
|
return this.blockSize;
|
|
}
|
|
|
|
// Token: 0x06009960 RID: 39264 RVA: 0x00221B24 File Offset: 0x0021FD24
|
|
[Token(Token = "0x6009960")]
|
|
[Address(RVA = "0x20F56F0", Offset = "0x20F40F0", VA = "0x1820F56F0", Slot = "9")]
|
|
public void Reset()
|
|
{
|
|
byte[] iv = this.IV;
|
|
byte[] array = this.cfbV;
|
|
IBlockCipher blockCipher = this.cipher;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009961 RID: 39265 RVA: 0x00221B50 File Offset: 0x0021FD50
|
|
[Token(Token = "0x6009961")]
|
|
[Address(RVA = "0x20F52C0", Offset = "0x20F3CC0", VA = "0x1820F52C0")]
|
|
public void GetMacBlock(byte[] mac)
|
|
{
|
|
IBlockCipher blockCipher = this.cipher;
|
|
}
|
|
|
|
// Token: 0x040064B2 RID: 25778
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x40064B2")]
|
|
private byte[] IV;
|
|
|
|
// Token: 0x040064B3 RID: 25779
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x40064B3")]
|
|
private byte[] cfbV;
|
|
|
|
// Token: 0x040064B4 RID: 25780
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x40064B4")]
|
|
private byte[] cfbOutV;
|
|
|
|
// Token: 0x040064B5 RID: 25781
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x40064B5")]
|
|
private readonly int blockSize;
|
|
|
|
// Token: 0x040064B6 RID: 25782
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x40064B6")]
|
|
private readonly IBlockCipher cipher;
|
|
}
|
|
}
|