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: 0x02001E3B RID: 7739
|
|
[Token(Token = "0x2001E3B")]
|
|
internal class KeyTransRecipientInfoGenerator : RecipientInfoGenerator
|
|
{
|
|
// Token: 0x0600C22D RID: 49709 RVA: 0x002BE908 File Offset: 0x002BCB08
|
|
[Token(Token = "0x600C22D")]
|
|
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
|
internal KeyTransRecipientInfoGenerator()
|
|
{
|
|
}
|
|
|
|
// Token: 0x17001E16 RID: 7702
|
|
// (set) Token: 0x0600C22E RID: 49710 RVA: 0x002BE91C File Offset: 0x002BCB1C
|
|
[Token(Token = "0x17001E16")]
|
|
internal X509Certificate RecipientCert
|
|
{
|
|
[Token(Token = "0x600C22E")]
|
|
[Address(RVA = "0x2931FD0", Offset = "0x2930FD0", VA = "0x182931FD0")]
|
|
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: 0x17001E17 RID: 7703
|
|
// (set) Token: 0x0600C22F RID: 49711 RVA: 0x002BE960 File Offset: 0x002BCB60
|
|
[Token(Token = "0x17001E17")]
|
|
internal AsymmetricKeyParameter RecipientPublicKey
|
|
{
|
|
[Token(Token = "0x600C22F")]
|
|
[Address(RVA = "0x2932050", Offset = "0x2931050", VA = "0x182932050")]
|
|
set
|
|
{
|
|
this.recipientPublicKey = value;
|
|
SubjectPublicKeyInfo subjectPublicKeyInfo = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(this.recipientPublicKey);
|
|
this.info = subjectPublicKeyInfo;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001E18 RID: 7704
|
|
// (set) Token: 0x0600C230 RID: 49712 RVA: 0x002BE994 File Offset: 0x002BCB94
|
|
[Token(Token = "0x17001E18")]
|
|
internal Asn1OctetString SubjectKeyIdentifier
|
|
{
|
|
[Token(Token = "0x600C230")]
|
|
[Address(RVA = "0x415810", Offset = "0x414810", VA = "0x180415810")]
|
|
set
|
|
{
|
|
this.subjectKeyIdentifier = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600C231 RID: 49713 RVA: 0x002BE9A8 File Offset: 0x002BCBA8
|
|
[Token(Token = "0x600C231")]
|
|
[Address(RVA = "0x2931D00", Offset = "0x2930D00", VA = "0x182931D00", 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: 0x04007ADC RID: 31452
|
|
[Token(Token = "0x4007ADC")]
|
|
private static readonly CmsEnvelopedHelper Helper = CmsEnvelopedHelper.Instance;
|
|
|
|
// Token: 0x04007ADD RID: 31453
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4007ADD")]
|
|
private TbsCertificateStructure recipientTbsCert;
|
|
|
|
// Token: 0x04007ADE RID: 31454
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4007ADE")]
|
|
private AsymmetricKeyParameter recipientPublicKey;
|
|
|
|
// Token: 0x04007ADF RID: 31455
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4007ADF")]
|
|
private Asn1OctetString subjectKeyIdentifier;
|
|
|
|
// Token: 0x04007AE0 RID: 31456
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4007AE0")]
|
|
private SubjectPublicKeyInfo info;
|
|
}
|
|
}
|