oh dear
This commit is contained in:
+253
@@ -0,0 +1,253 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.Ecc;
|
||||
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.Utilities;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.X509;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Cms
|
||||
{
|
||||
// Token: 0x02001D59 RID: 7513
|
||||
[Token(Token = "0x2001D59")]
|
||||
internal class KeyAgreeRecipientInfoGenerator : RecipientInfoGenerator
|
||||
{
|
||||
// Token: 0x0600BE4E RID: 48718 RVA: 0x002B5840 File Offset: 0x002B3A40
|
||||
[Token(Token = "0x600BE4E")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
internal KeyAgreeRecipientInfoGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17001D75 RID: 7541
|
||||
// (set) Token: 0x0600BE4F RID: 48719 RVA: 0x002B5854 File Offset: 0x002B3A54
|
||||
[Token(Token = "0x17001D75")]
|
||||
internal DerObjectIdentifier KeyAgreementOID
|
||||
{
|
||||
[Token(Token = "0x600BE4F")]
|
||||
[Address(RVA = "0x3F7200", Offset = "0x3F6000", VA = "0x1803F7200")]
|
||||
set
|
||||
{
|
||||
this.keyAgreementOID = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D76 RID: 7542
|
||||
// (set) Token: 0x0600BE50 RID: 48720 RVA: 0x002B5868 File Offset: 0x002B3A68
|
||||
[Token(Token = "0x17001D76")]
|
||||
internal DerObjectIdentifier KeyEncryptionOID
|
||||
{
|
||||
[Token(Token = "0x600BE50")]
|
||||
[Address(RVA = "0x3F7210", Offset = "0x3F6010", VA = "0x1803F7210")]
|
||||
set
|
||||
{
|
||||
this.keyEncryptionOID = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D77 RID: 7543
|
||||
// (set) Token: 0x0600BE51 RID: 48721 RVA: 0x002B587C File Offset: 0x002B3A7C
|
||||
[Token(Token = "0x17001D77")]
|
||||
internal ICollection RecipientCerts
|
||||
{
|
||||
[Token(Token = "0x600BE51")]
|
||||
[Address(RVA = "0x20100F0", Offset = "0x200EEF0", VA = "0x1820100F0")]
|
||||
set
|
||||
{
|
||||
IList list = Platform.CreateArrayList(value);
|
||||
this.recipientCerts = list;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001D78 RID: 7544
|
||||
// (set) Token: 0x0600BE52 RID: 48722 RVA: 0x002B5898 File Offset: 0x002B3A98
|
||||
[Token(Token = "0x17001D78")]
|
||||
internal AsymmetricCipherKeyPair SenderKeyPair
|
||||
{
|
||||
[Token(Token = "0x600BE52")]
|
||||
[Address(RVA = "0x409C60", Offset = "0x408A60", VA = "0x180409C60")]
|
||||
set
|
||||
{
|
||||
this.senderKeyPair = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BE53 RID: 48723 RVA: 0x002B58AC File Offset: 0x002B3AAC
|
||||
[Token(Token = "0x600BE53")]
|
||||
[Address(RVA = "0x200F360", Offset = "0x200E160", VA = "0x18200F360", Slot = "4")]
|
||||
public RecipientInfo Generate(KeyParameter contentEncryptionKey, SecureRandom random)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
int num = 0;
|
||||
byte[] key = contentEncryptionKey.GetKey();
|
||||
AsymmetricCipherKeyPair asymmetricCipherKeyPair = this.senderKeyPair;
|
||||
AsymmetricKeyParameter publicParameter = asymmetricCipherKeyPair.publicParameter;
|
||||
AsymmetricKeyParameter privateParameter = asymmetricCipherKeyPair.privateParameter;
|
||||
OriginatorIdentifierOrKey originatorIdentifierOrKey = new OriginatorIdentifierOrKey(KeyAgreeRecipientInfoGenerator.CreateOriginatorPublicKey(publicParameter));
|
||||
string identifier = this.keyAgreementOID.identifier;
|
||||
string ecmqvSha1Kdf = CmsEnvelopedGenerator.ECMqvSha1Kdf;
|
||||
if (identifier.Equals(ecmqvSha1Kdf))
|
||||
{
|
||||
IAsymmetricCipherKeyPairGenerator keyPairGenerator = GeneratorUtilities.GetKeyPairGenerator(this.keyAgreementOID);
|
||||
if (publicParameter == 0 || publicParameter == 0)
|
||||
{
|
||||
goto IL_25C;
|
||||
}
|
||||
int num2 = 0;
|
||||
if (num < num2)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
int num3 = 0;
|
||||
if (num < num3)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
OriginatorPublicKey originatorPublicKey;
|
||||
int num4;
|
||||
MQVuserKeyingMaterial mqvuserKeyingMaterial = new MQVuserKeyingMaterial(originatorPublicKey, num4);
|
||||
num4 = 0;
|
||||
DerOctetString derOctetString = new DerOctetString(mqvuserKeyingMaterial);
|
||||
if (num == 0)
|
||||
{
|
||||
}
|
||||
if (num == 0)
|
||||
{
|
||||
goto IL_250;
|
||||
}
|
||||
if (mqvuserKeyingMaterial == 0)
|
||||
{
|
||||
}
|
||||
if (mqvuserKeyingMaterial == 0)
|
||||
{
|
||||
goto IL_250;
|
||||
}
|
||||
if (privateParameter == 0)
|
||||
{
|
||||
}
|
||||
if (privateParameter == 0)
|
||||
{
|
||||
goto IL_250;
|
||||
}
|
||||
}
|
||||
Asn1Encodable[] array = new Asn1Encodable[2];
|
||||
DerObjectIdentifier derObjectIdentifier = this.keyEncryptionOID;
|
||||
if (derObjectIdentifier != 0)
|
||||
{
|
||||
}
|
||||
array[0] = derObjectIdentifier;
|
||||
DerNull instance = DerNull.Instance;
|
||||
if (instance != 0)
|
||||
{
|
||||
}
|
||||
array[1] = instance;
|
||||
DerSequence derSequence = new DerSequence(array);
|
||||
AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(this.keyAgreementOID, derSequence);
|
||||
IList list = this.recipientCerts;
|
||||
Asn1EncodableVector asn1EncodableVector;
|
||||
if (asn1EncodableVector != 0)
|
||||
{
|
||||
if (asn1EncodableVector == 0)
|
||||
{
|
||||
}
|
||||
if (asn1EncodableVector != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ArrayTypeMismatchException ex;
|
||||
if (ex != 0)
|
||||
{
|
||||
}
|
||||
if (num == 0)
|
||||
{
|
||||
goto Block_9;
|
||||
}
|
||||
}
|
||||
}
|
||||
Asn1Object asn1Object;
|
||||
TbsCertificateStructure instance2 = TbsCertificateStructure.GetInstance(asn1Object);
|
||||
X509Name issuer = instance2.issuer;
|
||||
BigInteger value = instance2.serialNumber.Value;
|
||||
KeyAgreeRecipientIdentifier keyAgreeRecipientIdentifier = new KeyAgreeRecipientIdentifier(new IssuerAndSerialNumber(issuer, value));
|
||||
string identifier2 = this.keyAgreementOID.identifier;
|
||||
string ecmqvSha1Kdf2 = CmsEnvelopedGenerator.ECMqvSha1Kdf;
|
||||
if (identifier2.Equals(ecmqvSha1Kdf2))
|
||||
{
|
||||
}
|
||||
DerObjectIdentifier derObjectIdentifier2 = this.keyAgreementOID;
|
||||
string identifier3 = this.keyEncryptionOID.identifier;
|
||||
IBasicAgreement basicAgreementWithKdf = AgreementUtilities.GetBasicAgreementWithKdf(derObjectIdentifier2, identifier3);
|
||||
DerObjectIdentifier derObjectIdentifier3 = this.keyEncryptionOID;
|
||||
int num5 = 0;
|
||||
int defaultKeySize = GeneratorUtilities.GetDefaultKeySize(derObjectIdentifier3);
|
||||
num5 += defaultKeySize;
|
||||
byte[] array2;
|
||||
KeyParameter keyParameter = ParameterUtilities.CreateKeyParameter(this.keyEncryptionOID, array2);
|
||||
CmsEnvelopedHelper helper = KeyAgreeRecipientInfoGenerator.Helper;
|
||||
DerObjectIdentifier derObjectIdentifier4 = this.keyEncryptionOID;
|
||||
int num6 = 0;
|
||||
string identifier4 = derObjectIdentifier4.identifier;
|
||||
IWrapper wrapper = helper.CreateWrapper(identifier4);
|
||||
ParametersWithRandom parametersWithRandom = new ParametersWithRandom(keyParameter, num6);
|
||||
Asn1Encodable[] array3 = new Asn1Encodable[1];
|
||||
DerOctetString derOctetString2;
|
||||
RecipientEncryptedKey recipientEncryptedKey = new RecipientEncryptedKey(keyAgreeRecipientIdentifier, derOctetString2);
|
||||
throw new ArrayTypeMismatchException();
|
||||
Block_9:
|
||||
KeyAgreeRecipientInfo keyAgreeRecipientInfo;
|
||||
return new RecipientInfo(keyAgreeRecipientInfo);
|
||||
IL_250:
|
||||
throw new NullReferenceException();
|
||||
IL_25C:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BE54 RID: 48724 RVA: 0x002B5B30 File Offset: 0x002B3D30
|
||||
[Token(Token = "0x600BE54")]
|
||||
[Address(RVA = "0x200F240", Offset = "0x200E040", VA = "0x18200F240")]
|
||||
private static OriginatorPublicKey CreateOriginatorPublicKey(AsymmetricKeyParameter publicKey)
|
||||
{
|
||||
SubjectPublicKeyInfo subjectPublicKeyInfo = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(publicKey);
|
||||
Asn1Object asn1Object = subjectPublicKeyInfo.algID.ToAsn1Object();
|
||||
byte[] octets = subjectPublicKeyInfo.keyData.GetOctets();
|
||||
AlgorithmIdentifier algorithmIdentifier;
|
||||
return new OriginatorPublicKey(algorithmIdentifier, octets);
|
||||
}
|
||||
|
||||
// Token: 0x0400791C RID: 31004
|
||||
[Token(Token = "0x400791C")]
|
||||
private static readonly CmsEnvelopedHelper Helper = CmsEnvelopedHelper.Instance;
|
||||
|
||||
// Token: 0x0400791D RID: 31005
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400791D")]
|
||||
private DerObjectIdentifier keyAgreementOID;
|
||||
|
||||
// Token: 0x0400791E RID: 31006
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400791E")]
|
||||
private DerObjectIdentifier keyEncryptionOID;
|
||||
|
||||
// Token: 0x0400791F RID: 31007
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400791F")]
|
||||
private IList recipientCerts;
|
||||
|
||||
// Token: 0x04007920 RID: 31008
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007920")]
|
||||
private AsymmetricCipherKeyPair senderKeyPair;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user