public class org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator implements org.bouncycastle.cert.crmf.ValueDecryptorGenerator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator
  super_class: java.lang.Object
{
  private java.security.PrivateKey recipientKey;
    descriptor: Ljava/security/PrivateKey;
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.cert.crmf.jcajce.CRMFHelper helper;
    descriptor: Lorg/bouncycastle/cert/crmf/jcajce/CRMFHelper;
    flags: (0x0002) ACC_PRIVATE

  private java.security.Provider provider;
    descriptor: Ljava/security/Provider;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String providerName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  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 // org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator this
        start local 1 // java.security.PrivateKey recipientKey
         0: .line 30
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 26
            aload 0 /* this */
            new org.bouncycastle.cert.crmf.jcajce.CRMFHelper
            dup
            new org.bouncycastle.jcajce.util.DefaultJcaJceHelper
            dup
            invokespecial org.bouncycastle.jcajce.util.DefaultJcaJceHelper.<init>:()V
            invokespecial org.bouncycastle.cert.crmf.jcajce.CRMFHelper.<init>:(Lorg/bouncycastle/jcajce/util/JcaJceHelper;)V
            putfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.helper:Lorg/bouncycastle/cert/crmf/jcajce/CRMFHelper;
         2: .line 27
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.provider:Ljava/security/Provider;
         3: .line 28
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.providerName:Ljava/lang/String;
         4: .line 32
            aload 0 /* this */
            aload 1 /* recipientKey */
            putfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.recipientKey:Ljava/security/PrivateKey;
         5: .line 33
            return
        end local 1 // java.security.PrivateKey recipientKey
        end local 0 // org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/bouncycastle/cert/crmf/jcajce/JceAsymmetricValueDecryptorGenerator;
            0    6     1  recipientKey  Ljava/security/PrivateKey;
    MethodParameters:
              Name  Flags
      recipientKey  

  public org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator setProvider(java.security.Provider);
    descriptor: (Ljava/security/Provider;)Lorg/bouncycastle/cert/crmf/jcajce/JceAsymmetricValueDecryptorGenerator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator this
        start local 1 // java.security.Provider provider
         0: .line 37
            aload 0 /* this */
            new org.bouncycastle.cert.crmf.jcajce.CRMFHelper
            dup
            new org.bouncycastle.jcajce.util.ProviderJcaJceHelper
            dup
            aload 1 /* provider */
            invokespecial org.bouncycastle.jcajce.util.ProviderJcaJceHelper.<init>:(Ljava/security/Provider;)V
            invokespecial org.bouncycastle.cert.crmf.jcajce.CRMFHelper.<init>:(Lorg/bouncycastle/jcajce/util/JcaJceHelper;)V
            putfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.helper:Lorg/bouncycastle/cert/crmf/jcajce/CRMFHelper;
         1: .line 38
            aload 0 /* this */
            aload 1 /* provider */
            putfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.provider:Ljava/security/Provider;
         2: .line 39
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.providerName:Ljava/lang/String;
         3: .line 41
            aload 0 /* this */
            areturn
        end local 1 // java.security.Provider provider
        end local 0 // org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/bouncycastle/cert/crmf/jcajce/JceAsymmetricValueDecryptorGenerator;
            0    4     1  provider  Ljava/security/Provider;
    MethodParameters:
          Name  Flags
      provider  

  public org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator setProvider(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/bouncycastle/cert/crmf/jcajce/JceAsymmetricValueDecryptorGenerator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator this
        start local 1 // java.lang.String providerName
         0: .line 46
            aload 0 /* this */
            new org.bouncycastle.cert.crmf.jcajce.CRMFHelper
            dup
            new org.bouncycastle.jcajce.util.NamedJcaJceHelper
            dup
            aload 1 /* providerName */
            invokespecial org.bouncycastle.jcajce.util.NamedJcaJceHelper.<init>:(Ljava/lang/String;)V
            invokespecial org.bouncycastle.cert.crmf.jcajce.CRMFHelper.<init>:(Lorg/bouncycastle/jcajce/util/JcaJceHelper;)V
            putfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.helper:Lorg/bouncycastle/cert/crmf/jcajce/CRMFHelper;
         1: .line 47
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.provider:Ljava/security/Provider;
         2: .line 48
            aload 0 /* this */
            aload 1 /* providerName */
            putfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.providerName:Ljava/lang/String;
         3: .line 50
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String providerName
        end local 0 // org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/bouncycastle/cert/crmf/jcajce/JceAsymmetricValueDecryptorGenerator;
            0    4     1  providerName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      providerName  

  private java.security.Key extractSecretKey(org.bouncycastle.asn1.x509.AlgorithmIdentifier, org.bouncycastle.asn1.x509.AlgorithmIdentifier, byte[]);
    descriptor: (Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)Ljava/security/Key;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator this
        start local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier keyEncryptionAlgorithm
        start local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier contentEncryptionAlgorithm
        start local 3 // byte[] encryptedContentEncryptionKey
         0: .line 58
            new org.bouncycastle.operator.jcajce.JceAsymmetricKeyUnwrapper
            dup
            aload 1 /* keyEncryptionAlgorithm */
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.recipientKey:Ljava/security/PrivateKey;
            invokespecial org.bouncycastle.operator.jcajce.JceAsymmetricKeyUnwrapper.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Ljava/security/PrivateKey;)V
            astore 4 /* unwrapper */
        start local 4 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyUnwrapper unwrapper
         1: .line 59
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.provider:Ljava/security/Provider;
            ifnull 3
         2: .line 61
            aload 4 /* unwrapper */
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.provider:Ljava/security/Provider;
            invokevirtual org.bouncycastle.operator.jcajce.JceAsymmetricKeyUnwrapper.setProvider:(Ljava/security/Provider;)Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyUnwrapper;
            pop
         3: .line 63
      StackMap locals: org.bouncycastle.operator.jcajce.JceAsymmetricKeyUnwrapper
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.providerName:Ljava/lang/String;
            ifnull 5
         4: .line 65
            aload 4 /* unwrapper */
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.providerName:Ljava/lang/String;
            invokevirtual org.bouncycastle.operator.jcajce.JceAsymmetricKeyUnwrapper.setProvider:(Ljava/lang/String;)Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyUnwrapper;
            pop
         5: .line 68
      StackMap locals:
      StackMap stack:
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 4 /* unwrapper */
            aload 2 /* contentEncryptionAlgorithm */
            aload 3 /* encryptedContentEncryptionKey */
            invokevirtual org.bouncycastle.operator.jcajce.JceAsymmetricKeyUnwrapper.generateUnwrappedKey:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)Lorg/bouncycastle/operator/GenericKey;
            invokevirtual org.bouncycastle.operator.GenericKey.getRepresentation:()Ljava/lang/Object;
            checkcast byte[]
            aload 2 /* contentEncryptionAlgorithm */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
         6: areturn
        end local 4 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyUnwrapper unwrapper
         7: .line 70
      StackMap locals: org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator org.bouncycastle.asn1.x509.AlgorithmIdentifier org.bouncycastle.asn1.x509.AlgorithmIdentifier byte[]
      StackMap stack: org.bouncycastle.operator.OperatorException
            astore 4 /* e */
        start local 4 // org.bouncycastle.operator.OperatorException e
         8: .line 72
            new org.bouncycastle.cert.crmf.CRMFException
            dup
            new java.lang.StringBuilder
            dup
            ldc "key invalid in message: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual org.bouncycastle.operator.OperatorException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* e */
            invokespecial org.bouncycastle.cert.crmf.CRMFException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // org.bouncycastle.operator.OperatorException e
        end local 3 // byte[] encryptedContentEncryptionKey
        end local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier contentEncryptionAlgorithm
        end local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier keyEncryptionAlgorithm
        end local 0 // org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    9     0                           this  Lorg/bouncycastle/cert/crmf/jcajce/JceAsymmetricValueDecryptorGenerator;
            0    9     1         keyEncryptionAlgorithm  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            0    9     2     contentEncryptionAlgorithm  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            0    9     3  encryptedContentEncryptionKey  [B
            1    7     4                      unwrapper  Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyUnwrapper;
            8    9     4                              e  Lorg/bouncycastle/operator/OperatorException;
      Exception table:
        from    to  target  type
           0     6       7  Class org.bouncycastle.operator.OperatorException
    Exceptions:
      throws org.bouncycastle.cert.crmf.CRMFException
    MethodParameters:
                               Name  Flags
      keyEncryptionAlgorithm         
      contentEncryptionAlgorithm     
      encryptedContentEncryptionKey  

  public org.bouncycastle.operator.InputDecryptor getValueDecryptor(org.bouncycastle.asn1.x509.AlgorithmIdentifier, org.bouncycastle.asn1.x509.AlgorithmIdentifier, byte[]);
    descriptor: (Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)Lorg/bouncycastle/operator/InputDecryptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator this
        start local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier keyEncryptionAlgorithm
        start local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier contentEncryptionAlgorithm
        start local 3 // byte[] encryptedContentEncryptionKey
         0: .line 79
            aload 0 /* this */
            aload 1 /* keyEncryptionAlgorithm */
            aload 2 /* contentEncryptionAlgorithm */
            aload 3 /* encryptedContentEncryptionKey */
            invokevirtual org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.extractSecretKey:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)Ljava/security/Key;
            astore 4 /* secretKey */
        start local 4 // java.security.Key secretKey
         1: .line 81
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator.helper:Lorg/bouncycastle/cert/crmf/jcajce/CRMFHelper;
            aload 4 /* secretKey */
            aload 2 /* contentEncryptionAlgorithm */
            invokevirtual org.bouncycastle.cert.crmf.jcajce.CRMFHelper.createContentCipher:(Ljava/security/Key;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Ljavax/crypto/Cipher;
            astore 5 /* dataCipher */
        start local 5 // javax.crypto.Cipher dataCipher
         2: .line 83
            new org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator$1
            dup
            aload 0 /* this */
            aload 2 /* contentEncryptionAlgorithm */
            aload 5 /* dataCipher */
            invokespecial org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator$1.<init>:(Lorg/bouncycastle/cert/crmf/jcajce/JceAsymmetricValueDecryptorGenerator;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Ljavax/crypto/Cipher;)V
            areturn
        end local 5 // javax.crypto.Cipher dataCipher
        end local 4 // java.security.Key secretKey
        end local 3 // byte[] encryptedContentEncryptionKey
        end local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier contentEncryptionAlgorithm
        end local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier keyEncryptionAlgorithm
        end local 0 // org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    3     0                           this  Lorg/bouncycastle/cert/crmf/jcajce/JceAsymmetricValueDecryptorGenerator;
            0    3     1         keyEncryptionAlgorithm  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            0    3     2     contentEncryptionAlgorithm  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            0    3     3  encryptedContentEncryptionKey  [B
            1    3     4                      secretKey  Ljava/security/Key;
            2    3     5                     dataCipher  Ljavax/crypto/Cipher;
    Exceptions:
      throws org.bouncycastle.cert.crmf.CRMFException
    MethodParameters:
                               Name  Flags
      keyEncryptionAlgorithm         
      contentEncryptionAlgorithm     final
      encryptedContentEncryptionKey  
}
SourceFile: "JceAsymmetricValueDecryptorGenerator.java"
NestMembers:
  org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator$1
InnerClasses:
  org.bouncycastle.cert.crmf.jcajce.JceAsymmetricValueDecryptorGenerator$1