326 lines
9.0 KiB
C#
326 lines
9.0 KiB
C#
using System;
|
|
using System.Collections;
|
|
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: 0x020019C0 RID: 6592
|
|
[Token(Token = "0x20019C0")]
|
|
public class BasicOcspResp : X509ExtensionBase
|
|
{
|
|
// Token: 0x06009D79 RID: 40313 RVA: 0x002104D0 File Offset: 0x0020E6D0
|
|
[Token(Token = "0x6009D79")]
|
|
[Address(RVA = "0x28B4E60", Offset = "0x28B3C60", VA = "0x1828B4E60")]
|
|
public BasicOcspResp(BasicOcspResponse resp)
|
|
{
|
|
this.resp = resp;
|
|
ResponseData tbsResponseData = resp.tbsResponseData;
|
|
this.data = tbsResponseData;
|
|
}
|
|
|
|
// Token: 0x06009D7A RID: 40314 RVA: 0x00210500 File Offset: 0x0020E700
|
|
[Token(Token = "0x6009D7A")]
|
|
[Address(RVA = "0x28B4AD0", Offset = "0x28B38D0", VA = "0x1828B4AD0")]
|
|
public byte[] GetTbsResponseData()
|
|
{
|
|
return this.data.GetDerEncoded();
|
|
}
|
|
|
|
// Token: 0x1700190A RID: 6410
|
|
// (get) Token: 0x06009D7B RID: 40315 RVA: 0x00210520 File Offset: 0x0020E720
|
|
[Token(Token = "0x1700190A")]
|
|
public int Version
|
|
{
|
|
[Token(Token = "0x6009D7B")]
|
|
[Address(RVA = "0x28B5200", Offset = "0x28B4000", VA = "0x1828B5200")]
|
|
get
|
|
{
|
|
int intValue = this.data.version.Value.IntValue;
|
|
return intValue + 1;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700190B RID: 6411
|
|
// (get) Token: 0x06009D7C RID: 40316 RVA: 0x00210550 File Offset: 0x0020E750
|
|
[Token(Token = "0x1700190B")]
|
|
public RespID ResponderId
|
|
{
|
|
[Token(Token = "0x6009D7C")]
|
|
[Address(RVA = "0x28B4ED0", Offset = "0x28B3CD0", VA = "0x1828B4ED0")]
|
|
get
|
|
{
|
|
ResponderID responderID = this.data.responderID;
|
|
RespID respID;
|
|
respID.id = responderID;
|
|
return respID;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700190C RID: 6412
|
|
// (get) Token: 0x06009D7D RID: 40317 RVA: 0x00210578 File Offset: 0x0020E778
|
|
[Token(Token = "0x1700190C")]
|
|
public DateTime ProducedAt
|
|
{
|
|
[Token(Token = "0x6009D7D")]
|
|
[Address(RVA = "0x28B4EA0", Offset = "0x28B3CA0", VA = "0x1828B4EA0")]
|
|
get
|
|
{
|
|
return this.data.producedAt.ToDateTime();
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700190D RID: 6413
|
|
// (get) Token: 0x06009D7E RID: 40318 RVA: 0x0021059C File Offset: 0x0020E79C
|
|
[Token(Token = "0x1700190D")]
|
|
public SingleResp[] Responses
|
|
{
|
|
[Token(Token = "0x6009D7E")]
|
|
[Address(RVA = "0x28B4F40", Offset = "0x28B3D40", VA = "0x1828B4F40")]
|
|
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: 0x1700190E RID: 6414
|
|
// (get) Token: 0x06009D7F RID: 40319 RVA: 0x002105EC File Offset: 0x0020E7EC
|
|
[Token(Token = "0x1700190E")]
|
|
public X509Extensions ResponseExtensions
|
|
{
|
|
[Token(Token = "0x6009D7F")]
|
|
[Address(RVA = "0x460DC0", Offset = "0x45FBC0", VA = "0x180460DC0")]
|
|
get
|
|
{
|
|
return this.data.responseExtensions;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009D80 RID: 40320 RVA: 0x0021060C File Offset: 0x0020E80C
|
|
[Token(Token = "0x6009D80")]
|
|
[Address(RVA = "0x460DC0", Offset = "0x45FBC0", VA = "0x180460DC0", Slot = "8")]
|
|
protected override X509Extensions GetX509Extensions()
|
|
{
|
|
return this.data.responseExtensions;
|
|
}
|
|
|
|
// Token: 0x1700190F RID: 6415
|
|
// (get) Token: 0x06009D81 RID: 40321 RVA: 0x0021062C File Offset: 0x0020E82C
|
|
[Token(Token = "0x1700190F")]
|
|
public string SignatureAlgName
|
|
{
|
|
[Token(Token = "0x6009D81")]
|
|
[Address(RVA = "0x28B5080", Offset = "0x28B3E80", VA = "0x1828B5080")]
|
|
get
|
|
{
|
|
Asn1Object asn1Object = this.resp.signatureAlgorithm.ToAsn1Object();
|
|
IDictionary oids = OcspUtilities.oids;
|
|
IDictionary oids2 = OcspUtilities.oids;
|
|
throw new NullReferenceException();
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001910 RID: 6416
|
|
// (get) Token: 0x06009D82 RID: 40322 RVA: 0x0021065C File Offset: 0x0020E85C
|
|
[Token(Token = "0x17001910")]
|
|
public string SignatureAlgOid
|
|
{
|
|
[Token(Token = "0x6009D82")]
|
|
[Address(RVA = "0x162D8C0", Offset = "0x162C6C0", VA = "0x18162D8C0")]
|
|
get
|
|
{
|
|
Asn1Object asn1Object = this.resp.signatureAlgorithm.ToAsn1Object();
|
|
throw new NullReferenceException();
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009D83 RID: 40323 RVA: 0x00210680 File Offset: 0x0020E880
|
|
[Token(Token = "0x6009D83")]
|
|
[Address(RVA = "0x28B4A70", Offset = "0x28B3870", VA = "0x1828B4A70")]
|
|
[Obsolete]
|
|
public RespData GetResponseData()
|
|
{
|
|
ResponseData responseData = this.data;
|
|
RespData respData;
|
|
respData.data = responseData;
|
|
return respData;
|
|
}
|
|
|
|
// Token: 0x06009D84 RID: 40324 RVA: 0x0021069C File Offset: 0x0020E89C
|
|
[Token(Token = "0x6009D84")]
|
|
[Address(RVA = "0x162C470", Offset = "0x162B270", VA = "0x18162C470")]
|
|
public byte[] GetSignature()
|
|
{
|
|
return this.resp.GetSignatureOctets();
|
|
}
|
|
|
|
// Token: 0x06009D85 RID: 40325 RVA: 0x002106BC File Offset: 0x0020E8BC
|
|
[Token(Token = "0x6009D85")]
|
|
[Address(RVA = "0x28B4480", Offset = "0x28B3280", VA = "0x1828B4480")]
|
|
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_61;
|
|
}
|
|
byte[] array;
|
|
if (new X509CertificateParser().ReadCertificate(array) != 0)
|
|
{
|
|
}
|
|
if (num == 0)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return list;
|
|
IL_61:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009D86 RID: 40326 RVA: 0x00210730 File Offset: 0x0020E930
|
|
[Token(Token = "0x6009D86")]
|
|
[Address(RVA = "0x28B47F0", Offset = "0x28B35F0", VA = "0x1828B47F0")]
|
|
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: 0x06009D87 RID: 40327 RVA: 0x0021079C File Offset: 0x0020E99C
|
|
[Token(Token = "0x6009D87")]
|
|
[Address(RVA = "0x28B4710", Offset = "0x28B3510", VA = "0x1828B4710")]
|
|
public IX509Store GetCertificates(string type)
|
|
{
|
|
string text = "Certificate/" + type;
|
|
X509CollectionStoreParameters x509CollectionStoreParameters = new X509CollectionStoreParameters(this.GetCertList());
|
|
return X509StoreFactory.Create(text, x509CollectionStoreParameters);
|
|
}
|
|
|
|
// Token: 0x06009D88 RID: 40328 RVA: 0x002107D8 File Offset: 0x0020E9D8
|
|
[Token(Token = "0x6009D88")]
|
|
[Address(RVA = "0x28B4B70", Offset = "0x28B3970", VA = "0x1828B4B70")]
|
|
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: 0x06009D89 RID: 40329 RVA: 0x00210864 File Offset: 0x0020EA64
|
|
[Token(Token = "0x6009D89")]
|
|
[Address(RVA = "0x16362F0", Offset = "0x16350F0", VA = "0x1816362F0")]
|
|
public byte[] GetEncoded()
|
|
{
|
|
return this.resp.GetEncoded();
|
|
}
|
|
|
|
// Token: 0x06009D8A RID: 40330 RVA: 0x00210884 File Offset: 0x0020EA84
|
|
[Token(Token = "0x6009D8A")]
|
|
[Address(RVA = "0x28B43C0", Offset = "0x28B31C0", VA = "0x1828B43C0", Slot = "0")]
|
|
public override bool Equals(object obj)
|
|
{
|
|
if (obj != this)
|
|
{
|
|
if (obj != 0 && obj != 0)
|
|
{
|
|
Asn1Object asn1Object = this.resp.ToAsn1Object();
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// Token: 0x06009D8B RID: 40331 RVA: 0x002108B4 File Offset: 0x0020EAB4
|
|
[Token(Token = "0x6009D8B")]
|
|
[Address(RVA = "0x4DA700", Offset = "0x4D9500", VA = "0x1804DA700", Slot = "2")]
|
|
public override int GetHashCode()
|
|
{
|
|
Asn1Object asn1Object = this.resp.ToAsn1Object();
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x040069FC RID: 27132
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x40069FC")]
|
|
private readonly BasicOcspResponse resp;
|
|
|
|
// Token: 0x040069FD RID: 27133
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x40069FD")]
|
|
private readonly ResponseData data;
|
|
}
|
|
}
|