public class org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper extends org.bouncycastle.operator.AsymmetricKeyWrapper
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper
  super_class: org.bouncycastle.operator.AsymmetricKeyWrapper
{
  private static final java.util.Set gostAlgs;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private org.bouncycastle.operator.jcajce.OperatorHelper helper;
    descriptor: Lorg/bouncycastle/operator/jcajce/OperatorHelper;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map extraMappings;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE

  private java.security.PublicKey publicKey;
    descriptor: Ljava/security/PublicKey;
    flags: (0x0002) ACC_PRIVATE

  private java.security.SecureRandom random;
    descriptor: Ljava/security/SecureRandom;
    flags: (0x0002) ACC_PRIVATE

  private static final java.util.Map digests;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 55
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.gostAlgs:Ljava/util/Set;
         1: .line 59
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.gostAlgs:Ljava/util/Set;
            getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3410_2001_CryptoPro_ESDH:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 60
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.gostAlgs:Ljava/util/Set;
            getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3410_2001:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 61
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.gostAlgs:Ljava/util/Set;
            getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_agreement_gost_3410_12_256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 62
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.gostAlgs:Ljava/util/Set;
            getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_agreement_gost_3410_12_512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 63
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.gostAlgs:Ljava/util/Set;
            getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_gost_3410_12_256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 64
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.gostAlgs:Ljava/util/Set;
            getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_gost_3410_12_512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 306
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
         8: .line 310
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA-1"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.oiw.OIWObjectIdentifiers.idSHA1:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 311
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA-1"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.oiw.OIWObjectIdentifiers.idSHA1:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 312
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA224"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha224:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 313
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA-224"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha224:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 314
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA256"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 315
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA-256"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 316
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA384"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha384:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 317
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA-384"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha384:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 318
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA512"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 319
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA-512"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 320
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA512/224"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha512_224:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 321
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA-512/224"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha512_224:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 322
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA-512(224)"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha512_224:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 323
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA512/256"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha512_256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 324
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA-512/256"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha512_256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 325
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            ldc "SHA-512(256)"
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha512_256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 326
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static boolean isGOST(org.bouncycastle.asn1.ASN1ObjectIdentifier);
    descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.asn1.ASN1ObjectIdentifier algorithm
         0: .line 69
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.gostAlgs:Ljava/util/Set;
            aload 0 /* algorithm */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // org.bouncycastle.asn1.ASN1ObjectIdentifier algorithm
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  algorithm  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
    MethodParameters:
           Name  Flags
      algorithm  

  public void <init>(java.security.PublicKey);
    descriptor: (Ljava/security/PublicKey;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
        start local 1 // java.security.PublicKey publicKey
         0: .line 79
            aload 0 /* this */
            aload 1 /* publicKey */
            invokeinterface java.security.PublicKey.getEncoded:()[B
            invokestatic org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokespecial org.bouncycastle.operator.AsymmetricKeyWrapper.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)V
         1: .line 72
            aload 0 /* this */
            new org.bouncycastle.operator.jcajce.OperatorHelper
            dup
            new org.bouncycastle.jcajce.util.DefaultJcaJceHelper
            dup
            invokespecial org.bouncycastle.jcajce.util.DefaultJcaJceHelper.<init>:()V
            invokespecial org.bouncycastle.operator.jcajce.OperatorHelper.<init>:(Lorg/bouncycastle/jcajce/util/JcaJceHelper;)V
            putfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
         2: .line 73
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.extraMappings:Ljava/util/Map;
         3: .line 81
            aload 0 /* this */
            aload 1 /* publicKey */
            putfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.publicKey:Ljava/security/PublicKey;
         4: .line 82
            return
        end local 1 // java.security.PublicKey publicKey
        end local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper;
            0    5     1  publicKey  Ljava/security/PublicKey;
    MethodParameters:
           Name  Flags
      publicKey  

  public void <init>(java.security.cert.X509Certificate);
    descriptor: (Ljava/security/cert/X509Certificate;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
        start local 1 // java.security.cert.X509Certificate certificate
         0: .line 86
            aload 0 /* this */
            aload 1 /* certificate */
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokespecial org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.<init>:(Ljava/security/PublicKey;)V
         1: .line 87
            return
        end local 1 // java.security.cert.X509Certificate certificate
        end local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper;
            0    2     1  certificate  Ljava/security/cert/X509Certificate;
    MethodParameters:
             Name  Flags
      certificate  

  public void <init>(org.bouncycastle.asn1.x509.AlgorithmIdentifier, java.security.PublicKey);
    descriptor: (Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Ljava/security/PublicKey;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
        start local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algorithmIdentifier
        start local 2 // java.security.PublicKey publicKey
         0: .line 97
            aload 0 /* this */
            aload 1 /* algorithmIdentifier */
            invokespecial org.bouncycastle.operator.AsymmetricKeyWrapper.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)V
         1: .line 72
            aload 0 /* this */
            new org.bouncycastle.operator.jcajce.OperatorHelper
            dup
            new org.bouncycastle.jcajce.util.DefaultJcaJceHelper
            dup
            invokespecial org.bouncycastle.jcajce.util.DefaultJcaJceHelper.<init>:()V
            invokespecial org.bouncycastle.operator.jcajce.OperatorHelper.<init>:(Lorg/bouncycastle/jcajce/util/JcaJceHelper;)V
            putfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
         2: .line 73
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.extraMappings:Ljava/util/Map;
         3: .line 99
            aload 0 /* this */
            aload 2 /* publicKey */
            putfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.publicKey:Ljava/security/PublicKey;
         4: .line 100
            return
        end local 2 // java.security.PublicKey publicKey
        end local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algorithmIdentifier
        end local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    5     0                 this  Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper;
            0    5     1  algorithmIdentifier  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            0    5     2            publicKey  Ljava/security/PublicKey;
    MethodParameters:
                     Name  Flags
      algorithmIdentifier  
      publicKey            

  public void <init>(java.security.spec.AlgorithmParameterSpec, java.security.PublicKey);
    descriptor: (Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/PublicKey;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
        start local 1 // java.security.spec.AlgorithmParameterSpec algorithmParameterSpec
        start local 2 // java.security.PublicKey publicKey
         0: .line 110
            aload 0 /* this */
            aload 1 /* algorithmParameterSpec */
            invokestatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.extractFromSpec:(Ljava/security/spec/AlgorithmParameterSpec;)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokespecial org.bouncycastle.operator.AsymmetricKeyWrapper.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)V
         1: .line 72
            aload 0 /* this */
            new org.bouncycastle.operator.jcajce.OperatorHelper
            dup
            new org.bouncycastle.jcajce.util.DefaultJcaJceHelper
            dup
            invokespecial org.bouncycastle.jcajce.util.DefaultJcaJceHelper.<init>:()V
            invokespecial org.bouncycastle.operator.jcajce.OperatorHelper.<init>:(Lorg/bouncycastle/jcajce/util/JcaJceHelper;)V
            putfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
         2: .line 73
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.extraMappings:Ljava/util/Map;
         3: .line 112
            aload 0 /* this */
            aload 2 /* publicKey */
            putfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.publicKey:Ljava/security/PublicKey;
         4: .line 113
            return
        end local 2 // java.security.PublicKey publicKey
        end local 1 // java.security.spec.AlgorithmParameterSpec algorithmParameterSpec
        end local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    5     0                    this  Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper;
            0    5     1  algorithmParameterSpec  Ljava/security/spec/AlgorithmParameterSpec;
            0    5     2               publicKey  Ljava/security/PublicKey;
    MethodParameters:
                        Name  Flags
      algorithmParameterSpec  
      publicKey               

  public org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper setProvider(java.security.Provider);
    descriptor: (Ljava/security/Provider;)Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
        start local 1 // java.security.Provider provider
         0: .line 118
            aload 0 /* this */
            new org.bouncycastle.operator.jcajce.OperatorHelper
            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.operator.jcajce.OperatorHelper.<init>:(Lorg/bouncycastle/jcajce/util/JcaJceHelper;)V
            putfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
         1: .line 120
            aload 0 /* this */
            areturn
        end local 1 // java.security.Provider provider
        end local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper;
            0    2     1  provider  Ljava/security/Provider;
    MethodParameters:
          Name  Flags
      provider  

  public org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper setProvider(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
        start local 1 // java.lang.String providerName
         0: .line 125
            aload 0 /* this */
            new org.bouncycastle.operator.jcajce.OperatorHelper
            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.operator.jcajce.OperatorHelper.<init>:(Lorg/bouncycastle/jcajce/util/JcaJceHelper;)V
            putfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
         1: .line 127
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String providerName
        end local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper;
            0    2     1  providerName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      providerName  

  public org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper setSecureRandom(java.security.SecureRandom);
    descriptor: (Ljava/security/SecureRandom;)Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
        start local 1 // java.security.SecureRandom random
         0: .line 132
            aload 0 /* this */
            aload 1 /* random */
            putfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.random:Ljava/security/SecureRandom;
         1: .line 134
            aload 0 /* this */
            areturn
        end local 1 // java.security.SecureRandom random
        end local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper;
            0    2     1  random  Ljava/security/SecureRandom;
    MethodParameters:
        Name  Flags
      random  

  public org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper setAlgorithmMapping(org.bouncycastle.asn1.ASN1ObjectIdentifier, java.lang.String);
    descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;)Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
        start local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier algorithm
        start local 2 // java.lang.String algorithmName
         0: .line 152
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.extraMappings:Ljava/util/Map;
            aload 1 /* algorithm */
            aload 2 /* algorithmName */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 154
            aload 0 /* this */
            areturn
        end local 2 // java.lang.String algorithmName
        end local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier algorithm
        end local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper;
            0    2     1      algorithm  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            0    2     2  algorithmName  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      algorithm      
      algorithmName  

  public byte[] generateWrappedKey(org.bouncycastle.operator.GenericKey);
    descriptor: (Lorg/bouncycastle/operator/GenericKey;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=14, args_size=2
        start local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
        start local 1 // org.bouncycastle.operator.GenericKey encryptionKey
         0: .line 160
            aconst_null
            astore 2 /* encryptedKeyBytes */
        start local 2 // byte[] encryptedKeyBytes
         1: .line 162
            aload 0 /* this */
            invokevirtual org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.getAlgorithmIdentifier:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokestatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.isGOST:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
            ifeq 36
         2: .line 166
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.random:Ljava/security/SecureRandom;
            ifnonnull 4
         3: .line 168
            aload 0 /* this */
            new java.security.SecureRandom
            dup
            invokespecial java.security.SecureRandom.<init>:()V
            putfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.random:Ljava/security/SecureRandom;
         4: .line 170
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
            aload 0 /* this */
            invokevirtual org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.getAlgorithmIdentifier:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.operator.jcajce.OperatorHelper.createKeyPairGenerator:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Ljava/security/KeyPairGenerator;
            astore 3 /* kpGen */
        start local 3 // java.security.KeyPairGenerator kpGen
         5: .line 172
            aload 3 /* kpGen */
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.publicKey:Ljava/security/PublicKey;
            checkcast java.security.interfaces.ECPublicKey
            invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.random:Ljava/security/SecureRandom;
            invokevirtual java.security.KeyPairGenerator.initialize:(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
         6: .line 174
            aload 3 /* kpGen */
            invokevirtual java.security.KeyPairGenerator.generateKeyPair:()Ljava/security/KeyPair;
            astore 4 /* ephKp */
        start local 4 // java.security.KeyPair ephKp
         7: .line 176
            bipush 8
            newarray 8
            astore 5 /* ukm */
        start local 5 // byte[] ukm
         8: .line 178
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.random:Ljava/security/SecureRandom;
            aload 5 /* ukm */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         9: .line 180
            aload 4 /* ephKp */
            invokevirtual java.security.KeyPair.getPublic:()Ljava/security/PublicKey;
            invokeinterface java.security.PublicKey.getEncoded:()[B
            invokestatic org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            astore 6 /* ephKeyInfo */
        start local 6 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo ephKeyInfo
        10: .line 184
            aload 6 /* ephKeyInfo */
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.on:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
            ifeq 15
        11: .line 186
            new org.bouncycastle.asn1.cryptopro.GostR3410TransportParameters
            dup
        12: .line 187
            getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_gost_28147_param_Z:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 6 /* ephKeyInfo */
            aload 5 /* ukm */
        13: .line 186
            invokespecial org.bouncycastle.asn1.cryptopro.GostR3410TransportParameters.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;[B)V
            astore 7 /* transParams */
        start local 7 // org.bouncycastle.asn1.cryptopro.GostR3410TransportParameters transParams
        14: .line 188
            goto 18
        end local 7 // org.bouncycastle.asn1.cryptopro.GostR3410TransportParameters transParams
        15: .line 191
      StackMap locals: org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper org.bouncycastle.operator.GenericKey byte[] java.security.KeyPairGenerator java.security.KeyPair byte[] org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
      StackMap stack:
            new org.bouncycastle.asn1.cryptopro.GostR3410TransportParameters
            dup
        16: .line 192
            getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.id_Gost28147_89_CryptoPro_A_ParamSet:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 6 /* ephKeyInfo */
            aload 5 /* ukm */
        17: .line 191
            invokespecial org.bouncycastle.asn1.cryptopro.GostR3410TransportParameters.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;[B)V
            astore 7 /* transParams */
        start local 7 // org.bouncycastle.asn1.cryptopro.GostR3410TransportParameters transParams
        18: .line 195
      StackMap locals: org.bouncycastle.asn1.cryptopro.GostR3410TransportParameters
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
            aload 0 /* this */
            invokevirtual org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.getAlgorithmIdentifier:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.operator.jcajce.OperatorHelper.createKeyAgreement:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Ljavax/crypto/KeyAgreement;
            astore 8 /* agreement */
        start local 8 // javax.crypto.KeyAgreement agreement
        19: .line 197
            aload 8 /* agreement */
            aload 4 /* ephKp */
            invokevirtual java.security.KeyPair.getPrivate:()Ljava/security/PrivateKey;
            new org.bouncycastle.jcajce.spec.UserKeyingMaterialSpec
            dup
            aload 7 /* transParams */
            invokevirtual org.bouncycastle.asn1.cryptopro.GostR3410TransportParameters.getUkm:()[B
            invokespecial org.bouncycastle.jcajce.spec.UserKeyingMaterialSpec.<init>:([B)V
            invokevirtual javax.crypto.KeyAgreement.init:(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
        20: .line 199
            aload 8 /* agreement */
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.publicKey:Ljava/security/PublicKey;
            iconst_1
            invokevirtual javax.crypto.KeyAgreement.doPhase:(Ljava/security/Key;Z)Ljava/security/Key;
            pop
        21: .line 201
            aload 8 /* agreement */
            getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.id_Gost28147_89_CryptoPro_KeyWrap:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            invokevirtual javax.crypto.KeyAgreement.generateSecret:(Ljava/lang/String;)Ljavax/crypto/SecretKey;
            astore 9 /* key */
        start local 9 // javax.crypto.SecretKey key
        22: .line 203
            aload 1 /* encryptionKey */
            invokestatic org.bouncycastle.operator.jcajce.OperatorUtils.getJceKey:(Lorg/bouncycastle/operator/GenericKey;)Ljava/security/Key;
            invokeinterface java.security.Key.getEncoded:()[B
            astore 10 /* encKey */
        start local 10 // byte[] encKey
        23: .line 205
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
            getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.id_Gost28147_89_CryptoPro_KeyWrap:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.operator.jcajce.OperatorHelper.createCipher:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Ljavax/crypto/Cipher;
            astore 11 /* keyCipher */
        start local 11 // javax.crypto.Cipher keyCipher
        24: .line 207
            aload 11 /* keyCipher */
            iconst_3
            aload 9 /* key */
            new org.bouncycastle.jcajce.spec.GOST28147WrapParameterSpec
            dup
            aload 7 /* transParams */
            invokevirtual org.bouncycastle.asn1.cryptopro.GostR3410TransportParameters.getEncryptionParamSet:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 7 /* transParams */
            invokevirtual org.bouncycastle.asn1.cryptopro.GostR3410TransportParameters.getUkm:()[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
        25: .line 209
            aload 11 /* keyCipher */
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 10 /* encKey */
            ldc "GOST"
            invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
            invokevirtual javax.crypto.Cipher.wrap:(Ljava/security/Key;)[B
            astore 12 /* keyData */
        start local 12 // byte[] keyData
        26: .line 211
            new org.bouncycastle.asn1.cryptopro.GostR3410KeyTransport
            dup
        27: .line 212
            new org.bouncycastle.asn1.cryptopro.Gost2814789EncryptedKey
            dup
        28: .line 213
            aload 12 /* keyData */
            iconst_0
            bipush 32
            invokestatic org.bouncycastle.util.Arrays.copyOfRange:([BII)[B
            aload 12 /* keyData */
            bipush 32
            bipush 36
            invokestatic org.bouncycastle.util.Arrays.copyOfRange:([BII)[B
        29: .line 212
            invokespecial org.bouncycastle.asn1.cryptopro.Gost2814789EncryptedKey.<init>:([B[B)V
        30: .line 213
            aload 7 /* transParams */
        31: .line 211
            invokespecial org.bouncycastle.asn1.cryptopro.GostR3410KeyTransport.<init>:(Lorg/bouncycastle/asn1/cryptopro/Gost2814789EncryptedKey;Lorg/bouncycastle/asn1/cryptopro/GostR3410TransportParameters;)V
            astore 13 /* transport */
        start local 13 // org.bouncycastle.asn1.cryptopro.GostR3410KeyTransport transport
        32: .line 215
            aload 13 /* transport */
            invokevirtual org.bouncycastle.asn1.cryptopro.GostR3410KeyTransport.getEncoded:()[B
        33: areturn
        end local 13 // org.bouncycastle.asn1.cryptopro.GostR3410KeyTransport transport
        end local 12 // byte[] keyData
        end local 11 // javax.crypto.Cipher keyCipher
        end local 10 // byte[] encKey
        end local 9 // javax.crypto.SecretKey key
        end local 8 // javax.crypto.KeyAgreement agreement
        end local 7 // org.bouncycastle.asn1.cryptopro.GostR3410TransportParameters transParams
        end local 6 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo ephKeyInfo
        end local 5 // byte[] ukm
        end local 4 // java.security.KeyPair ephKp
        end local 3 // java.security.KeyPairGenerator kpGen
        34: .line 217
      StackMap locals: org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper org.bouncycastle.operator.GenericKey byte[]
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        35: .line 219
            new org.bouncycastle.operator.OperatorException
            dup
            new java.lang.StringBuilder
            dup
            ldc "exception wrapping key: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial org.bouncycastle.operator.OperatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception e
        36: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
            aload 0 /* this */
            invokevirtual org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.getAlgorithmIdentifier:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.extraMappings:Ljava/util/Map;
            invokevirtual org.bouncycastle.operator.jcajce.OperatorHelper.createAsymmetricWrapper:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/util/Map;)Ljavax/crypto/Cipher;
            astore 3 /* keyEncryptionCipher */
        start local 3 // javax.crypto.Cipher keyEncryptionCipher
        37: .line 225
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.helper:Lorg/bouncycastle/operator/jcajce/OperatorHelper;
            aload 0 /* this */
            invokevirtual org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.getAlgorithmIdentifier:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.operator.jcajce.OperatorHelper.createAlgorithmParameters:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Ljava/security/AlgorithmParameters;
            astore 4 /* algParams */
        start local 4 // java.security.AlgorithmParameters algParams
        38: .line 229
            aload 4 /* algParams */
            ifnull 41
        39: .line 231
            aload 3 /* keyEncryptionCipher */
            iconst_3
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.publicKey:Ljava/security/PublicKey;
            aload 4 /* algParams */
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.random:Ljava/security/SecureRandom;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
        40: .line 232
            goto 42
        41: .line 235
      StackMap locals: javax.crypto.Cipher java.security.AlgorithmParameters
      StackMap stack:
            aload 3 /* keyEncryptionCipher */
            iconst_3
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.publicKey:Ljava/security/PublicKey;
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.random:Ljava/security/SecureRandom;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/SecureRandom;)V
        42: .line 237
      StackMap locals:
      StackMap stack:
            aload 3 /* keyEncryptionCipher */
            aload 1 /* encryptionKey */
            invokestatic org.bouncycastle.operator.jcajce.OperatorUtils.getJceKey:(Lorg/bouncycastle/operator/GenericKey;)Ljava/security/Key;
            invokevirtual javax.crypto.Cipher.wrap:(Ljava/security/Key;)[B
            astore 2 /* encryptedKeyBytes */
        43: .line 238
            goto 49
        44: .line 239
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            pop
            goto 49
        45: .line 242
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
            pop
            goto 49
        46: .line 245
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            pop
            goto 49
        47: .line 248
      StackMap locals:
      StackMap stack: java.lang.UnsupportedOperationException
            pop
            goto 49
        48: .line 251
      StackMap locals:
      StackMap stack: java.security.ProviderException
            pop
        49: .line 256
      StackMap locals:
      StackMap stack:
            aload 2 /* encryptedKeyBytes */
            ifnonnull 57
        50: .line 260
            aload 3 /* keyEncryptionCipher */
            iconst_1
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.publicKey:Ljava/security/PublicKey;
            aload 0 /* this */
            getfield org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.random:Ljava/security/SecureRandom;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/SecureRandom;)V
        51: .line 261
            aload 3 /* keyEncryptionCipher */
            aload 1 /* encryptionKey */
            invokestatic org.bouncycastle.operator.jcajce.OperatorUtils.getJceKey:(Lorg/bouncycastle/operator/GenericKey;)Ljava/security/Key;
            invokeinterface java.security.Key.getEncoded:()[B
            invokevirtual javax.crypto.Cipher.doFinal:([B)[B
            astore 2 /* encryptedKeyBytes */
        52: .line 262
            goto 57
        53: .line 263
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 5 /* e */
        start local 5 // java.security.InvalidKeyException e
        54: .line 265
            new org.bouncycastle.operator.OperatorException
            dup
            ldc "unable to encrypt contents key"
            aload 5 /* e */
            invokespecial org.bouncycastle.operator.OperatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.security.InvalidKeyException e
        55: .line 267
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
            astore 5 /* e */
        start local 5 // java.security.GeneralSecurityException e
        56: .line 269
            new org.bouncycastle.operator.OperatorException
            dup
            ldc "unable to encrypt contents key"
            aload 5 /* e */
            invokespecial org.bouncycastle.operator.OperatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.security.GeneralSecurityException e
        end local 4 // java.security.AlgorithmParameters algParams
        end local 3 // javax.crypto.Cipher keyEncryptionCipher
        57: .line 274
      StackMap locals:
      StackMap stack:
            aload 2 /* encryptedKeyBytes */
            areturn
        end local 2 // byte[] encryptedKeyBytes
        end local 1 // org.bouncycastle.operator.GenericKey encryptionKey
        end local 0 // org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   58     0                 this  Lorg/bouncycastle/operator/jcajce/JceAsymmetricKeyWrapper;
            0   58     1        encryptionKey  Lorg/bouncycastle/operator/GenericKey;
            1   58     2    encryptedKeyBytes  [B
            5   34     3                kpGen  Ljava/security/KeyPairGenerator;
            7   34     4                ephKp  Ljava/security/KeyPair;
            8   34     5                  ukm  [B
           10   34     6           ephKeyInfo  Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
           14   15     7          transParams  Lorg/bouncycastle/asn1/cryptopro/GostR3410TransportParameters;
           18   34     7          transParams  Lorg/bouncycastle/asn1/cryptopro/GostR3410TransportParameters;
           19   34     8            agreement  Ljavax/crypto/KeyAgreement;
           22   34     9                  key  Ljavax/crypto/SecretKey;
           23   34    10               encKey  [B
           24   34    11            keyCipher  Ljavax/crypto/Cipher;
           26   34    12              keyData  [B
           32   34    13            transport  Lorg/bouncycastle/asn1/cryptopro/GostR3410KeyTransport;
           35   36     3                    e  Ljava/lang/Exception;
           37   57     3  keyEncryptionCipher  Ljavax/crypto/Cipher;
           38   57     4            algParams  Ljava/security/AlgorithmParameters;
           54   55     5                    e  Ljava/security/InvalidKeyException;
           56   57     5                    e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           2    33      34  Class java.lang.Exception
          38    43      44  Class java.security.InvalidKeyException
          38    43      45  Class java.security.GeneralSecurityException
          38    43      46  Class java.lang.IllegalStateException
          38    43      47  Class java.lang.UnsupportedOperationException
          38    43      48  Class java.security.ProviderException
          50    52      53  Class java.security.InvalidKeyException
          50    52      55  Class java.security.GeneralSecurityException
    Exceptions:
      throws org.bouncycastle.operator.OperatorException
    MethodParameters:
               Name  Flags
      encryptionKey  

  private static org.bouncycastle.asn1.x509.AlgorithmIdentifier extractFromSpec(java.security.spec.AlgorithmParameterSpec);
    descriptor: (Ljava/security/spec/AlgorithmParameterSpec;)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=13, locals=2, args_size=1
        start local 0 // java.security.spec.AlgorithmParameterSpec algorithmParameterSpec
         0: .line 279
            aload 0 /* algorithmParameterSpec */
            instanceof javax.crypto.spec.OAEPParameterSpec
            ifeq 12
         1: .line 281
            aload 0 /* algorithmParameterSpec */
            checkcast javax.crypto.spec.OAEPParameterSpec
            astore 1 /* oaepSpec */
        start local 1 // javax.crypto.spec.OAEPParameterSpec oaepSpec
         2: .line 283
            aload 1 /* oaepSpec */
            invokevirtual javax.crypto.spec.OAEPParameterSpec.getMGFAlgorithm:()Ljava/lang/String;
            getstatic javax.crypto.spec.OAEPParameterSpec.DEFAULT:Ljavax/crypto/spec/OAEPParameterSpec;
            invokevirtual javax.crypto.spec.OAEPParameterSpec.getMGFAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         3: .line 285
            aload 1 /* oaepSpec */
            invokevirtual javax.crypto.spec.OAEPParameterSpec.getPSource:()Ljavax/crypto/spec/PSource;
            instanceof javax.crypto.spec.PSource$PSpecified
            ifeq 10
         4: .line 287
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_RSAES_OAEP:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
         5: .line 288
            new org.bouncycastle.asn1.pkcs.RSAESOAEPparams
            dup
            aload 1 /* oaepSpec */
            invokevirtual javax.crypto.spec.OAEPParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
            invokestatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.getDigest:(Ljava/lang/String;)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
         6: .line 289
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_mgf1:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 1 /* oaepSpec */
            invokevirtual javax.crypto.spec.OAEPParameterSpec.getMGFParameters:()Ljava/security/spec/AlgorithmParameterSpec;
            checkcast java.security.spec.MGF1ParameterSpec
            invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
            invokestatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.getDigest:(Ljava/lang/String;)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
         7: .line 290
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_pSpecified:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.asn1.DEROctetString
            dup
            aload 1 /* oaepSpec */
            invokevirtual javax.crypto.spec.OAEPParameterSpec.getPSource:()Ljavax/crypto/spec/PSource;
            checkcast javax.crypto.spec.PSource$PSpecified
            invokevirtual javax.crypto.spec.PSource$PSpecified.getValue:()[B
            invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
         8: .line 288
            invokespecial org.bouncycastle.asn1.pkcs.RSAESOAEPparams.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)V
         9: .line 287
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            areturn
        10: .line 294
      StackMap locals: javax.crypto.spec.OAEPParameterSpec
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unknown PSource: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* oaepSpec */
            invokevirtual javax.crypto.spec.OAEPParameterSpec.getPSource:()Ljavax/crypto/spec/PSource;
            invokevirtual javax.crypto.spec.PSource.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 299
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unknown MGF: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* oaepSpec */
            invokevirtual javax.crypto.spec.OAEPParameterSpec.getMGFAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // javax.crypto.spec.OAEPParameterSpec oaepSpec
        12: .line 303
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unknown spec: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* algorithmParameterSpec */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.security.spec.AlgorithmParameterSpec algorithmParameterSpec
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   13     0  algorithmParameterSpec  Ljava/security/spec/AlgorithmParameterSpec;
            2   12     1                oaepSpec  Ljavax/crypto/spec/OAEPParameterSpec;
    MethodParameters:
                        Name  Flags
      algorithmParameterSpec  

  private static org.bouncycastle.asn1.x509.AlgorithmIdentifier getDigest(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.String digest
         0: .line 330
            getstatic org.bouncycastle.operator.jcajce.JceAsymmetricKeyWrapper.digests:Ljava/util/Map;
            aload 0 /* digest */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.x509.AlgorithmIdentifier
            astore 1 /* algId */
        start local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
         1: .line 332
            aload 1 /* algId */
            ifnull 3
         2: .line 334
            aload 1 /* algId */
            areturn
         3: .line 337
      StackMap locals: org.bouncycastle.asn1.x509.AlgorithmIdentifier
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unknown digest name: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* digest */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
        end local 0 // java.lang.String digest
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  digest  Ljava/lang/String;
            1    4     1   algId  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
    MethodParameters:
        Name  Flags
      digest  
}
SourceFile: "JceAsymmetricKeyWrapper.java"
InnerClasses:
  public final PSpecified = javax.crypto.spec.PSource$PSpecified of javax.crypto.spec.PSource