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; } }