public class org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder
  super_class: java.lang.Object
{
  private final org.bouncycastle.crypto.util.PBKDFConfig pbkdf;
    descriptor: Lorg/bouncycastle/crypto/util/PBKDFConfig;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private org.bouncycastle.asn1.ASN1ObjectIdentifier algorithm;
    descriptor: Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.asn1.ASN1ObjectIdentifier keyEncAlgorithm;
    descriptor: Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
    flags: (0x0002) ACC_PRIVATE

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

  private org.bouncycastle.operator.SecretKeySizeProvider keySizeProvider;
    descriptor: Lorg/bouncycastle/operator/SecretKeySizeProvider;
    flags: (0x0002) ACC_PRIVATE

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

  private org.bouncycastle.crypto.util.PBKDF2Config$Builder pbkdfBuilder;
    descriptor: Lorg/bouncycastle/crypto/util/PBKDF2Config$Builder;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.bouncycastle.asn1.ASN1ObjectIdentifier);
    descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
        start local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier keyEncryptionAlg
         0: .line 52
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 44
            aload 0 /* this */
            new org.bouncycastle.jcajce.util.DefaultJcaJceHelper
            dup
            invokespecial org.bouncycastle.jcajce.util.DefaultJcaJceHelper.<init>:()V
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
         2: .line 48
            aload 0 /* this */
            getstatic org.bouncycastle.operator.DefaultSecretKeySizeProvider.INSTANCE:Lorg/bouncycastle/operator/SecretKeySizeProvider;
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keySizeProvider:Lorg/bouncycastle/operator/SecretKeySizeProvider;
         3: .line 49
            aload 0 /* this */
            sipush 1024
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.iterationCount:I
         4: .line 50
            aload 0 /* this */
            new org.bouncycastle.crypto.util.PBKDF2Config$Builder
            dup
            invokespecial org.bouncycastle.crypto.util.PBKDF2Config$Builder.<init>:()V
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.pbkdfBuilder:Lorg/bouncycastle/crypto/util/PBKDF2Config$Builder;
         5: .line 54
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.pbkdf:Lorg/bouncycastle/crypto/util/PBKDFConfig;
         6: .line 55
            aload 0 /* this */
            aload 1 /* keyEncryptionAlg */
            invokevirtual org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.isPKCS12:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
            ifeq 10
         7: .line 57
            aload 0 /* this */
            aload 1 /* keyEncryptionAlg */
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.algorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
         8: .line 58
            aload 0 /* this */
            aload 1 /* keyEncryptionAlg */
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keyEncAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
         9: .line 59
            goto 12
        10: .line 62
      StackMap locals: org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder org.bouncycastle.asn1.ASN1ObjectIdentifier
      StackMap stack:
            aload 0 /* this */
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_PBES2:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.algorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        11: .line 63
            aload 0 /* this */
            aload 1 /* keyEncryptionAlg */
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keyEncAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        12: .line 65
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier keyEncryptionAlg
        end local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
            0   13     1  keyEncryptionAlg  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
    MethodParameters:
                  Name  Flags
      keyEncryptionAlg  

  public void <init>(org.bouncycastle.crypto.util.PBKDFConfig, org.bouncycastle.asn1.ASN1ObjectIdentifier);
    descriptor: (Lorg/bouncycastle/crypto/util/PBKDFConfig;Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
        start local 1 // org.bouncycastle.crypto.util.PBKDFConfig pbkdfAlgorithm
        start local 2 // org.bouncycastle.asn1.ASN1ObjectIdentifier keyEncryptionAlg
         0: .line 73
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 44
            aload 0 /* this */
            new org.bouncycastle.jcajce.util.DefaultJcaJceHelper
            dup
            invokespecial org.bouncycastle.jcajce.util.DefaultJcaJceHelper.<init>:()V
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
         2: .line 48
            aload 0 /* this */
            getstatic org.bouncycastle.operator.DefaultSecretKeySizeProvider.INSTANCE:Lorg/bouncycastle/operator/SecretKeySizeProvider;
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keySizeProvider:Lorg/bouncycastle/operator/SecretKeySizeProvider;
         3: .line 49
            aload 0 /* this */
            sipush 1024
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.iterationCount:I
         4: .line 50
            aload 0 /* this */
            new org.bouncycastle.crypto.util.PBKDF2Config$Builder
            dup
            invokespecial org.bouncycastle.crypto.util.PBKDF2Config$Builder.<init>:()V
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.pbkdfBuilder:Lorg/bouncycastle/crypto/util/PBKDF2Config$Builder;
         5: .line 75
            aload 0 /* this */
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_PBES2:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.algorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
         6: .line 76
            aload 0 /* this */
            aload 1 /* pbkdfAlgorithm */
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.pbkdf:Lorg/bouncycastle/crypto/util/PBKDFConfig;
         7: .line 77
            aload 0 /* this */
            aload 2 /* keyEncryptionAlg */
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keyEncAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
         8: .line 78
            return
        end local 2 // org.bouncycastle.asn1.ASN1ObjectIdentifier keyEncryptionAlg
        end local 1 // org.bouncycastle.crypto.util.PBKDFConfig pbkdfAlgorithm
        end local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
            0    9     1    pbkdfAlgorithm  Lorg/bouncycastle/crypto/util/PBKDFConfig;
            0    9     2  keyEncryptionAlg  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
    MethodParameters:
                  Name  Flags
      pbkdfAlgorithm    
      keyEncryptionAlg  

  public org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder setProvider(java.security.Provider);
    descriptor: (Ljava/security/Provider;)Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
        start local 1 // java.security.Provider provider
         0: .line 82
            aload 0 /* this */
            new org.bouncycastle.jcajce.util.ProviderJcaJceHelper
            dup
            aload 1 /* provider */
            invokespecial org.bouncycastle.jcajce.util.ProviderJcaJceHelper.<init>:(Ljava/security/Provider;)V
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
         1: .line 84
            aload 0 /* this */
            areturn
        end local 1 // java.security.Provider provider
        end local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
            0    2     1  provider  Ljava/security/Provider;
    MethodParameters:
          Name  Flags
      provider  

  public org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder setProvider(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
        start local 1 // java.lang.String providerName
         0: .line 89
            aload 0 /* this */
            new org.bouncycastle.jcajce.util.NamedJcaJceHelper
            dup
            aload 1 /* providerName */
            invokespecial org.bouncycastle.jcajce.util.NamedJcaJceHelper.<init>:(Ljava/lang/String;)V
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
         1: .line 91
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String providerName
        end local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
            0    2     1  providerName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      providerName  

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

  public org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder setKeySizeProvider(org.bouncycastle.operator.SecretKeySizeProvider);
    descriptor: (Lorg/bouncycastle/operator/SecretKeySizeProvider;)Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
        start local 1 // org.bouncycastle.operator.SecretKeySizeProvider keySizeProvider
         0: .line 110
            aload 0 /* this */
            aload 1 /* keySizeProvider */
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keySizeProvider:Lorg/bouncycastle/operator/SecretKeySizeProvider;
         1: .line 112
            aload 0 /* this */
            areturn
        end local 1 // org.bouncycastle.operator.SecretKeySizeProvider keySizeProvider
        end local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
            0    2     1  keySizeProvider  Lorg/bouncycastle/operator/SecretKeySizeProvider;
    MethodParameters:
                 Name  Flags
      keySizeProvider  

  public org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder setPRF(org.bouncycastle.asn1.x509.AlgorithmIdentifier);
    descriptor: (Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
        start local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier prf
         0: .line 124
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.pbkdf:Lorg/bouncycastle/crypto/util/PBKDFConfig;
            ifnull 2
         1: .line 126
            new java.lang.IllegalStateException
            dup
            ldc "set PRF count using PBKDFDef"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.pbkdfBuilder:Lorg/bouncycastle/crypto/util/PBKDF2Config$Builder;
            aload 1 /* prf */
            invokevirtual org.bouncycastle.crypto.util.PBKDF2Config$Builder.withPRF:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/crypto/util/PBKDF2Config$Builder;
            pop
         3: .line 130
            aload 0 /* this */
            areturn
        end local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier prf
        end local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
            0    4     1   prf  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
    MethodParameters:
      Name  Flags
      prf   

  public org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder setIterationCount(int);
    descriptor: (I)Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
        start local 1 // int iterationCount
         0: .line 142
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.pbkdf:Lorg/bouncycastle/crypto/util/PBKDFConfig;
            ifnull 2
         1: .line 144
            new java.lang.IllegalStateException
            dup
            ldc "set iteration count using PBKDFDef"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* iterationCount */
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.iterationCount:I
         3: .line 147
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.pbkdfBuilder:Lorg/bouncycastle/crypto/util/PBKDF2Config$Builder;
            iload 1 /* iterationCount */
            invokevirtual org.bouncycastle.crypto.util.PBKDF2Config$Builder.withIterationCount:(I)Lorg/bouncycastle/crypto/util/PBKDF2Config$Builder;
            pop
         4: .line 149
            aload 0 /* this */
            areturn
        end local 1 // int iterationCount
        end local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
            0    5     1  iterationCount  I
    MethodParameters:
                Name  Flags
      iterationCount  

  public org.bouncycastle.operator.OutputEncryptor build(char[]);
    descriptor: ([C)Lorg/bouncycastle/operator/OutputEncryptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=11, args_size=2
        start local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
        start local 1 // char[] password
         0: .line 158
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.random:Ljava/security/SecureRandom;
            ifnonnull 2
         1: .line 160
            aload 0 /* this */
            new java.security.SecureRandom
            dup
            invokespecial java.security.SecureRandom.<init>:()V
            putfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.random:Ljava/security/SecureRandom;
         2: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.algorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.isPKCS12:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
            ifeq 9
         3: .line 169
            bipush 20
            newarray 8
            astore 5 /* salt */
        start local 5 // byte[] salt
         4: .line 171
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.random:Ljava/security/SecureRandom;
            aload 5 /* salt */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         5: .line 173
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.algorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            invokeinterface org.bouncycastle.jcajce.util.JcaJceHelper.createCipher:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 2 /* cipher */
        start local 2 // javax.crypto.Cipher cipher
         6: .line 175
            aload 2 /* cipher */
            iconst_1
            new org.bouncycastle.jcajce.PKCS12KeyWithParameters
            dup
            aload 1 /* password */
            aload 5 /* salt */
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.iterationCount:I
            invokespecial org.bouncycastle.jcajce.PKCS12KeyWithParameters.<init>:([C[BI)V
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
         7: .line 177
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.algorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.asn1.pkcs.PKCS12PBEParams
            dup
            aload 5 /* salt */
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.iterationCount:I
            invokespecial org.bouncycastle.asn1.pkcs.PKCS12PBEParams.<init>:([BI)V
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            astore 4 /* encryptionAlg */
        end local 5 // byte[] salt
        start local 4 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlg
         8: .line 178
            goto 52
        end local 4 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlg
        end local 2 // javax.crypto.Cipher cipher
         9: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.algorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_PBES2:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 51
        10: .line 181
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.pbkdf:Lorg/bouncycastle/crypto/util/PBKDFConfig;
            ifnonnull 11
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.pbkdfBuilder:Lorg/bouncycastle/crypto/util/PBKDF2Config$Builder;
            invokevirtual org.bouncycastle.crypto.util.PBKDF2Config$Builder.build:()Lorg/bouncycastle/crypto/util/PBKDF2Config;
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.pbkdf:Lorg/bouncycastle/crypto/util/PBKDFConfig;
      StackMap locals:
      StackMap stack: org.bouncycastle.crypto.util.PBKDFConfig
        12: astore 5 /* pbkDef */
        start local 5 // org.bouncycastle.crypto.util.PBKDFConfig pbkDef
        13: .line 183
            getstatic org.bouncycastle.asn1.misc.MiscObjectIdentifiers.id_scrypt:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 5 /* pbkDef */
            invokevirtual org.bouncycastle.crypto.util.PBKDFConfig.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 36
        14: .line 185
            aload 5 /* pbkDef */
            checkcast org.bouncycastle.crypto.util.ScryptConfig
            astore 6 /* skdf */
        start local 6 // org.bouncycastle.crypto.util.ScryptConfig skdf
        15: .line 187
            aload 6 /* skdf */
            invokevirtual org.bouncycastle.crypto.util.ScryptConfig.getSaltLength:()I
            newarray 8
            astore 7 /* salt */
        start local 7 // byte[] salt
        16: .line 189
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.random:Ljava/security/SecureRandom;
            aload 7 /* salt */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
        17: .line 191
            new org.bouncycastle.asn1.misc.ScryptParams
            dup
        18: .line 192
            aload 7 /* salt */
        19: .line 193
            aload 6 /* skdf */
            invokevirtual org.bouncycastle.crypto.util.ScryptConfig.getCostParameter:()I
        20: .line 194
            aload 6 /* skdf */
            invokevirtual org.bouncycastle.crypto.util.ScryptConfig.getBlockSize:()I
        21: .line 195
            aload 6 /* skdf */
            invokevirtual org.bouncycastle.crypto.util.ScryptConfig.getParallelizationParameter:()I
        22: .line 191
            invokespecial org.bouncycastle.asn1.misc.ScryptParams.<init>:([BIII)V
            astore 8 /* params */
        start local 8 // org.bouncycastle.asn1.misc.ScryptParams params
        23: .line 197
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
            ldc "SCRYPT"
            invokeinterface org.bouncycastle.jcajce.util.JcaJceHelper.createSecretKeyFactory:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
            astore 9 /* keyFact */
        start local 9 // javax.crypto.SecretKeyFactory keyFact
        24: .line 199
            aload 9 /* keyFact */
            new org.bouncycastle.jcajce.spec.ScryptKeySpec
            dup
            aload 1 /* password */
        25: .line 200
            aload 7 /* salt */
            aload 6 /* skdf */
            invokevirtual org.bouncycastle.crypto.util.ScryptConfig.getCostParameter:()I
            aload 6 /* skdf */
            invokevirtual org.bouncycastle.crypto.util.ScryptConfig.getBlockSize:()I
            aload 6 /* skdf */
            invokevirtual org.bouncycastle.crypto.util.ScryptConfig.getParallelizationParameter:()I
        26: .line 201
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keySizeProvider:Lorg/bouncycastle/operator/SecretKeySizeProvider;
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keyEncAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
            invokeinterface org.bouncycastle.operator.SecretKeySizeProvider.getKeySize:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)I
            invokespecial org.bouncycastle.jcajce.spec.ScryptKeySpec.<init>:([C[BIIII)V
        27: .line 199
            invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
            astore 3 /* key */
        start local 3 // javax.crypto.SecretKey key
        28: .line 203
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keyEncAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            invokeinterface org.bouncycastle.jcajce.util.JcaJceHelper.createCipher:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 2 /* cipher */
        start local 2 // javax.crypto.Cipher cipher
        29: .line 205
            aload 2 /* cipher */
            iconst_1
            aload 3 /* key */
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.random:Ljava/security/SecureRandom;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/SecureRandom;)V
        30: .line 207
            new org.bouncycastle.asn1.pkcs.PBES2Parameters
            dup
        31: .line 208
            new org.bouncycastle.asn1.pkcs.KeyDerivationFunc
            dup
            getstatic org.bouncycastle.asn1.misc.MiscObjectIdentifiers.id_scrypt:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 8 /* params */
            invokespecial org.bouncycastle.asn1.pkcs.KeyDerivationFunc.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
        32: .line 209
            new org.bouncycastle.asn1.pkcs.EncryptionScheme
            dup
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keyEncAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 2 /* cipher */
            invokevirtual javax.crypto.Cipher.getParameters:()Ljava/security/AlgorithmParameters;
            invokevirtual java.security.AlgorithmParameters.getEncoded:()[B
            invokestatic org.bouncycastle.asn1.ASN1Primitive.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Primitive;
            invokespecial org.bouncycastle.asn1.pkcs.EncryptionScheme.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
        33: .line 207
            invokespecial org.bouncycastle.asn1.pkcs.PBES2Parameters.<init>:(Lorg/bouncycastle/asn1/pkcs/KeyDerivationFunc;Lorg/bouncycastle/asn1/pkcs/EncryptionScheme;)V
            astore 10 /* algParams */
        start local 10 // org.bouncycastle.asn1.pkcs.PBES2Parameters algParams
        34: .line 211
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.algorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 10 /* algParams */
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            astore 4 /* encryptionAlg */
        end local 10 // org.bouncycastle.asn1.pkcs.PBES2Parameters algParams
        end local 9 // javax.crypto.SecretKeyFactory keyFact
        end local 8 // org.bouncycastle.asn1.misc.ScryptParams params
        end local 7 // byte[] salt
        end local 6 // org.bouncycastle.crypto.util.ScryptConfig skdf
        start local 4 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlg
        35: .line 212
            goto 52
        end local 4 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlg
        end local 3 // javax.crypto.SecretKey key
        end local 2 // javax.crypto.Cipher cipher
        36: .line 215
      StackMap locals: org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder char[] top top top org.bouncycastle.crypto.util.PBKDFConfig
      StackMap stack:
            aload 5 /* pbkDef */
            checkcast org.bouncycastle.crypto.util.PBKDF2Config
            astore 6 /* pkdf */
        start local 6 // org.bouncycastle.crypto.util.PBKDF2Config pkdf
        37: .line 217
            aload 6 /* pkdf */
            invokevirtual org.bouncycastle.crypto.util.PBKDF2Config.getSaltLength:()I
            newarray 8
            astore 7 /* salt */
        start local 7 // byte[] salt
        38: .line 219
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.random:Ljava/security/SecureRandom;
            aload 7 /* salt */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
        39: .line 221
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
            aload 6 /* pkdf */
            invokevirtual org.bouncycastle.crypto.util.PBKDF2Config.getPRF:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokestatic org.bouncycastle.pkcs.jcajce.JceUtils.getAlgorithm:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Ljava/lang/String;
            invokeinterface org.bouncycastle.jcajce.util.JcaJceHelper.createSecretKeyFactory:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
            astore 8 /* keyFact */
        start local 8 // javax.crypto.SecretKeyFactory keyFact
        40: .line 223
            aload 8 /* keyFact */
            new javax.crypto.spec.PBEKeySpec
            dup
            aload 1 /* password */
            aload 7 /* salt */
            aload 6 /* pkdf */
            invokevirtual org.bouncycastle.crypto.util.PBKDF2Config.getIterationCount:()I
        41: .line 224
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keySizeProvider:Lorg/bouncycastle/operator/SecretKeySizeProvider;
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keyEncAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
            invokeinterface org.bouncycastle.operator.SecretKeySizeProvider.getKeySize:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)I
            invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C[BII)V
        42: .line 223
            invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
            astore 3 /* key */
        start local 3 // javax.crypto.SecretKey key
        43: .line 226
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keyEncAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            invokeinterface org.bouncycastle.jcajce.util.JcaJceHelper.createCipher:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 2 /* cipher */
        start local 2 // javax.crypto.Cipher cipher
        44: .line 228
            aload 2 /* cipher */
            iconst_1
            aload 3 /* key */
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.random:Ljava/security/SecureRandom;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/SecureRandom;)V
        45: .line 230
            new org.bouncycastle.asn1.pkcs.PBES2Parameters
            dup
        46: .line 231
            new org.bouncycastle.asn1.pkcs.KeyDerivationFunc
            dup
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_PBKDF2:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.asn1.pkcs.PBKDF2Params
            dup
            aload 7 /* salt */
            aload 6 /* pkdf */
            invokevirtual org.bouncycastle.crypto.util.PBKDF2Config.getIterationCount:()I
            aload 6 /* pkdf */
            invokevirtual org.bouncycastle.crypto.util.PBKDF2Config.getPRF:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokespecial org.bouncycastle.asn1.pkcs.PBKDF2Params.<init>:([BILorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)V
            invokespecial org.bouncycastle.asn1.pkcs.KeyDerivationFunc.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
        47: .line 232
            new org.bouncycastle.asn1.pkcs.EncryptionScheme
            dup
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.keyEncAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 2 /* cipher */
            invokevirtual javax.crypto.Cipher.getParameters:()Ljava/security/AlgorithmParameters;
            invokevirtual java.security.AlgorithmParameters.getEncoded:()[B
            invokestatic org.bouncycastle.asn1.ASN1Primitive.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Primitive;
            invokespecial org.bouncycastle.asn1.pkcs.EncryptionScheme.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
        48: .line 230
            invokespecial org.bouncycastle.asn1.pkcs.PBES2Parameters.<init>:(Lorg/bouncycastle/asn1/pkcs/KeyDerivationFunc;Lorg/bouncycastle/asn1/pkcs/EncryptionScheme;)V
            astore 9 /* algParams */
        start local 9 // org.bouncycastle.asn1.pkcs.PBES2Parameters algParams
        49: .line 234
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            aload 0 /* this */
            getfield org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder.algorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 9 /* algParams */
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
            astore 4 /* encryptionAlg */
        end local 9 // org.bouncycastle.asn1.pkcs.PBES2Parameters algParams
        end local 8 // javax.crypto.SecretKeyFactory keyFact
        end local 7 // byte[] salt
        end local 6 // org.bouncycastle.crypto.util.PBKDF2Config pkdf
        end local 5 // org.bouncycastle.crypto.util.PBKDFConfig pbkDef
        start local 4 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlg
        50: .line 236
            goto 52
        end local 4 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlg
        end local 3 // javax.crypto.SecretKey key
        end local 2 // javax.crypto.Cipher cipher
        51: .line 239
      StackMap locals: org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder char[]
      StackMap stack:
            new org.bouncycastle.operator.OperatorCreationException
            dup
            ldc "unrecognised algorithm"
            invokespecial org.bouncycastle.operator.OperatorCreationException.<init>:(Ljava/lang/String;)V
            athrow
        start local 2 // javax.crypto.Cipher cipher
        start local 4 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlg
        52: .line 242
      StackMap locals: org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder char[] javax.crypto.Cipher top org.bouncycastle.asn1.x509.AlgorithmIdentifier
      StackMap stack:
            new org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder$1
            dup
            aload 0 /* this */
            aload 4 /* encryptionAlg */
            aload 2 /* cipher */
            aload 1 /* password */
            invokespecial org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder$1.<init>:(Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Ljavax/crypto/Cipher;[C)V
        53: areturn
        end local 4 // org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlg
        end local 2 // javax.crypto.Cipher cipher
        54: .line 267
      StackMap locals: org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder char[]
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        55: .line 269
            new org.bouncycastle.operator.OperatorCreationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unable to create OutputEncryptor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* 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 5 /* e */
            invokespecial org.bouncycastle.operator.OperatorCreationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Exception e
        end local 1 // char[] password
        end local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   56     0           this  Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
            0   56     1       password  [C
            6    9     2         cipher  Ljavax/crypto/Cipher;
           29   36     2         cipher  Ljavax/crypto/Cipher;
           44   51     2         cipher  Ljavax/crypto/Cipher;
           52   54     2         cipher  Ljavax/crypto/Cipher;
           28   36     3            key  Ljavax/crypto/SecretKey;
           43   51     3            key  Ljavax/crypto/SecretKey;
            8    9     4  encryptionAlg  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
           35   36     4  encryptionAlg  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
           50   51     4  encryptionAlg  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
           52   54     4  encryptionAlg  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            4    8     5           salt  [B
           13   50     5         pbkDef  Lorg/bouncycastle/crypto/util/PBKDFConfig;
           15   35     6           skdf  Lorg/bouncycastle/crypto/util/ScryptConfig;
           16   35     7           salt  [B
           23   35     8         params  Lorg/bouncycastle/asn1/misc/ScryptParams;
           24   35     9        keyFact  Ljavax/crypto/SecretKeyFactory;
           34   35    10      algParams  Lorg/bouncycastle/asn1/pkcs/PBES2Parameters;
           37   50     6           pkdf  Lorg/bouncycastle/crypto/util/PBKDF2Config;
           38   50     7           salt  [B
           40   50     8        keyFact  Ljavax/crypto/SecretKeyFactory;
           49   50     9      algParams  Lorg/bouncycastle/asn1/pkcs/PBES2Parameters;
           55   56     5              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2    53      54  Class java.lang.Exception
    Exceptions:
      throws org.bouncycastle.operator.OperatorCreationException
    MethodParameters:
          Name  Flags
      password  final

  private boolean isPKCS12(org.bouncycastle.asn1.ASN1ObjectIdentifier);
    descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
        start local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier algorithm
         0: .line 275
            aload 1 /* algorithm */
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pkcs_12PbeIds:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.on:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
            ifne 4
         1: .line 276
            aload 1 /* algorithm */
            getstatic org.bouncycastle.asn1.bc.BCObjectIdentifiers.bc_pbe_sha1_pkcs12:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.on:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
            ifne 4
         2: .line 277
            aload 1 /* algorithm */
            getstatic org.bouncycastle.asn1.bc.BCObjectIdentifiers.bc_pbe_sha256_pkcs12:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.on:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
            ifne 4
         3: .line 275
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier algorithm
        end local 0 // org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/bouncycastle/pkcs/jcajce/JcePKCSPBEOutputEncryptorBuilder;
            0    5     1  algorithm  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
    MethodParameters:
           Name  Flags
      algorithm  

  private static byte[] PKCS5PasswordToBytes(char[]);
    descriptor: ([C)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // char[] password
         0: .line 290
            aload 0 /* password */
            ifnull 8
         1: .line 292
            aload 0 /* password */
            arraylength
            newarray 8
            astore 1 /* bytes */
        start local 1 // byte[] bytes
         2: .line 294
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 6
         4: .line 296
      StackMap locals: byte[] int
      StackMap stack:
            aload 1 /* bytes */
            iload 2 /* i */
            aload 0 /* password */
            iload 2 /* i */
            caload
            i2b
            bastore
         5: .line 294
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 1 /* bytes */
            arraylength
            if_icmpne 4
        end local 2 // int i
         7: .line 299
            aload 1 /* bytes */
            areturn
        end local 1 // byte[] bytes
         8: .line 303
      StackMap locals:
      StackMap stack:
            iconst_0
            newarray 8
            areturn
        end local 0 // char[] password
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0  password  [C
            2    8     1     bytes  [B
            3    7     2         i  I
    MethodParameters:
          Name  Flags
      password  

  private static byte[] PKCS12PasswordToBytes(char[]);
    descriptor: ([C)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // char[] password
         0: .line 317
            aload 0 /* password */
            ifnull 9
            aload 0 /* password */
            arraylength
            ifle 9
         1: .line 320
            aload 0 /* password */
            arraylength
            iconst_1
            iadd
            iconst_2
            imul
            newarray 8
            astore 1 /* bytes */
        start local 1 // byte[] bytes
         2: .line 322
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 324
      StackMap locals: byte[] int
      StackMap stack:
            aload 1 /* bytes */
            iload 2 /* i */
            iconst_2
            imul
            aload 0 /* password */
            iload 2 /* i */
            caload
            bipush 8
            iushr
            i2b
            bastore
         5: .line 325
            aload 1 /* bytes */
            iload 2 /* i */
            iconst_2
            imul
            iconst_1
            iadd
            aload 0 /* password */
            iload 2 /* i */
            caload
            i2b
            bastore
         6: .line 322
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* password */
            arraylength
            if_icmpne 4
        end local 2 // int i
         8: .line 328
            aload 1 /* bytes */
            areturn
        end local 1 // byte[] bytes
         9: .line 332
      StackMap locals:
      StackMap stack:
            iconst_0
            newarray 8
            areturn
        end local 0 // char[] password
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0  password  [C
            2    9     1     bytes  [B
            3    8     2         i  I
    MethodParameters:
          Name  Flags
      password  
}
SourceFile: "JcePKCSPBEOutputEncryptorBuilder.java"
NestMembers:
  org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder$1
InnerClasses:
  public Builder = org.bouncycastle.crypto.util.PBKDF2Config$Builder of org.bouncycastle.crypto.util.PBKDF2Config
  org.bouncycastle.pkcs.jcajce.JcePKCSPBEOutputEncryptorBuilder$1