331 lines
9.1 KiB
C#
331 lines
9.1 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Runtime.InteropServices;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Ocsp;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.X509;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.X509.Store;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Ocsp
|
|
{
|
|
// Token: 0x020013E3 RID: 5091
|
|
[Token(Token = "0x20013E3")]
|
|
[StructLayout(3)]
|
|
public class BasicOcspResp : X509ExtensionBase
|
|
{
|
|
// Token: 0x0600819F RID: 33183 RVA: 0x001B8F24 File Offset: 0x001B7124
|
|
[Token(Token = "0x600819F")]
|
|
[Address(RVA = "0xC11370", Offset = "0xC0FD70", VA = "0x180C11370")]
|
|
public BasicOcspResp(BasicOcspResponse resp)
|
|
{
|
|
this.resp = resp;
|
|
ResponseData tbsResponseData = resp.tbsResponseData;
|
|
this.data = tbsResponseData;
|
|
}
|
|
|
|
// Token: 0x060081A0 RID: 33184 RVA: 0x001B8F54 File Offset: 0x001B7154
|
|
[Token(Token = "0x60081A0")]
|
|
[Address(RVA = "0xC10FE0", Offset = "0xC0F9E0", VA = "0x180C10FE0")]
|
|
public byte[] GetTbsResponseData()
|
|
{
|
|
return this.data.GetDerEncoded();
|
|
}
|
|
|
|
// Token: 0x17001509 RID: 5385
|
|
// (get) Token: 0x060081A1 RID: 33185 RVA: 0x001B8F74 File Offset: 0x001B7174
|
|
[Token(Token = "0x17001509")]
|
|
public int Version
|
|
{
|
|
[Token(Token = "0x60081A1")]
|
|
[Address(RVA = "0xC11710", Offset = "0xC10110", VA = "0x180C11710")]
|
|
get
|
|
{
|
|
int intValue = this.data.version.Value.IntValue;
|
|
return intValue + 1;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700150A RID: 5386
|
|
// (get) Token: 0x060081A2 RID: 33186 RVA: 0x001B8FA4 File Offset: 0x001B71A4
|
|
[Token(Token = "0x1700150A")]
|
|
public RespID ResponderId
|
|
{
|
|
[Token(Token = "0x60081A2")]
|
|
[Address(RVA = "0xC113E0", Offset = "0xC0FDE0", VA = "0x180C113E0")]
|
|
get
|
|
{
|
|
ResponderID responderID = this.data.responderID;
|
|
RespID respID;
|
|
respID.id = responderID;
|
|
return respID;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700150B RID: 5387
|
|
// (get) Token: 0x060081A3 RID: 33187 RVA: 0x001B8FCC File Offset: 0x001B71CC
|
|
[Token(Token = "0x1700150B")]
|
|
public DateTime ProducedAt
|
|
{
|
|
[Token(Token = "0x60081A3")]
|
|
[Address(RVA = "0xC113B0", Offset = "0xC0FDB0", VA = "0x180C113B0")]
|
|
get
|
|
{
|
|
return this.data.producedAt.ToDateTime();
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700150C RID: 5388
|
|
// (get) Token: 0x060081A4 RID: 33188 RVA: 0x001B8FF0 File Offset: 0x001B71F0
|
|
[Token(Token = "0x1700150C")]
|
|
public SingleResp[] Responses
|
|
{
|
|
[Token(Token = "0x60081A4")]
|
|
[Address(RVA = "0xC11450", Offset = "0xC0FE50", VA = "0x180C11450")]
|
|
get
|
|
{
|
|
Asn1Sequence responses = this.data.responses;
|
|
Asn1Encodable asn1Encodable;
|
|
SingleResp[] array = new SingleResp[asn1Encodable];
|
|
int num = 0;
|
|
if (num != array.Length)
|
|
{
|
|
Asn1SequenceParser parser = responses.Parser;
|
|
SingleResp singleResp;
|
|
SingleResponse singleResponse;
|
|
singleResp.resp = singleResponse;
|
|
num++;
|
|
array[0] = singleResp;
|
|
}
|
|
return array;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700150D RID: 5389
|
|
// (get) Token: 0x060081A5 RID: 33189 RVA: 0x001B9040 File Offset: 0x001B7240
|
|
[Token(Token = "0x1700150D")]
|
|
public X509Extensions ResponseExtensions
|
|
{
|
|
[Token(Token = "0x60081A5")]
|
|
[Address(RVA = "0x61F8D0", Offset = "0x61E2D0", VA = "0x18061F8D0")]
|
|
get
|
|
{
|
|
return this.data.responseExtensions;
|
|
}
|
|
}
|
|
|
|
// Token: 0x060081A6 RID: 33190 RVA: 0x001B9060 File Offset: 0x001B7260
|
|
[Token(Token = "0x60081A6")]
|
|
[Address(RVA = "0x61F8D0", Offset = "0x61E2D0", VA = "0x18061F8D0", Slot = "8")]
|
|
protected override X509Extensions GetX509Extensions()
|
|
{
|
|
return this.data.responseExtensions;
|
|
}
|
|
|
|
// Token: 0x1700150E RID: 5390
|
|
// (get) Token: 0x060081A7 RID: 33191 RVA: 0x001B9080 File Offset: 0x001B7280
|
|
[Token(Token = "0x1700150E")]
|
|
public string SignatureAlgName
|
|
{
|
|
[Token(Token = "0x60081A7")]
|
|
[Address(RVA = "0xC11590", Offset = "0xC0FF90", VA = "0x180C11590")]
|
|
get
|
|
{
|
|
Asn1Object asn1Object = this.resp.signatureAlgorithm.ToAsn1Object();
|
|
IDictionary oids = OcspUtilities.oids;
|
|
IDictionary oids2 = OcspUtilities.oids;
|
|
throw new NullReferenceException();
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700150F RID: 5391
|
|
// (get) Token: 0x060081A8 RID: 33192 RVA: 0x001B90B0 File Offset: 0x001B72B0
|
|
[Token(Token = "0x1700150F")]
|
|
public string SignatureAlgOid
|
|
{
|
|
[Token(Token = "0x60081A8")]
|
|
[Address(RVA = "0x532960", Offset = "0x531360", VA = "0x180532960")]
|
|
get
|
|
{
|
|
Asn1Object asn1Object = this.resp.signatureAlgorithm.ToAsn1Object();
|
|
throw new NullReferenceException();
|
|
}
|
|
}
|
|
|
|
// Token: 0x060081A9 RID: 33193 RVA: 0x001B90D4 File Offset: 0x001B72D4
|
|
[Token(Token = "0x60081A9")]
|
|
[Address(RVA = "0xC10F80", Offset = "0xC0F980", VA = "0x180C10F80")]
|
|
[Obsolete]
|
|
public RespData GetResponseData()
|
|
{
|
|
ResponseData responseData = this.data;
|
|
RespData respData;
|
|
respData.data = responseData;
|
|
return respData;
|
|
}
|
|
|
|
// Token: 0x060081AA RID: 33194 RVA: 0x001B90F0 File Offset: 0x001B72F0
|
|
[Token(Token = "0x60081AA")]
|
|
[Address(RVA = "0x531510", Offset = "0x52FF10", VA = "0x180531510")]
|
|
public byte[] GetSignature()
|
|
{
|
|
return this.resp.GetSignatureOctets();
|
|
}
|
|
|
|
// Token: 0x060081AB RID: 33195 RVA: 0x001B9110 File Offset: 0x001B7310
|
|
[Token(Token = "0x60081AB")]
|
|
[Address(RVA = "0xC10950", Offset = "0xC0F350", VA = "0x180C10950")]
|
|
private IList GetCertList()
|
|
{
|
|
IList list;
|
|
for (;;)
|
|
{
|
|
int num = 0;
|
|
list = Platform.CreateArrayList();
|
|
Asn1Sequence certs = this.resp.certs;
|
|
if (certs == 0)
|
|
{
|
|
break;
|
|
}
|
|
IEnumerator enumerator = certs.GetEnumerator();
|
|
if (enumerator != 0)
|
|
{
|
|
if (enumerator == 0)
|
|
{
|
|
}
|
|
if (enumerator == 0)
|
|
{
|
|
goto IL_65;
|
|
}
|
|
byte[] array;
|
|
if (new X509CertificateParser().ReadCertificate(array) != 0)
|
|
{
|
|
}
|
|
if (num != -1)
|
|
{
|
|
}
|
|
if (num == 0)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return list;
|
|
IL_65:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060081AC RID: 33196 RVA: 0x001B9188 File Offset: 0x001B7388
|
|
[Token(Token = "0x60081AC")]
|
|
[Address(RVA = "0xC10D00", Offset = "0xC0F700", VA = "0x180C10D00")]
|
|
public X509Certificate[] GetCerts()
|
|
{
|
|
X509Certificate[] array;
|
|
int num;
|
|
do
|
|
{
|
|
IList certList = this.GetCertList();
|
|
array = new X509Certificate[certList];
|
|
num = 0;
|
|
if (num < certList)
|
|
{
|
|
num += num;
|
|
num++;
|
|
}
|
|
if (num >= array)
|
|
{
|
|
return array;
|
|
}
|
|
uint num2;
|
|
if (num < (int)num2)
|
|
{
|
|
num += num;
|
|
num++;
|
|
}
|
|
if (num == 0)
|
|
{
|
|
break;
|
|
}
|
|
ulong num3;
|
|
num3 += num3;
|
|
num3 += num3;
|
|
}
|
|
while (num == 0 || num == 0);
|
|
num++;
|
|
array[0] = num;
|
|
return array;
|
|
}
|
|
|
|
// Token: 0x060081AD RID: 33197 RVA: 0x001B91F4 File Offset: 0x001B73F4
|
|
[Token(Token = "0x60081AD")]
|
|
[Address(RVA = "0xC10C20", Offset = "0xC0F620", VA = "0x180C10C20")]
|
|
public IX509Store GetCertificates(string type)
|
|
{
|
|
string text = "Certificate/" + type;
|
|
X509CollectionStoreParameters x509CollectionStoreParameters = new X509CollectionStoreParameters(this.GetCertList());
|
|
return X509StoreFactory.Create(text, x509CollectionStoreParameters);
|
|
}
|
|
|
|
// Token: 0x060081AE RID: 33198 RVA: 0x001B9230 File Offset: 0x001B7430
|
|
[Token(Token = "0x60081AE")]
|
|
[Address(RVA = "0xC11080", Offset = "0xC0FA80", VA = "0x180C11080")]
|
|
public bool Verify(AsymmetricKeyParameter publicKey)
|
|
{
|
|
Asn1Object asn1Object = this.resp.signatureAlgorithm.ToAsn1Object();
|
|
IDictionary oids = OcspUtilities.oids;
|
|
IDictionary oids2 = OcspUtilities.oids;
|
|
int length = this.data.GetDerEncoded().Length;
|
|
byte[] signatureOctets = this.resp.GetSignatureOctets();
|
|
int num = 0;
|
|
string text;
|
|
OcspException ex = new OcspException(text, num);
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060081AF RID: 33199 RVA: 0x001B92BC File Offset: 0x001B74BC
|
|
[Token(Token = "0x60081AF")]
|
|
[Address(RVA = "0x53BEA0", Offset = "0x53A8A0", VA = "0x18053BEA0")]
|
|
public byte[] GetEncoded()
|
|
{
|
|
return this.resp.GetEncoded();
|
|
}
|
|
|
|
// Token: 0x060081B0 RID: 33200 RVA: 0x001B92DC File Offset: 0x001B74DC
|
|
[Token(Token = "0x60081B0")]
|
|
[Address(RVA = "0xC10890", Offset = "0xC0F290", VA = "0x180C10890", Slot = "0")]
|
|
public override bool Equals(object obj)
|
|
{
|
|
if (obj != this)
|
|
{
|
|
if (obj != 0 && obj != 0)
|
|
{
|
|
Asn1Object asn1Object = this.resp.ToAsn1Object();
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// Token: 0x060081B1 RID: 33201 RVA: 0x001B930C File Offset: 0x001B750C
|
|
[Token(Token = "0x60081B1")]
|
|
[Address(RVA = "0x528AC0", Offset = "0x5274C0", VA = "0x180528AC0", Slot = "2")]
|
|
public override int GetHashCode()
|
|
{
|
|
Asn1Object asn1Object = this.resp.ToAsn1Object();
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x04005BB9 RID: 23481
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4005BB9")]
|
|
private readonly BasicOcspResponse resp;
|
|
|
|
// Token: 0x04005BBA RID: 23482
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4005BBA")]
|
|
private readonly ResponseData data;
|
|
}
|
|
}
|