121 lines
4.3 KiB
C#
121 lines
4.3 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.X509;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.X509;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Cms
|
|
{
|
|
// Token: 0x02001D5B RID: 7515
|
|
[Token(Token = "0x2001D5B")]
|
|
internal class KeyTransRecipientInfoGenerator : RecipientInfoGenerator
|
|
{
|
|
// Token: 0x0600BE5F RID: 48735 RVA: 0x002B6010 File Offset: 0x002B4210
|
|
[Token(Token = "0x600BE5F")]
|
|
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
|
internal KeyTransRecipientInfoGenerator()
|
|
{
|
|
}
|
|
|
|
// Token: 0x17001D79 RID: 7545
|
|
// (set) Token: 0x0600BE60 RID: 48736 RVA: 0x002B6024 File Offset: 0x002B4224
|
|
[Token(Token = "0x17001D79")]
|
|
internal X509Certificate RecipientCert
|
|
{
|
|
[Token(Token = "0x600BE60")]
|
|
[Address(RVA = "0x20114D0", Offset = "0x20102D0", VA = "0x1820114D0")]
|
|
set
|
|
{
|
|
DateTime notAfter = value.NotAfter;
|
|
Asn1Object asn1Object;
|
|
TbsCertificateStructure instance = TbsCertificateStructure.GetInstance(asn1Object);
|
|
this.recipientTbsCert = instance;
|
|
ICollection collection;
|
|
this.recipientPublicKey = collection;
|
|
SubjectPublicKeyInfo subjectPublicKeyInfo = this.recipientTbsCert.subjectPublicKeyInfo;
|
|
this.info = subjectPublicKeyInfo;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001D7A RID: 7546
|
|
// (set) Token: 0x0600BE61 RID: 48737 RVA: 0x002B6068 File Offset: 0x002B4268
|
|
[Token(Token = "0x17001D7A")]
|
|
internal AsymmetricKeyParameter RecipientPublicKey
|
|
{
|
|
[Token(Token = "0x600BE61")]
|
|
[Address(RVA = "0x2011550", Offset = "0x2010350", VA = "0x182011550")]
|
|
set
|
|
{
|
|
this.recipientPublicKey = value;
|
|
SubjectPublicKeyInfo subjectPublicKeyInfo = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(this.recipientPublicKey);
|
|
this.info = subjectPublicKeyInfo;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001D7B RID: 7547
|
|
// (set) Token: 0x0600BE62 RID: 48738 RVA: 0x002B609C File Offset: 0x002B429C
|
|
[Token(Token = "0x17001D7B")]
|
|
internal Asn1OctetString SubjectKeyIdentifier
|
|
{
|
|
[Token(Token = "0x600BE62")]
|
|
[Address(RVA = "0x460F90", Offset = "0x45FD90", VA = "0x180460F90")]
|
|
set
|
|
{
|
|
this.subjectKeyIdentifier = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BE63 RID: 48739 RVA: 0x002B60B0 File Offset: 0x002B42B0
|
|
[Token(Token = "0x600BE63")]
|
|
[Address(RVA = "0x2011200", Offset = "0x2010000", VA = "0x182011200", Slot = "4")]
|
|
public RecipientInfo Generate(KeyParameter contentEncryptionKey, SecureRandom random)
|
|
{
|
|
byte[] key = contentEncryptionKey.GetKey();
|
|
AlgorithmIdentifier algID = this.info.algID;
|
|
CmsEnvelopedHelper helper = KeyTransRecipientInfoGenerator.Helper;
|
|
Asn1Object asn1Object = algID.ToAsn1Object();
|
|
ParametersWithRandom parametersWithRandom = new ParametersWithRandom(this.recipientPublicKey, random);
|
|
int length = key.Length;
|
|
TbsCertificateStructure tbsCertificateStructure = this.recipientTbsCert;
|
|
if (tbsCertificateStructure == 0)
|
|
{
|
|
RecipientIdentifier recipientIdentifier = new RecipientIdentifier(this.subjectKeyIdentifier);
|
|
}
|
|
X509Name issuer = tbsCertificateStructure.issuer;
|
|
BigInteger value = tbsCertificateStructure.serialNumber.Value;
|
|
DerOctetString derOctetString;
|
|
return new RecipientInfo(new KeyTransRecipientInfo(new RecipientIdentifier(new IssuerAndSerialNumber(issuer, value)), algID, derOctetString));
|
|
}
|
|
|
|
// Token: 0x04007923 RID: 31011
|
|
[Token(Token = "0x4007923")]
|
|
private static readonly CmsEnvelopedHelper Helper = CmsEnvelopedHelper.Instance;
|
|
|
|
// Token: 0x04007924 RID: 31012
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4007924")]
|
|
private TbsCertificateStructure recipientTbsCert;
|
|
|
|
// Token: 0x04007925 RID: 31013
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4007925")]
|
|
private AsymmetricKeyParameter recipientPublicKey;
|
|
|
|
// Token: 0x04007926 RID: 31014
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4007926")]
|
|
private Asn1OctetString subjectKeyIdentifier;
|
|
|
|
// Token: 0x04007927 RID: 31015
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4007927")]
|
|
private SubjectPublicKeyInfo info;
|
|
}
|
|
}
|