public abstract class org.bouncycastle.jce.provider.WrapCipherSpi extends javax.crypto.CipherSpi implements org.bouncycastle.jce.provider.PBE
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.bouncycastle.jce.provider.WrapCipherSpi
  super_class: javax.crypto.CipherSpi
{
  private java.lang.Class[] availableSpecs;
    descriptor: [Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE

  protected int pbeType;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int pbeHash;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int pbeKeySize;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int pbeIvSize;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected java.security.AlgorithmParameters engineParams;
    descriptor: Ljava/security/AlgorithmParameters;
    flags: (0x0004) ACC_PROTECTED

  protected org.bouncycastle.crypto.Wrapper wrapEngine;
    descriptor: Lorg/bouncycastle/crypto/Wrapper;
    flags: (0x0004) ACC_PROTECTED

  private int ivSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private byte[] iv;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
         0: .line 69
            aload 0 /* this */
            invokespecial javax.crypto.CipherSpi.<init>:()V
         1: .line 49
            aload 0 /* this */
         2: .line 50
            iconst_4
            anewarray java.lang.Class
            dup
            iconst_0
         3: .line 51
            ldc Ljavax/crypto/spec/IvParameterSpec;
            aastore
            dup
            iconst_1
         4: .line 52
            ldc Ljavax/crypto/spec/PBEParameterSpec;
            aastore
            dup
            iconst_2
         5: .line 53
            ldc Ljavax/crypto/spec/RC2ParameterSpec;
            aastore
            dup
            iconst_3
         6: .line 54
            ldc Ljavax/crypto/spec/RC5ParameterSpec;
            aastore
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.availableSpecs:[Ljava/lang/Class;
         7: .line 57
            aload 0 /* this */
            iconst_2
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.pbeType:I
         8: .line 58
            aload 0 /* this */
            iconst_1
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.pbeHash:I
         9: .line 62
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.engineParams:Ljava/security/AlgorithmParameters;
        10: .line 64
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
        11: .line 71
            return
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;

  protected void <init>(org.bouncycastle.crypto.Wrapper);
    descriptor: (Lorg/bouncycastle/crypto/Wrapper;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // org.bouncycastle.crypto.Wrapper wrapEngine
         0: .line 76
            aload 0 /* this */
            aload 1 /* wrapEngine */
            iconst_0
            invokespecial org.bouncycastle.jce.provider.WrapCipherSpi.<init>:(Lorg/bouncycastle/crypto/Wrapper;I)V
         1: .line 77
            return
        end local 1 // org.bouncycastle.crypto.Wrapper wrapEngine
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0    2     1  wrapEngine  Lorg/bouncycastle/crypto/Wrapper;
    MethodParameters:
            Name  Flags
      wrapEngine  

  protected void <init>(org.bouncycastle.crypto.Wrapper, int);
    descriptor: (Lorg/bouncycastle/crypto/Wrapper;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // org.bouncycastle.crypto.Wrapper wrapEngine
        start local 2 // int ivSize
         0: .line 79
            aload 0 /* this */
            invokespecial javax.crypto.CipherSpi.<init>:()V
         1: .line 49
            aload 0 /* this */
         2: .line 50
            iconst_4
            anewarray java.lang.Class
            dup
            iconst_0
         3: .line 51
            ldc Ljavax/crypto/spec/IvParameterSpec;
            aastore
            dup
            iconst_1
         4: .line 52
            ldc Ljavax/crypto/spec/PBEParameterSpec;
            aastore
            dup
            iconst_2
         5: .line 53
            ldc Ljavax/crypto/spec/RC2ParameterSpec;
            aastore
            dup
            iconst_3
         6: .line 54
            ldc Ljavax/crypto/spec/RC5ParameterSpec;
            aastore
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.availableSpecs:[Ljava/lang/Class;
         7: .line 57
            aload 0 /* this */
            iconst_2
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.pbeType:I
         8: .line 58
            aload 0 /* this */
            iconst_1
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.pbeHash:I
         9: .line 62
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.engineParams:Ljava/security/AlgorithmParameters;
        10: .line 64
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
        11: .line 83
            aload 0 /* this */
            aload 1 /* wrapEngine */
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
        12: .line 84
            aload 0 /* this */
            iload 2 /* ivSize */
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.ivSize:I
        13: .line 85
            return
        end local 2 // int ivSize
        end local 1 // org.bouncycastle.crypto.Wrapper wrapEngine
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0   14     1  wrapEngine  Lorg/bouncycastle/crypto/Wrapper;
            0   14     2      ivSize  I
    MethodParameters:
            Name  Flags
      wrapEngine  
      ivSize      

  protected int engineGetBlockSize();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
         0: .line 89
            iconst_0
            ireturn
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;

  protected byte[] engineGetIV();
    descriptor: ()[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
         0: .line 94
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.iv:[B
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            areturn
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;

  protected int engineGetKeySize(java.security.Key);
    descriptor: (Ljava/security/Key;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // java.security.Key key
         0: .line 100
            aload 1 /* key */
            invokeinterface java.security.Key.getEncoded:()[B
            arraylength
            ireturn
        end local 1 // java.security.Key key
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0    1     1   key  Ljava/security/Key;
    MethodParameters:
      Name  Flags
      key   

  protected int engineGetOutputSize(int);
    descriptor: (I)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // int inputLen
         0: .line 106
            iconst_m1
            ireturn
        end local 1 // int inputLen
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0    1     1  inputLen  I
    MethodParameters:
          Name  Flags
      inputLen  

  protected java.security.AlgorithmParameters engineGetParameters();
    descriptor: ()Ljava/security/AlgorithmParameters;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
         0: .line 111
            aconst_null
            areturn
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;

  protected void engineSetMode(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // java.lang.String mode
         0: .line 118
            new java.security.NoSuchAlgorithmException
            dup
            new java.lang.StringBuilder
            dup
            ldc "can't support mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* mode */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String mode
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0    1     1  mode  Ljava/lang/String;
    Exceptions:
      throws java.security.NoSuchAlgorithmException
    MethodParameters:
      Name  Flags
      mode  

  protected void engineSetPadding(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // java.lang.String padding
         0: .line 125
            new javax.crypto.NoSuchPaddingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Padding "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* padding */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " unknown."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.crypto.NoSuchPaddingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String padding
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0    1     1  padding  Ljava/lang/String;
    Exceptions:
      throws javax.crypto.NoSuchPaddingException
    MethodParameters:
         Name  Flags
      padding  

  protected void engineInit(int, java.security.Key, java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
    descriptor: (ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // int opmode
        start local 2 // java.security.Key key
        start local 3 // java.security.spec.AlgorithmParameterSpec params
        start local 4 // java.security.SecureRandom random
         0: .line 137
            aload 2 /* key */
            instanceof org.bouncycastle.jce.provider.JCEPBEKey
            ifeq 9
         1: .line 139
            aload 2 /* key */
            checkcast org.bouncycastle.jce.provider.JCEPBEKey
            astore 6 /* k */
        start local 6 // org.bouncycastle.jce.provider.JCEPBEKey k
         2: .line 141
            aload 3 /* params */
            instanceof javax.crypto.spec.PBEParameterSpec
            ifeq 5
         3: .line 143
            aload 6 /* k */
            aload 3 /* params */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
            invokeinterface org.bouncycastle.crypto.Wrapper.getAlgorithmName:()Ljava/lang/String;
            invokestatic org.bouncycastle.jce.provider.PBE$Util.makePBEParameters:(Lorg/bouncycastle/jce/provider/JCEPBEKey;Ljava/security/spec/AlgorithmParameterSpec;Ljava/lang/String;)Lorg/bouncycastle/crypto/CipherParameters;
            astore 5 /* param */
        start local 5 // org.bouncycastle.crypto.CipherParameters param
         4: .line 144
            goto 10
        end local 5 // org.bouncycastle.crypto.CipherParameters param
         5: .line 145
      StackMap locals: org.bouncycastle.jce.provider.WrapCipherSpi int java.security.Key java.security.spec.AlgorithmParameterSpec java.security.SecureRandom top org.bouncycastle.jce.provider.JCEPBEKey
      StackMap stack:
            aload 6 /* k */
            invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getParam:()Lorg/bouncycastle/crypto/CipherParameters;
            ifnull 8
         6: .line 147
            aload 6 /* k */
            invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getParam:()Lorg/bouncycastle/crypto/CipherParameters;
            astore 5 /* param */
        start local 5 // org.bouncycastle.crypto.CipherParameters param
         7: .line 148
            goto 10
        end local 5 // org.bouncycastle.crypto.CipherParameters param
         8: .line 151
      StackMap locals:
      StackMap stack:
            new java.security.InvalidAlgorithmParameterException
            dup
            ldc "PBE requires PBE parameters to be set."
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // org.bouncycastle.jce.provider.JCEPBEKey k
         9: .line 156
      StackMap locals: org.bouncycastle.jce.provider.WrapCipherSpi int java.security.Key java.security.spec.AlgorithmParameterSpec java.security.SecureRandom
      StackMap stack:
            new org.bouncycastle.crypto.params.KeyParameter
            dup
            aload 2 /* key */
            invokeinterface java.security.Key.getEncoded:()[B
            invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([B)V
            astore 5 /* param */
        start local 5 // org.bouncycastle.crypto.CipherParameters param
        10: .line 159
      StackMap locals: org.bouncycastle.crypto.CipherParameters
      StackMap stack:
            aload 3 /* params */
            instanceof javax.crypto.spec.IvParameterSpec
            ifeq 13
        11: .line 161
            aload 3 /* params */
            checkcast javax.crypto.spec.IvParameterSpec
            astore 6 /* iv */
        start local 6 // javax.crypto.spec.IvParameterSpec iv
        12: .line 162
            new org.bouncycastle.crypto.params.ParametersWithIV
            dup
            aload 5 /* param */
            aload 6 /* iv */
            invokevirtual javax.crypto.spec.IvParameterSpec.getIV:()[B
            invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
            astore 5 /* param */
        end local 6 // javax.crypto.spec.IvParameterSpec iv
        13: .line 165
      StackMap locals:
      StackMap stack:
            aload 5 /* param */
            instanceof org.bouncycastle.crypto.params.KeyParameter
            ifeq 17
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.ivSize:I
            ifeq 17
        14: .line 167
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.ivSize:I
            newarray 8
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.iv:[B
        15: .line 168
            aload 4 /* random */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.iv:[B
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
        16: .line 169
            new org.bouncycastle.crypto.params.ParametersWithIV
            dup
            aload 5 /* param */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.iv:[B
            invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
            astore 5 /* param */
        17: .line 172
      StackMap locals:
      StackMap stack:
            iload 1 /* opmode */
            tableswitch { // 1 - 4
                    1: 22
                    2: 22
                    3: 18
                    4: 20
              default: 23
          }
        18: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
            iconst_1
            aload 5 /* param */
            invokeinterface org.bouncycastle.crypto.Wrapper.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
        19: .line 176
            goto 24
        20: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
            iconst_0
            aload 5 /* param */
            invokeinterface org.bouncycastle.crypto.Wrapper.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
        21: .line 179
            goto 24
        22: .line 182
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "engine only valid for wrapping"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 184
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "eeek!"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        24: .line 186
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.bouncycastle.crypto.CipherParameters param
        end local 4 // java.security.SecureRandom random
        end local 3 // java.security.spec.AlgorithmParameterSpec params
        end local 2 // java.security.Key key
        end local 1 // int opmode
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   25     0    this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0   25     1  opmode  I
            0   25     2     key  Ljava/security/Key;
            0   25     3  params  Ljava/security/spec/AlgorithmParameterSpec;
            0   25     4  random  Ljava/security/SecureRandom;
            4    5     5   param  Lorg/bouncycastle/crypto/CipherParameters;
            7    8     5   param  Lorg/bouncycastle/crypto/CipherParameters;
           10   25     5   param  Lorg/bouncycastle/crypto/CipherParameters;
            2    9     6       k  Lorg/bouncycastle/jce/provider/JCEPBEKey;
           12   13     6      iv  Ljavax/crypto/spec/IvParameterSpec;
    Exceptions:
      throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      opmode  
      key     
      params  
      random  

  protected void engineInit(int, java.security.Key, java.security.AlgorithmParameters, java.security.SecureRandom);
    descriptor: (ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // int opmode
        start local 2 // java.security.Key key
        start local 3 // java.security.AlgorithmParameters params
        start local 4 // java.security.SecureRandom random
         0: .line 195
            aconst_null
            astore 5 /* paramSpec */
        start local 5 // java.security.spec.AlgorithmParameterSpec paramSpec
         1: .line 197
            aload 3 /* params */
            ifnull 11
         2: .line 199
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: goto 8
         4: .line 203
      StackMap locals: java.security.spec.AlgorithmParameterSpec int
      StackMap stack:
            aload 3 /* params */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.availableSpecs:[Ljava/lang/Class;
            iload 6 /* i */
            aaload
            invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
            astore 5 /* paramSpec */
         5: .line 204
            goto 9
         6: .line 206
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         7: .line 199
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.availableSpecs:[Ljava/lang/Class;
            arraylength
            if_icmpne 4
        end local 6 // int i
         9: .line 212
      StackMap locals:
      StackMap stack:
            aload 5 /* paramSpec */
            ifnonnull 11
        10: .line 214
            new java.security.InvalidAlgorithmParameterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "can't handle parameter "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* params */
            invokevirtual java.security.AlgorithmParameters.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* params */
            putfield org.bouncycastle.jce.provider.WrapCipherSpi.engineParams:Ljava/security/AlgorithmParameters;
        12: .line 219
            aload 0 /* this */
            iload 1 /* opmode */
            aload 2 /* key */
            aload 5 /* paramSpec */
            aload 4 /* random */
            invokevirtual org.bouncycastle.jce.provider.WrapCipherSpi.engineInit:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
        13: .line 220
            return
        end local 5 // java.security.spec.AlgorithmParameterSpec paramSpec
        end local 4 // java.security.SecureRandom random
        end local 3 // java.security.AlgorithmParameters params
        end local 2 // java.security.Key key
        end local 1 // int opmode
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0   14     1     opmode  I
            0   14     2        key  Ljava/security/Key;
            0   14     3     params  Ljava/security/AlgorithmParameters;
            0   14     4     random  Ljava/security/SecureRandom;
            1   14     5  paramSpec  Ljava/security/spec/AlgorithmParameterSpec;
            3    9     6          i  I
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.Exception
    Exceptions:
      throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      opmode  
      key     
      params  
      random  

  protected void engineInit(int, java.security.Key, java.security.SecureRandom);
    descriptor: (ILjava/security/Key;Ljava/security/SecureRandom;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // int opmode
        start local 2 // java.security.Key key
        start local 3 // java.security.SecureRandom random
         0: .line 230
            aload 0 /* this */
            iload 1 /* opmode */
            aload 2 /* key */
            aconst_null
            aload 3 /* random */
            invokevirtual org.bouncycastle.jce.provider.WrapCipherSpi.engineInit:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
         1: .line 231
            goto 4
         2: .line 232
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
            astore 4 /* e */
        start local 4 // java.security.InvalidAlgorithmParameterException e
         3: .line 234
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* e */
            invokevirtual java.security.InvalidAlgorithmParameterException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.security.InvalidAlgorithmParameterException e
         4: .line 236
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.security.SecureRandom random
        end local 2 // java.security.Key key
        end local 1 // int opmode
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0    5     1  opmode  I
            0    5     2     key  Ljava/security/Key;
            0    5     3  random  Ljava/security/SecureRandom;
            3    4     4       e  Ljava/security/InvalidAlgorithmParameterException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.InvalidAlgorithmParameterException
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
        Name  Flags
      opmode  
      key     
      random  

  protected byte[] engineUpdate(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // byte[] input
        start local 2 // int inputOffset
        start local 3 // int inputLen
         0: .line 243
            new java.lang.RuntimeException
            dup
            ldc "not supported for wrapping"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int inputLen
        end local 2 // int inputOffset
        end local 1 // byte[] input
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0    1     1        input  [B
            0    1     2  inputOffset  I
            0    1     3     inputLen  I
    MethodParameters:
             Name  Flags
      input        
      inputOffset  
      inputLen     

  protected int engineUpdate(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // byte[] input
        start local 2 // int inputOffset
        start local 3 // int inputLen
        start local 4 // byte[] output
        start local 5 // int outputOffset
         0: .line 254
            new java.lang.RuntimeException
            dup
            ldc "not supported for wrapping"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // int outputOffset
        end local 4 // byte[] output
        end local 3 // int inputLen
        end local 2 // int inputOffset
        end local 1 // byte[] input
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0    1     1         input  [B
            0    1     2   inputOffset  I
            0    1     3      inputLen  I
            0    1     4        output  [B
            0    1     5  outputOffset  I
    Exceptions:
      throws javax.crypto.ShortBufferException
    MethodParameters:
              Name  Flags
      input         
      inputOffset   
      inputLen      
      output        
      outputOffset  

  protected byte[] engineDoFinal(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // byte[] input
        start local 2 // int inputOffset
        start local 3 // int inputLen
         0: .line 263
            aconst_null
            areturn
        end local 3 // int inputLen
        end local 2 // int inputOffset
        end local 1 // byte[] input
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0    1     1        input  [B
            0    1     2  inputOffset  I
            0    1     3     inputLen  I
    Exceptions:
      throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
             Name  Flags
      input        
      inputOffset  
      inputLen     

  protected int engineDoFinal(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=6, args_size=6
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // byte[] input
        start local 2 // int inputOffset
        start local 3 // int inputLen
        start local 4 // byte[] output
        start local 5 // int outputOffset
         0: .line 274
            iconst_0
            ireturn
        end local 5 // int outputOffset
        end local 4 // byte[] output
        end local 3 // int inputLen
        end local 2 // int inputOffset
        end local 1 // byte[] input
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0    1     1         input  [B
            0    1     2   inputOffset  I
            0    1     3      inputLen  I
            0    1     4        output  [B
            0    1     5  outputOffset  I
    Exceptions:
      throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
              Name  Flags
      input         
      inputOffset   
      inputLen      
      output        
      outputOffset  

  protected byte[] engineWrap(java.security.Key);
    descriptor: (Ljava/security/Key;)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // java.security.Key key
         0: .line 281
            aload 1 /* key */
            invokeinterface java.security.Key.getEncoded:()[B
            astore 2 /* encoded */
        start local 2 // byte[] encoded
         1: .line 282
            aload 2 /* encoded */
            ifnonnull 3
         2: .line 284
            new java.security.InvalidKeyException
            dup
            ldc "Cannot wrap key, null encoding."
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 289
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
            ifnonnull 6
         4: .line 291
            aload 0 /* this */
            aload 2 /* encoded */
            iconst_0
            aload 2 /* encoded */
            arraylength
            invokevirtual org.bouncycastle.jce.provider.WrapCipherSpi.engineDoFinal:([BII)[B
         5: areturn
         6: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
            aload 2 /* encoded */
            iconst_0
            aload 2 /* encoded */
            arraylength
            invokeinterface org.bouncycastle.crypto.Wrapper.wrap:([BII)[B
         7: areturn
         8: .line 298
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
            astore 3 /* e */
        start local 3 // javax.crypto.BadPaddingException e
         9: .line 300
            new javax.crypto.IllegalBlockSizeException
            dup
            aload 3 /* e */
            invokevirtual javax.crypto.BadPaddingException.getMessage:()Ljava/lang/String;
            invokespecial javax.crypto.IllegalBlockSizeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // javax.crypto.BadPaddingException e
        end local 2 // byte[] encoded
        end local 1 // java.security.Key key
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0   10     1      key  Ljava/security/Key;
            1   10     2  encoded  [B
            9   10     3        e  Ljavax/crypto/BadPaddingException;
      Exception table:
        from    to  target  type
           3     5       8  Class javax.crypto.BadPaddingException
           6     7       8  Class javax.crypto.BadPaddingException
    Exceptions:
      throws javax.crypto.IllegalBlockSizeException, java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      key   

  protected java.security.Key engineUnwrap(byte[], java.lang.String, int);
    descriptor: ([BLjava/lang/String;I)Ljava/security/Key;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
        start local 1 // byte[] wrappedKey
        start local 2 // java.lang.String wrappedKeyAlgorithm
        start local 3 // int wrappedKeyType
         0: .line 313
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
            ifnonnull 3
         1: .line 315
            aload 0 /* this */
            aload 1 /* wrappedKey */
            iconst_0
            aload 1 /* wrappedKey */
            arraylength
            invokevirtual org.bouncycastle.jce.provider.WrapCipherSpi.engineDoFinal:([BII)[B
            astore 4 /* encoded */
        start local 4 // byte[] encoded
         2: .line 316
            goto 11
        end local 4 // byte[] encoded
         3: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.WrapCipherSpi.wrapEngine:Lorg/bouncycastle/crypto/Wrapper;
            aload 1 /* wrappedKey */
            iconst_0
            aload 1 /* wrappedKey */
            arraylength
            invokeinterface org.bouncycastle.crypto.Wrapper.unwrap:([BII)[B
            astore 4 /* encoded */
        start local 4 // byte[] encoded
         4: .line 321
            goto 11
        end local 4 // byte[] encoded
         5: .line 322
      StackMap locals:
      StackMap stack: org.bouncycastle.crypto.InvalidCipherTextException
            astore 5 /* e */
        start local 5 // org.bouncycastle.crypto.InvalidCipherTextException e
         6: .line 324
            new java.security.InvalidKeyException
            dup
            aload 5 /* e */
            invokevirtual org.bouncycastle.crypto.InvalidCipherTextException.getMessage:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // org.bouncycastle.crypto.InvalidCipherTextException e
         7: .line 326
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
            astore 5 /* e */
        start local 5 // javax.crypto.BadPaddingException e
         8: .line 328
            new java.security.InvalidKeyException
            dup
            aload 5 /* e */
            invokevirtual javax.crypto.BadPaddingException.getMessage:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // javax.crypto.BadPaddingException e
         9: .line 330
      StackMap locals:
      StackMap stack: javax.crypto.IllegalBlockSizeException
            astore 5 /* e2 */
        start local 5 // javax.crypto.IllegalBlockSizeException e2
        10: .line 332
            new java.security.InvalidKeyException
            dup
            aload 5 /* e2 */
            invokevirtual javax.crypto.IllegalBlockSizeException.getMessage:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // javax.crypto.IllegalBlockSizeException e2
        start local 4 // byte[] encoded
        11: .line 335
      StackMap locals: byte[]
      StackMap stack:
            iload 3 /* wrappedKeyType */
            iconst_3
            if_icmpne 13
        12: .line 337
            new javax.crypto.spec.SecretKeySpec
            dup
            aload 4 /* encoded */
            aload 2 /* wrappedKeyAlgorithm */
            invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
            areturn
        13: .line 339
      StackMap locals:
      StackMap stack:
            aload 2 /* wrappedKeyAlgorithm */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 38
            iload 3 /* wrappedKeyType */
            iconst_2
            if_icmpne 38
        14: .line 345
            new org.bouncycastle.asn1.ASN1InputStream
            dup
            aload 4 /* encoded */
            invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:([B)V
            astore 5 /* bIn */
        start local 5 // org.bouncycastle.asn1.ASN1InputStream bIn
        15: .line 350
            aload 5 /* bIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            astore 7 /* s */
        start local 7 // org.bouncycastle.asn1.ASN1Sequence s
        16: .line 351
            new org.bouncycastle.asn1.pkcs.PrivateKeyInfo
            dup
            aload 7 /* s */
            invokespecial org.bouncycastle.asn1.pkcs.PrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 8 /* in */
        start local 8 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo in
        17: .line 353
            aload 8 /* in */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            astore 9 /* oid */
        start local 9 // org.bouncycastle.asn1.DERObjectIdentifier oid
        18: .line 355
            aload 9 /* oid */
            getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_ecPublicKey:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 357
            new org.bouncycastle.jce.provider.JCEECPrivateKey
            dup
            aload 8 /* in */
            invokespecial org.bouncycastle.jce.provider.JCEECPrivateKey.<init>:(Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)V
            astore 6 /* privKey */
        start local 6 // java.security.PrivateKey privKey
        20: .line 358
            goto 37
        end local 6 // java.security.PrivateKey privKey
        21: .line 359
      StackMap locals: org.bouncycastle.jce.provider.WrapCipherSpi byte[] java.lang.String int byte[] org.bouncycastle.asn1.ASN1InputStream top org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.PrivateKeyInfo org.bouncycastle.asn1.DERObjectIdentifier
      StackMap stack:
            aload 9 /* oid */
            getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3410_94:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 24
        22: .line 361
            new org.bouncycastle.jce.provider.JDKGOST3410PrivateKey
            dup
            aload 8 /* in */
            invokespecial org.bouncycastle.jce.provider.JDKGOST3410PrivateKey.<init>:(Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)V
            astore 6 /* privKey */
        start local 6 // java.security.PrivateKey privKey
        23: .line 362
            goto 37
        end local 6 // java.security.PrivateKey privKey
        24: .line 363
      StackMap locals:
      StackMap stack:
            aload 9 /* oid */
            getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_dsa:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 27
        25: .line 365
            new org.bouncycastle.jce.provider.JDKDSAPrivateKey
            dup
            aload 8 /* in */
            invokespecial org.bouncycastle.jce.provider.JDKDSAPrivateKey.<init>:(Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)V
            astore 6 /* privKey */
        start local 6 // java.security.PrivateKey privKey
        26: .line 366
            goto 37
        end local 6 // java.security.PrivateKey privKey
        27: .line 367
      StackMap locals:
      StackMap stack:
            aload 9 /* oid */
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.dhKeyAgreement:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 30
        28: .line 369
            new org.bouncycastle.jce.provider.JCEDHPrivateKey
            dup
            aload 8 /* in */
            invokespecial org.bouncycastle.jce.provider.JCEDHPrivateKey.<init>:(Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)V
            astore 6 /* privKey */
        start local 6 // java.security.PrivateKey privKey
        29: .line 370
            goto 37
        end local 6 // java.security.PrivateKey privKey
        30: .line 371
      StackMap locals:
      StackMap stack:
            aload 9 /* oid */
            getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.dhpublicnumber:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 33
        31: .line 373
            new org.bouncycastle.jce.provider.JCEDHPrivateKey
            dup
            aload 8 /* in */
            invokespecial org.bouncycastle.jce.provider.JCEDHPrivateKey.<init>:(Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)V
            astore 6 /* privKey */
        start local 6 // java.security.PrivateKey privKey
        32: .line 374
            goto 37
        end local 6 // java.security.PrivateKey privKey
        33: .line 377
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.jce.provider.JCERSAPrivateCrtKey
            dup
            aload 8 /* in */
            invokespecial org.bouncycastle.jce.provider.JCERSAPrivateCrtKey.<init>:(Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)V
            astore 6 /* privKey */
        end local 9 // org.bouncycastle.asn1.DERObjectIdentifier oid
        end local 8 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo in
        end local 7 // org.bouncycastle.asn1.ASN1Sequence s
        start local 6 // java.security.PrivateKey privKey
        34: .line 379
            goto 37
        end local 6 // java.security.PrivateKey privKey
        35: .line 380
      StackMap locals: org.bouncycastle.jce.provider.WrapCipherSpi byte[] java.lang.String int byte[] org.bouncycastle.asn1.ASN1InputStream
      StackMap stack: java.lang.Exception
            pop
        36: .line 382
            new java.security.InvalidKeyException
            dup
            ldc "Invalid key encoding."
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        start local 6 // java.security.PrivateKey privKey
        37: .line 385
      StackMap locals: java.security.PrivateKey
      StackMap stack:
            aload 6 /* privKey */
            areturn
        end local 6 // java.security.PrivateKey privKey
        end local 5 // org.bouncycastle.asn1.ASN1InputStream bIn
        38: .line 391
      StackMap locals:
      StackMap stack:
            aload 2 /* wrappedKeyAlgorithm */
            getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
            astore 5 /* kf */
        start local 5 // java.security.KeyFactory kf
        39: .line 393
            iload 3 /* wrappedKeyType */
            iconst_1
            if_icmpne 42
        40: .line 395
            aload 5 /* kf */
            new java.security.spec.X509EncodedKeySpec
            dup
            aload 4 /* encoded */
            invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
            invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
        41: areturn
        42: .line 397
      StackMap locals: java.security.KeyFactory
      StackMap stack:
            iload 3 /* wrappedKeyType */
            iconst_2
            if_icmpne 51
        43: .line 399
            aload 5 /* kf */
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 4 /* encoded */
            invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
        44: areturn
        end local 5 // java.security.KeyFactory kf
        45: .line 402
      StackMap locals: org.bouncycastle.jce.provider.WrapCipherSpi byte[] java.lang.String int byte[]
      StackMap stack: java.security.NoSuchProviderException
            astore 5 /* e */
        start local 5 // java.security.NoSuchProviderException e
        46: .line 404
            new java.security.InvalidKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown key type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* e */
            invokevirtual java.security.NoSuchProviderException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.security.NoSuchProviderException e
        47: .line 406
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            astore 5 /* e */
        start local 5 // java.security.NoSuchAlgorithmException e
        48: .line 408
            new java.security.InvalidKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown key type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* e */
            invokevirtual java.security.NoSuchAlgorithmException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.security.NoSuchAlgorithmException e
        49: .line 410
      StackMap locals:
      StackMap stack: java.security.spec.InvalidKeySpecException
            astore 5 /* e2 */
        start local 5 // java.security.spec.InvalidKeySpecException e2
        50: .line 412
            new java.security.InvalidKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown key type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* e2 */
            invokevirtual java.security.spec.InvalidKeySpecException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.security.spec.InvalidKeySpecException e2
        51: .line 415
      StackMap locals:
      StackMap stack:
            new java.security.InvalidKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown key type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* wrappedKeyType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // byte[] encoded
        end local 3 // int wrappedKeyType
        end local 2 // java.lang.String wrappedKeyAlgorithm
        end local 1 // byte[] wrappedKey
        end local 0 // org.bouncycastle.jce.provider.WrapCipherSpi this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   52     0                 this  Lorg/bouncycastle/jce/provider/WrapCipherSpi;
            0   52     1           wrappedKey  [B
            0   52     2  wrappedKeyAlgorithm  Ljava/lang/String;
            0   52     3       wrappedKeyType  I
            2    3     4              encoded  [B
            4    5     4              encoded  [B
           11   52     4              encoded  [B
            6    7     5                    e  Lorg/bouncycastle/crypto/InvalidCipherTextException;
            8    9     5                    e  Ljavax/crypto/BadPaddingException;
           10   11     5                   e2  Ljavax/crypto/IllegalBlockSizeException;
           15   38     5                  bIn  Lorg/bouncycastle/asn1/ASN1InputStream;
           20   21     6              privKey  Ljava/security/PrivateKey;
           23   24     6              privKey  Ljava/security/PrivateKey;
           26   27     6              privKey  Ljava/security/PrivateKey;
           29   30     6              privKey  Ljava/security/PrivateKey;
           32   33     6              privKey  Ljava/security/PrivateKey;
           34   35     6              privKey  Ljava/security/PrivateKey;
           37   38     6              privKey  Ljava/security/PrivateKey;
           16   34     7                    s  Lorg/bouncycastle/asn1/ASN1Sequence;
           17   34     8                   in  Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
           18   34     9                  oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
           39   45     5                   kf  Ljava/security/KeyFactory;
           46   47     5                    e  Ljava/security/NoSuchProviderException;
           48   49     5                    e  Ljava/security/NoSuchAlgorithmException;
           50   51     5                   e2  Ljava/security/spec/InvalidKeySpecException;
      Exception table:
        from    to  target  type
           0     4       5  Class org.bouncycastle.crypto.InvalidCipherTextException
           0     4       7  Class javax.crypto.BadPaddingException
           0     4       9  Class javax.crypto.IllegalBlockSizeException
          15    34      35  Class java.lang.Exception
          38    41      45  Class java.security.NoSuchProviderException
          42    44      45  Class java.security.NoSuchProviderException
          38    41      47  Class java.security.NoSuchAlgorithmException
          42    44      47  Class java.security.NoSuchAlgorithmException
          38    41      49  Class java.security.spec.InvalidKeySpecException
          42    44      49  Class java.security.spec.InvalidKeySpecException
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
                     Name  Flags
      wrappedKey           
      wrappedKeyAlgorithm  
      wrappedKeyType       
}
SourceFile: "WrapCipherSpi.java"
NestMembers:
  org.bouncycastle.jce.provider.WrapCipherSpi$RC2Wrap
InnerClasses:
  public Util = org.bouncycastle.jce.provider.PBE$Util of org.bouncycastle.jce.provider.PBE
  public RC2Wrap = org.bouncycastle.jce.provider.WrapCipherSpi$RC2Wrap of org.bouncycastle.jce.provider.WrapCipherSpi