public abstract class org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient implements org.bouncycastle.cms.KeyAgreeRecipient
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient
super_class: java.lang.Object
{
private static final java.util.Set possibleOldMessages;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.security.PrivateKey recipientKey;
descriptor: Ljava/security/PrivateKey;
flags: (0x0002) ACC_PRIVATE
protected org.bouncycastle.cms.jcajce.EnvelopedDataHelper helper;
descriptor: Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
flags: (0x0004) ACC_PROTECTED
protected org.bouncycastle.cms.jcajce.EnvelopedDataHelper contentHelper;
descriptor: Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
flags: (0x0004) ACC_PROTECTED
private org.bouncycastle.operator.SecretKeySizeProvider keySizeProvider;
descriptor: Lorg/bouncycastle/operator/SecretKeySizeProvider;
flags: (0x0002) ACC_PRIVATE
private static org.bouncycastle.cms.jcajce.KeyMaterialGenerator old_ecc_cms_Generator;
descriptor: Lorg/bouncycastle/cms/jcajce/KeyMaterialGenerator;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static org.bouncycastle.cms.jcajce.KeyMaterialGenerator ecc_cms_Generator;
descriptor: Lorg/bouncycastle/cms/jcajce/KeyMaterialGenerator;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putstatic org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.possibleOldMessages:Ljava/util/Set;
1: getstatic org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.possibleOldMessages:Ljava/util/Set;
getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.dhSinglePass_stdDH_sha1kdf_scheme:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: getstatic org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.possibleOldMessages:Ljava/util/Set;
getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.mqvSinglePass_sha1kdf_scheme:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
3: new org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient$1
dup
invokespecial org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient$1.<init>:()V
putstatic org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.old_ecc_cms_Generator:Lorg/bouncycastle/cms/jcajce/KeyMaterialGenerator;
4: new org.bouncycastle.cms.jcajce.RFC5753KeyMaterialGenerator
dup
invokespecial org.bouncycastle.cms.jcajce.RFC5753KeyMaterialGenerator.<init>:()V
putstatic org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.ecc_cms_Generator:Lorg/bouncycastle/cms/jcajce/KeyMaterialGenerator;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.security.PrivateKey);
descriptor: (Ljava/security/PrivateKey;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.bouncycastle.cms.jcajce.EnvelopedDataHelper
dup
new org.bouncycastle.cms.jcajce.DefaultJcaJceExtHelper
dup
invokespecial org.bouncycastle.cms.jcajce.DefaultJcaJceExtHelper.<init>:()V
invokespecial org.bouncycastle.cms.jcajce.EnvelopedDataHelper.<init>:(Lorg/bouncycastle/cms/jcajce/JcaJceExtHelper;)V
putfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
2: aload 0
aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
putfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.contentHelper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
3: aload 0
new org.bouncycastle.operator.DefaultSecretKeySizeProvider
dup
invokespecial org.bouncycastle.operator.DefaultSecretKeySizeProvider.<init>:()V
putfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.keySizeProvider:Lorg/bouncycastle/operator/SecretKeySizeProvider;
4: aload 0
aload 1
putfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.recipientKey:Ljava/security/PrivateKey;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bouncycastle/cms/jcajce/JceKeyAgreeRecipient;
0 6 1 recipientKey Ljava/security/PrivateKey;
MethodParameters:
Name Flags
recipientKey
public org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient setProvider(java.security.Provider);
descriptor: (Ljava/security/Provider;)Lorg/bouncycastle/cms/jcajce/JceKeyAgreeRecipient;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new org.bouncycastle.cms.jcajce.EnvelopedDataHelper
dup
new org.bouncycastle.cms.jcajce.ProviderJcaJceExtHelper
dup
aload 1
invokespecial org.bouncycastle.cms.jcajce.ProviderJcaJceExtHelper.<init>:(Ljava/security/Provider;)V
invokespecial org.bouncycastle.cms.jcajce.EnvelopedDataHelper.<init>:(Lorg/bouncycastle/cms/jcajce/JcaJceExtHelper;)V
putfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
1: aload 0
aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
putfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.contentHelper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
2: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/cms/jcajce/JceKeyAgreeRecipient;
0 3 1 provider Ljava/security/Provider;
MethodParameters:
Name Flags
provider
public org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient setProvider(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/bouncycastle/cms/jcajce/JceKeyAgreeRecipient;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new org.bouncycastle.cms.jcajce.EnvelopedDataHelper
dup
new org.bouncycastle.cms.jcajce.NamedJcaJceExtHelper
dup
aload 1
invokespecial org.bouncycastle.cms.jcajce.NamedJcaJceExtHelper.<init>:(Ljava/lang/String;)V
invokespecial org.bouncycastle.cms.jcajce.EnvelopedDataHelper.<init>:(Lorg/bouncycastle/cms/jcajce/JcaJceExtHelper;)V
putfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
1: aload 0
aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
putfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.contentHelper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
2: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/cms/jcajce/JceKeyAgreeRecipient;
0 3 1 providerName Ljava/lang/String;
MethodParameters:
Name Flags
providerName
public org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient setContentProvider(java.security.Provider);
descriptor: (Ljava/security/Provider;)Lorg/bouncycastle/cms/jcajce/JceKeyAgreeRecipient;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.bouncycastle.cms.jcajce.CMSUtils.createContentHelper:(Ljava/security/Provider;)Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
putfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.contentHelper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/cms/jcajce/JceKeyAgreeRecipient;
0 2 1 provider Ljava/security/Provider;
MethodParameters:
Name Flags
provider
public org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient setContentProvider(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/bouncycastle/cms/jcajce/JceKeyAgreeRecipient;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.bouncycastle.cms.jcajce.CMSUtils.createContentHelper:(Ljava/lang/String;)Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
putfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.contentHelper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/cms/jcajce/JceKeyAgreeRecipient;
0 2 1 providerName Ljava/lang/String;
MethodParameters:
Name Flags
providerName
private javax.crypto.SecretKey calculateAgreedWrapKey(org.bouncycastle.asn1.x509.AlgorithmIdentifier, org.bouncycastle.asn1.x509.AlgorithmIdentifier, java.security.PublicKey, org.bouncycastle.asn1.ASN1OctetString, java.security.PrivateKey, org.bouncycastle.cms.jcajce.KeyMaterialGenerator);
descriptor: (Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Ljava/security/PublicKey;Lorg/bouncycastle/asn1/ASN1OctetString;Ljava/security/PrivateKey;Lorg/bouncycastle/cms/jcajce/KeyMaterialGenerator;)Ljavax/crypto/SecretKey;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=14, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 1
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokestatic org.bouncycastle.cms.jcajce.CMSUtils.isMQV:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
ifeq 18
1: aload 4
invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
invokestatic org.bouncycastle.asn1.cms.ecc.MQVuserKeyingMaterial.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cms/ecc/MQVuserKeyingMaterial;
astore 7
start local 7 2: new org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
dup
3: aload 0
invokevirtual org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.getPrivateKeyAlgorithmIdentifier:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
4: aload 7
invokevirtual org.bouncycastle.asn1.cms.ecc.MQVuserKeyingMaterial.getEphemeralPublicKey:()Lorg/bouncycastle/asn1/cms/OriginatorPublicKey;
invokevirtual org.bouncycastle.asn1.cms.OriginatorPublicKey.getPublicKey:()Lorg/bouncycastle/asn1/DERBitString;
invokevirtual org.bouncycastle.asn1.DERBitString.getBytes:()[B
5: invokespecial org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)V
astore 8
start local 8 6: new java.security.spec.X509EncodedKeySpec
dup
aload 8
invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getEncoded:()[B
invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
astore 9
start local 9 7: aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
aload 1
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.cms.jcajce.EnvelopedDataHelper.createKeyFactory:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Ljava/security/KeyFactory;
astore 10
start local 10 8: aload 10
aload 9
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
astore 11
start local 11 9: aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
aload 1
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.cms.jcajce.EnvelopedDataHelper.createKeyAgreement:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Ljavax/crypto/KeyAgreement;
astore 12
start local 12 10: aload 7
invokevirtual org.bouncycastle.asn1.cms.ecc.MQVuserKeyingMaterial.getAddedukm:()Lorg/bouncycastle/asn1/ASN1OctetString;
ifnull 11
aload 7
invokevirtual org.bouncycastle.asn1.cms.ecc.MQVuserKeyingMaterial.getAddedukm:()Lorg/bouncycastle/asn1/ASN1OctetString;
invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
goto 12
StackMap locals: org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient org.bouncycastle.asn1.x509.AlgorithmIdentifier org.bouncycastle.asn1.x509.AlgorithmIdentifier java.security.PublicKey org.bouncycastle.asn1.ASN1OctetString java.security.PrivateKey org.bouncycastle.cms.jcajce.KeyMaterialGenerator org.bouncycastle.asn1.cms.ecc.MQVuserKeyingMaterial org.bouncycastle.asn1.x509.SubjectPublicKeyInfo java.security.spec.X509EncodedKeySpec java.security.KeyFactory java.security.PublicKey javax.crypto.KeyAgreement
StackMap stack:
11: aconst_null
StackMap locals:
StackMap stack: byte[]
12: astore 13
start local 13 13: aload 6
getstatic org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.old_ecc_cms_Generator:Lorg/bouncycastle/cms/jcajce/KeyMaterialGenerator;
if_acmpne 15
14: getstatic org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.old_ecc_cms_Generator:Lorg/bouncycastle/cms/jcajce/KeyMaterialGenerator;
aload 2
aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.keySizeProvider:Lorg/bouncycastle/operator/SecretKeySizeProvider;
aload 2
invokeinterface org.bouncycastle.operator.SecretKeySizeProvider.getKeySize:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)I
aload 13
invokeinterface org.bouncycastle.cms.jcajce.KeyMaterialGenerator.generateKDFMaterial:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;I[B)[B
astore 13
15: StackMap locals: byte[]
StackMap stack:
aload 12
aload 5
new org.bouncycastle.jcajce.spec.MQVParameterSpec
dup
aload 5
aload 11
aload 13
invokespecial org.bouncycastle.jcajce.spec.MQVParameterSpec.<init>:(Ljava/security/PrivateKey;Ljava/security/PublicKey;[B)V
invokevirtual javax.crypto.KeyAgreement.init:(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
16: aload 12
aload 3
iconst_1
invokevirtual javax.crypto.KeyAgreement.doPhase:(Ljava/security/Key;Z)Ljava/security/Key;
pop
17: aload 12
aload 2
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
invokevirtual javax.crypto.KeyAgreement.generateSecret:(Ljava/lang/String;)Ljavax/crypto/SecretKey;
areturn
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 18: StackMap locals: org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient org.bouncycastle.asn1.x509.AlgorithmIdentifier org.bouncycastle.asn1.x509.AlgorithmIdentifier java.security.PublicKey org.bouncycastle.asn1.ASN1OctetString java.security.PrivateKey org.bouncycastle.cms.jcajce.KeyMaterialGenerator
StackMap stack:
aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
aload 1
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.cms.jcajce.EnvelopedDataHelper.createKeyAgreement:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Ljavax/crypto/KeyAgreement;
astore 7
start local 7 19: aconst_null
astore 8
start local 8 20: aload 1
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokestatic org.bouncycastle.cms.jcajce.CMSUtils.isEC:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
ifeq 28
21: aload 4
ifnull 25
22: aload 6
aload 2
aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.keySizeProvider:Lorg/bouncycastle/operator/SecretKeySizeProvider;
aload 2
invokeinterface org.bouncycastle.operator.SecretKeySizeProvider.getKeySize:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)I
aload 4
invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
invokeinterface org.bouncycastle.cms.jcajce.KeyMaterialGenerator.generateKDFMaterial:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;I[B)[B
astore 9
start local 9 23: new org.bouncycastle.jcajce.spec.UserKeyingMaterialSpec
dup
aload 9
invokespecial org.bouncycastle.jcajce.spec.UserKeyingMaterialSpec.<init>:([B)V
astore 8
end local 9 24: goto 37
25: StackMap locals: javax.crypto.KeyAgreement org.bouncycastle.jcajce.spec.UserKeyingMaterialSpec
StackMap stack:
aload 6
aload 2
aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.keySizeProvider:Lorg/bouncycastle/operator/SecretKeySizeProvider;
aload 2
invokeinterface org.bouncycastle.operator.SecretKeySizeProvider.getKeySize:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)I
aconst_null
invokeinterface org.bouncycastle.cms.jcajce.KeyMaterialGenerator.generateKDFMaterial:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;I[B)[B
astore 9
start local 9 26: new org.bouncycastle.jcajce.spec.UserKeyingMaterialSpec
dup
aload 9
invokespecial org.bouncycastle.jcajce.spec.UserKeyingMaterialSpec.<init>:([B)V
astore 8
end local 9 27: goto 37
28: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokestatic org.bouncycastle.cms.jcajce.CMSUtils.isRFC2631:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
ifeq 32
29: aload 4
ifnull 37
30: new org.bouncycastle.jcajce.spec.UserKeyingMaterialSpec
dup
aload 4
invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
invokespecial org.bouncycastle.jcajce.spec.UserKeyingMaterialSpec.<init>:([B)V
astore 8
31: goto 37
32: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokestatic org.bouncycastle.cms.jcajce.CMSUtils.isGOST:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
ifeq 36
33: aload 4
ifnull 37
34: new org.bouncycastle.jcajce.spec.UserKeyingMaterialSpec
dup
aload 4
invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
invokespecial org.bouncycastle.jcajce.spec.UserKeyingMaterialSpec.<init>:([B)V
astore 8
35: goto 37
36: StackMap locals:
StackMap stack:
new org.bouncycastle.cms.CMSException
dup
new java.lang.StringBuilder
dup
ldc "Unknown key agreement algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;)V
athrow
37: StackMap locals:
StackMap stack:
aload 7
aload 5
aload 8
invokevirtual javax.crypto.KeyAgreement.init:(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
38: aload 7
aload 3
iconst_1
invokevirtual javax.crypto.KeyAgreement.doPhase:(Ljava/security/Key;Z)Ljava/security/Key;
pop
39: aload 7
aload 2
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
invokevirtual javax.crypto.KeyAgreement.generateSecret:(Ljava/lang/String;)Ljavax/crypto/SecretKey;
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lorg/bouncycastle/cms/jcajce/JceKeyAgreeRecipient;
0 40 1 keyEncAlg Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
0 40 2 wrapAlg Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
0 40 3 senderPublicKey Ljava/security/PublicKey;
0 40 4 userKeyingMaterial Lorg/bouncycastle/asn1/ASN1OctetString;
0 40 5 receiverPrivateKey Ljava/security/PrivateKey;
0 40 6 kmGen Lorg/bouncycastle/cms/jcajce/KeyMaterialGenerator;
2 18 7 ukm Lorg/bouncycastle/asn1/cms/ecc/MQVuserKeyingMaterial;
6 18 8 pubInfo Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
7 18 9 pubSpec Ljava/security/spec/X509EncodedKeySpec;
8 18 10 fact Ljava/security/KeyFactory;
9 18 11 ephemeralKey Ljava/security/PublicKey;
10 18 12 agreement Ljavax/crypto/KeyAgreement;
13 18 13 ukmKeyingMaterial [B
19 40 7 agreement Ljavax/crypto/KeyAgreement;
20 40 8 userKeyingMaterialSpec Lorg/bouncycastle/jcajce/spec/UserKeyingMaterialSpec;
23 24 9 ukmKeyingMaterial [B
26 27 9 ukmKeyingMaterial [B
Exceptions:
throws org.bouncycastle.cms.CMSException, java.security.GeneralSecurityException, java.io.IOException
MethodParameters:
Name Flags
keyEncAlg
wrapAlg
senderPublicKey
userKeyingMaterial
receiverPrivateKey
kmGen
private java.security.Key unwrapSessionKey(org.bouncycastle.asn1.ASN1ObjectIdentifier, javax.crypto.SecretKey, org.bouncycastle.asn1.ASN1ObjectIdentifier, byte[]);
descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljavax/crypto/SecretKey;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;[B)Ljava/security/Key;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
aload 1
invokevirtual org.bouncycastle.cms.jcajce.EnvelopedDataHelper.createCipher:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Ljavax/crypto/Cipher;
astore 5
start local 5 1: aload 5
iconst_4
aload 2
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
2: aload 5
aload 4
aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
aload 3
invokevirtual org.bouncycastle.cms.jcajce.EnvelopedDataHelper.getBaseCipherName:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Ljava/lang/String;
iconst_3
invokevirtual javax.crypto.Cipher.unwrap:([BLjava/lang/String;I)Ljava/security/Key;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/cms/jcajce/JceKeyAgreeRecipient;
0 3 1 wrapAlg Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
0 3 2 agreedKey Ljavax/crypto/SecretKey;
0 3 3 contentEncryptionAlgorithm Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
0 3 4 encryptedContentEncryptionKey [B
1 3 5 keyCipher Ljavax/crypto/Cipher;
Exceptions:
throws org.bouncycastle.cms.CMSException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
wrapAlg
agreedKey
contentEncryptionAlgorithm
encryptedContentEncryptionKey
protected java.security.Key (org.bouncycastle.asn1.x509.AlgorithmIdentifier, org.bouncycastle.asn1.x509.AlgorithmIdentifier, org.bouncycastle.asn1.x509.SubjectPublicKeyInfo, org.bouncycastle.asn1.ASN1OctetString, byte[]);
descriptor: (Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;Lorg/bouncycastle/asn1/ASN1OctetString;[B)Ljava/security/Key;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=14, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/ASN1Encodable;
invokestatic org.bouncycastle.asn1.x509.AlgorithmIdentifier.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
1: astore 6
start local 6 2: new java.security.spec.X509EncodedKeySpec
dup
aload 3
invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getEncoded:()[B
invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
astore 7
start local 7 3: aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
aload 3
invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.cms.jcajce.EnvelopedDataHelper.createKeyFactory:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Ljava/security/KeyFactory;
astore 8
start local 8 4: aload 8
aload 7
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
astore 9
start local 9 5: aload 0
aload 1
aload 6
6: aload 9
aload 4
aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.recipientKey:Ljava/security/PrivateKey;
getstatic org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.ecc_cms_Generator:Lorg/bouncycastle/cms/jcajce/KeyMaterialGenerator;
7: invokevirtual org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.calculateAgreedWrapKey:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Ljava/security/PublicKey;Lorg/bouncycastle/asn1/ASN1OctetString;Ljava/security/PrivateKey;Lorg/bouncycastle/cms/jcajce/KeyMaterialGenerator;)Ljavax/crypto/SecretKey;
astore 10
start local 10 8: aload 6
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.id_Gost28147_89_None_KeyWrap:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifne 10
9: aload 6
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.id_Gost28147_89_CryptoPro_KeyWrap:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 16
10: StackMap locals: org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient org.bouncycastle.asn1.x509.AlgorithmIdentifier org.bouncycastle.asn1.x509.AlgorithmIdentifier org.bouncycastle.asn1.x509.SubjectPublicKeyInfo org.bouncycastle.asn1.ASN1OctetString byte[] org.bouncycastle.asn1.x509.AlgorithmIdentifier java.security.spec.X509EncodedKeySpec java.security.KeyFactory java.security.PublicKey javax.crypto.SecretKey
StackMap stack:
aload 5
invokestatic org.bouncycastle.asn1.cryptopro.Gost2814789EncryptedKey.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cryptopro/Gost2814789EncryptedKey;
astore 11
start local 11 11: aload 6
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/ASN1Encodable;
invokestatic org.bouncycastle.asn1.cryptopro.Gost2814789KeyWrapParameters.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/cryptopro/Gost2814789KeyWrapParameters;
astore 12
start local 12 12: aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
aload 6
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.cms.jcajce.EnvelopedDataHelper.createCipher:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Ljavax/crypto/Cipher;
astore 13
start local 13 13: aload 13
iconst_4
aload 10
new org.bouncycastle.jcajce.spec.GOST28147WrapParameterSpec
dup
aload 12
invokevirtual org.bouncycastle.asn1.cryptopro.Gost2814789KeyWrapParameters.getEncryptionParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
aload 4
invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
invokespecial org.bouncycastle.jcajce.spec.GOST28147WrapParameterSpec.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;[B)V
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
14: aload 13
aload 11
invokevirtual org.bouncycastle.asn1.cryptopro.Gost2814789EncryptedKey.getEncryptedKey:()[B
aload 11
invokevirtual org.bouncycastle.asn1.cryptopro.Gost2814789EncryptedKey.getMacKey:()[B
invokestatic org.bouncycastle.util.Arrays.concatenate:([B[B)[B
aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.helper:Lorg/bouncycastle/cms/jcajce/EnvelopedDataHelper;
aload 2
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.cms.jcajce.EnvelopedDataHelper.getBaseCipherName:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Ljava/lang/String;
iconst_3
invokevirtual javax.crypto.Cipher.unwrap:([BLjava/lang/String;I)Ljava/security/Key;
15: areturn
end local 13 end local 12 end local 11 16: StackMap locals:
StackMap stack:
aload 0
aload 6
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
aload 10
aload 2
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
aload 5
invokevirtual org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.unwrapSessionKey:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljavax/crypto/SecretKey;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;[B)Ljava/security/Key;
17: areturn
end local 10 18: StackMap locals: org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient org.bouncycastle.asn1.x509.AlgorithmIdentifier org.bouncycastle.asn1.x509.AlgorithmIdentifier org.bouncycastle.asn1.x509.SubjectPublicKeyInfo org.bouncycastle.asn1.ASN1OctetString byte[] org.bouncycastle.asn1.x509.AlgorithmIdentifier java.security.spec.X509EncodedKeySpec java.security.KeyFactory java.security.PublicKey
StackMap stack: java.security.InvalidKeyException
astore 10
start local 10 19: getstatic org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.possibleOldMessages:Ljava/util/Set;
aload 1
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 25
20: aload 0
aload 1
aload 6
21: aload 9
aload 4
aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.recipientKey:Ljava/security/PrivateKey;
getstatic org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.old_ecc_cms_Generator:Lorg/bouncycastle/cms/jcajce/KeyMaterialGenerator;
22: invokevirtual org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.calculateAgreedWrapKey:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Ljava/security/PublicKey;Lorg/bouncycastle/asn1/ASN1OctetString;Ljava/security/PrivateKey;Lorg/bouncycastle/cms/jcajce/KeyMaterialGenerator;)Ljavax/crypto/SecretKey;
astore 11
start local 11 23: aload 0
aload 6
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
aload 11
aload 2
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
aload 5
invokevirtual org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.unwrapSessionKey:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljavax/crypto/SecretKey;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;[B)Ljava/security/Key;
24: areturn
end local 11 25: StackMap locals: java.security.InvalidKeyException
StackMap stack:
aload 10
athrow
end local 10 end local 9 end local 8 end local 7 end local 6 26: StackMap locals: org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient org.bouncycastle.asn1.x509.AlgorithmIdentifier org.bouncycastle.asn1.x509.AlgorithmIdentifier org.bouncycastle.asn1.x509.SubjectPublicKeyInfo org.bouncycastle.asn1.ASN1OctetString byte[]
StackMap stack: java.security.NoSuchAlgorithmException
astore 6
start local 6 27: new org.bouncycastle.cms.CMSException
dup
ldc "can't find algorithm."
aload 6
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 6 28: StackMap locals:
StackMap stack: java.security.InvalidKeyException
astore 6
start local 6 29: new org.bouncycastle.cms.CMSException
dup
ldc "key invalid in message."
aload 6
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 6 30: StackMap locals:
StackMap stack: java.security.spec.InvalidKeySpecException
astore 6
start local 6 31: new org.bouncycastle.cms.CMSException
dup
ldc "originator key spec invalid."
aload 6
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 6 32: StackMap locals:
StackMap stack: javax.crypto.NoSuchPaddingException
astore 6
start local 6 33: new org.bouncycastle.cms.CMSException
dup
ldc "required padding not supported."
aload 6
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 6 34: StackMap locals:
StackMap stack: java.lang.Exception
astore 6
start local 6 35: new org.bouncycastle.cms.CMSException
dup
ldc "originator key invalid."
aload 6
invokespecial org.bouncycastle.cms.CMSException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/bouncycastle/cms/jcajce/JceKeyAgreeRecipient;
0 36 1 keyEncryptionAlgorithm Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
0 36 2 contentEncryptionAlgorithm Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
0 36 3 senderKey Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
0 36 4 userKeyingMaterial Lorg/bouncycastle/asn1/ASN1OctetString;
0 36 5 encryptedContentEncryptionKey [B
2 26 6 wrapAlg Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
3 26 7 pubSpec Ljava/security/spec/X509EncodedKeySpec;
4 26 8 fact Ljava/security/KeyFactory;
5 26 9 senderPublicKey Ljava/security/PublicKey;
8 18 10 agreedWrapKey Ljavax/crypto/SecretKey;
11 16 11 encKey Lorg/bouncycastle/asn1/cryptopro/Gost2814789EncryptedKey;
12 16 12 wrapParams Lorg/bouncycastle/asn1/cryptopro/Gost2814789KeyWrapParameters;
13 16 13 keyCipher Ljavax/crypto/Cipher;
19 26 10 e Ljava/security/InvalidKeyException;
23 25 11 agreedWrapKey Ljavax/crypto/SecretKey;
27 28 6 e Ljava/security/NoSuchAlgorithmException;
29 30 6 e Ljava/security/InvalidKeyException;
31 32 6 e Ljava/security/spec/InvalidKeySpecException;
33 34 6 e Ljavax/crypto/NoSuchPaddingException;
35 36 6 e Ljava/lang/Exception;
Exception table:
from to target type
5 15 18 Class java.security.InvalidKeyException
16 17 18 Class java.security.InvalidKeyException
0 15 26 Class java.security.NoSuchAlgorithmException
16 17 26 Class java.security.NoSuchAlgorithmException
18 24 26 Class java.security.NoSuchAlgorithmException
25 26 26 Class java.security.NoSuchAlgorithmException
0 15 28 Class java.security.InvalidKeyException
16 17 28 Class java.security.InvalidKeyException
18 24 28 Class java.security.InvalidKeyException
25 26 28 Class java.security.InvalidKeyException
0 15 30 Class java.security.spec.InvalidKeySpecException
16 17 30 Class java.security.spec.InvalidKeySpecException
18 24 30 Class java.security.spec.InvalidKeySpecException
25 26 30 Class java.security.spec.InvalidKeySpecException
0 15 32 Class javax.crypto.NoSuchPaddingException
16 17 32 Class javax.crypto.NoSuchPaddingException
18 24 32 Class javax.crypto.NoSuchPaddingException
25 26 32 Class javax.crypto.NoSuchPaddingException
0 15 34 Class java.lang.Exception
16 17 34 Class java.lang.Exception
18 24 34 Class java.lang.Exception
25 26 34 Class java.lang.Exception
Exceptions:
throws org.bouncycastle.cms.CMSException
MethodParameters:
Name Flags
keyEncryptionAlgorithm
contentEncryptionAlgorithm
senderKey
userKeyingMaterial
encryptedContentEncryptionKey
public org.bouncycastle.asn1.x509.AlgorithmIdentifier getPrivateKeyAlgorithmIdentifier();
descriptor: ()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient.recipientKey:Ljava/security/PrivateKey;
invokeinterface java.security.PrivateKey.getEncoded:()[B
invokestatic org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getPrivateKeyAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/cms/jcajce/JceKeyAgreeRecipient;
}
SourceFile: "JceKeyAgreeRecipient.java"
NestMembers:
org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient$1
InnerClasses:
org.bouncycastle.cms.jcajce.JceKeyAgreeRecipient$1