Files
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

262 lines
9.4 KiB
C#

using System;
using System.Collections;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Ess;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Pkcs;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Tsp;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Cms;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
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.Tsp
{
// Token: 0x02001A50 RID: 6736
[Token(Token = "0x2001A50")]
public class TimeStampTokenGenerator
{
// Token: 0x06009EA6 RID: 40614 RVA: 0x0020A5D0 File Offset: 0x002087D0
[Token(Token = "0x6009EA6")]
[Address(RVA = "0x5F1C20", Offset = "0x5F0C20", VA = "0x1805F1C20")]
public TimeStampTokenGenerator(AsymmetricKeyParameter key, X509Certificate cert, string digestOID, string tsaPolicyOID)
{
}
// Token: 0x06009EA7 RID: 40615 RVA: 0x0020A5E0 File Offset: 0x002087E0
[Token(Token = "0x6009EA7")]
[Address(RVA = "0x5F1940", Offset = "0x5F0940", VA = "0x1805F1940")]
public TimeStampTokenGenerator(AsymmetricKeyParameter key, X509Certificate cert, string digestOID, string tsaPolicyOID, BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable signedAttr, BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable unsignedAttr)
{
this.accuracySeconds = (int)((ulong)(-1L));
this.accuracyMicros = (int)((ulong)4294967295L);
base..ctor();
this.key = key;
this.cert = cert;
this.digestOID = digestOID;
this.tsaPolicyOID = 0;
this.unsignedAttr = 0;
TspUtil.ValidateCertificate(cert);
if (cert == 0)
{
IDictionary dictionary = Platform.CreateHashtable();
}
AsymmetricKeyParameter publicKey = cert.GetPublicKey();
byte[] array;
EssCertID essCertID = new EssCertID(array);
DerObjectIdentifier idAASigningCertificate = PkcsObjectIdentifiers.IdAASigningCertificate;
DerSet derSet = new DerSet(new SigningCertificate(essCertID));
BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.Attribute attribute = new BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.Attribute(idAASigningCertificate, derSet);
IDictionary dictionary2;
BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable attributeTable = new BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable(dictionary2);
this.signedAttr = attributeTable;
}
// Token: 0x06009EA8 RID: 40616 RVA: 0x0020A6B4 File Offset: 0x002088B4
[Token(Token = "0x6009EA8")]
[Address(RVA = "0x417A10", Offset = "0x416A10", VA = "0x180417A10")]
public void SetCertificates(IX509Store certificates)
{
this.x509Certs = certificates;
}
// Token: 0x06009EA9 RID: 40617 RVA: 0x0020A6C8 File Offset: 0x002088C8
[Token(Token = "0x6009EA9")]
[Address(RVA = "0x417A20", Offset = "0x416A20", VA = "0x180417A20")]
public void SetCrls(IX509Store crls)
{
this.x509Crls = crls;
}
// Token: 0x06009EAA RID: 40618 RVA: 0x0020A6DC File Offset: 0x002088DC
[Token(Token = "0x6009EAA")]
[Address(RVA = "0x470D10", Offset = "0x46FD10", VA = "0x180470D10")]
public void SetAccuracySeconds(int accuracySeconds)
{
this.accuracySeconds = accuracySeconds;
}
// Token: 0x06009EAB RID: 40619 RVA: 0x0020A6F0 File Offset: 0x002088F0
[Token(Token = "0x6009EAB")]
[Address(RVA = "0x5F1920", Offset = "0x5F0920", VA = "0x1805F1920")]
public void SetAccuracyMillis(int accuracyMillis)
{
this.accuracyMillis = accuracyMillis;
}
// Token: 0x06009EAC RID: 40620 RVA: 0x0020A704 File Offset: 0x00208904
[Token(Token = "0x6009EAC")]
[Address(RVA = "0x5F1910", Offset = "0x5F0910", VA = "0x1805F1910")]
public void SetAccuracyMicros(int accuracyMicros)
{
this.accuracyMicros = accuracyMicros;
}
// Token: 0x06009EAD RID: 40621 RVA: 0x0020A718 File Offset: 0x00208918
[Token(Token = "0x6009EAD")]
[Address(RVA = "0x5F1930", Offset = "0x5F0930", VA = "0x1805F1930")]
public void SetOrdering(bool ordering)
{
this.ordering = ordering;
}
// Token: 0x06009EAE RID: 40622 RVA: 0x0020A72C File Offset: 0x0020892C
[Token(Token = "0x6009EAE")]
[Address(RVA = "0x415810", Offset = "0x414810", VA = "0x180415810")]
public void SetTsa(GeneralName tsa)
{
this.tsa = tsa;
}
// Token: 0x06009EAF RID: 40623 RVA: 0x0020A740 File Offset: 0x00208940
[Token(Token = "0x6009EAF")]
[Address(RVA = "0x5F12A0", Offset = "0x5F02A0", VA = "0x1805F12A0")]
public TimeStampToken Generate(TimeStampRequest request, BigInteger serialNumber, DateTime genTime)
{
Asn1Object asn1Object = request.req.messageImprint.hashAlgorithm.ToAsn1Object();
DerNull instance = DerNull.Instance;
DerObjectIdentifier derObjectIdentifier;
AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(derObjectIdentifier, instance);
byte[] hashedMessage = request.req.messageImprint.hashedMessage;
MessageImprint messageImprint = new MessageImprint(algorithmIdentifier, hashedMessage);
int num = this.accuracySeconds;
if (this.accuracyMicros > 0)
{
int num2 = 0;
if (num > 0)
{
DerInteger derInteger = new DerInteger(num);
}
int num3 = this.accuracyMillis;
DerInteger derInteger2;
if (num3 > 0)
{
derInteger2 = new DerInteger(num3);
}
int num4 = this.accuracyMicros;
DerInteger derInteger3;
if (num4 > 0)
{
derInteger3 = new DerInteger(num3);
}
Accuracy accuracy = new Accuracy(num2, derInteger2, derInteger3);
}
bool flag = this.ordering;
if (flag)
{
DerBoolean instance2 = DerBoolean.GetInstance(flag);
}
DerInteger nonce = request.req.nonce;
if (nonce != 0 && nonce.Value != 0)
{
DerInteger nonce2 = request.req.nonce;
if (nonce2 == 0)
{
}
DerInteger derInteger4 = new DerInteger(nonce2.Value);
}
DerObjectIdentifier derObjectIdentifier2 = new DerObjectIdentifier(this.tsaPolicyOID);
DerObjectIdentifier tsaPolicy = request.req.tsaPolicy;
if (tsaPolicy != 0)
{
string identifier = tsaPolicy.identifier;
if (identifier != 0)
{
DerObjectIdentifier derObjectIdentifier3 = new DerObjectIdentifier(identifier);
}
}
DerGeneralizedTime derGeneralizedTime = new DerGeneralizedTime(genTime);
X509Extensions extensions = request.req.extensions;
CmsSignedDataGenerator cmsSignedDataGenerator = new CmsSignedDataGenerator();
TstInfo tstInfo;
byte[] derEncoded = tstInfo.GetDerEncoded();
DerBoolean certReq = request.req.certReq;
if (certReq != 0 && certReq.IsTrue)
{
IX509Store ix509Store = this.x509Certs;
cmsSignedDataGenerator.AddCertificates(ix509Store);
}
IX509Store ix509Store2 = this.x509Crls;
cmsSignedDataGenerator.AddCrls(ix509Store2);
BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable attributeTable = this.signedAttr;
BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable attributeTable2 = this.unsignedAttr;
string text = this.digestOID;
X509Certificate x509Certificate = this.cert;
AsymmetricKeyParameter asymmetricKeyParameter = this.key;
cmsSignedDataGenerator.AddSigner(asymmetricKeyParameter, x509Certificate, text, attributeTable, attributeTable2);
string identifier2 = PkcsObjectIdentifiers.IdCTTstInfo.identifier;
CmsProcessableByteArray cmsProcessableByteArray = new CmsProcessableByteArray(derEncoded);
return new TimeStampToken(cmsSignedDataGenerator.Generate(identifier2, cmsProcessableByteArray, true));
}
// Token: 0x04006A7D RID: 27261
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006A7D")]
private int accuracySeconds;
// Token: 0x04006A7E RID: 27262
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4006A7E")]
private int accuracyMillis;
// Token: 0x04006A7F RID: 27263
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006A7F")]
private int accuracyMicros;
// Token: 0x04006A80 RID: 27264
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4006A80")]
private bool ordering;
// Token: 0x04006A81 RID: 27265
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006A81")]
private GeneralName tsa;
// Token: 0x04006A82 RID: 27266
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006A82")]
private string tsaPolicyOID;
// Token: 0x04006A83 RID: 27267
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006A83")]
private AsymmetricKeyParameter key;
// Token: 0x04006A84 RID: 27268
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4006A84")]
private X509Certificate cert;
// Token: 0x04006A85 RID: 27269
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4006A85")]
private string digestOID;
// Token: 0x04006A86 RID: 27270
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4006A86")]
private BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable signedAttr;
// Token: 0x04006A87 RID: 27271
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006A87")]
private BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable unsignedAttr;
// Token: 0x04006A88 RID: 27272
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006A88")]
private IX509Store x509Certs;
// Token: 0x04006A89 RID: 27273
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4006A89")]
private IX509Store x509Crls;
}
}