class org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser implements org.bouncycastle.util.io.pem.PemObjectParser
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser
  super_class: java.lang.Object
{
  private java.lang.String symProvider;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

  final org.bouncycastle.openssl.PEMReader this$0;
    descriptor: Lorg/bouncycastle/openssl/PEMReader;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(org.bouncycastle.openssl.PEMReader, java.lang.String, java.lang.String);
    descriptor: (Lorg/bouncycastle/openssl/PEMReader;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser this
        start local 2 // java.lang.String symProvider
        start local 3 // java.lang.String asymProvider
         0: .line 668
            aload 0 /* this */
            aload 1
            putfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
         1: .line 667
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         2: .line 669
            aload 0 /* this */
            aload 2 /* symProvider */
            putfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
         3: .line 670
            aload 0 /* this */
            aload 3 /* asymProvider */
            putfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.asymProvider:Ljava/lang/String;
         4: .line 671
            return
        end local 3 // java.lang.String asymProvider
        end local 2 // java.lang.String symProvider
        end local 0 // org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/bouncycastle/openssl/PEMReader$EncryptedPrivateKeyParser;
            0    5     2   symProvider  Ljava/lang/String;
            0    5     3  asymProvider  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      this$0        final
      symProvider   
      asymProvider  

  public java.lang.Object parseObject(org.bouncycastle.util.io.pem.PemObject);
    descriptor: (Lorg/bouncycastle/util/io/pem/PemObject;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=17, args_size=2
        start local 0 // org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser this
        start local 1 // org.bouncycastle.util.io.pem.PemObject obj
         0: .line 684
            aload 1 /* obj */
            invokevirtual org.bouncycastle.util.io.pem.PemObject.getContent:()[B
            invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
            invokestatic org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/EncryptedPrivateKeyInfo;
            astore 2 /* info */
        start local 2 // org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo info
         1: .line 685
            aload 2 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            astore 3 /* algId */
        start local 3 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
         2: .line 687
            aload 0 /* this */
            getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
            getfield org.bouncycastle.openssl.PEMReader.pFinder:Lorg/bouncycastle/openssl/PasswordFinder;
            ifnonnull 4
         3: .line 689
            new org.bouncycastle.openssl.PEMException
            dup
            ldc "no PasswordFinder specified"
            invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 692
      StackMap locals: org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo org.bouncycastle.asn1.x509.AlgorithmIdentifier
      StackMap stack:
            aload 3 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokestatic org.bouncycastle.openssl.PEMUtilities.isPKCS5Scheme2:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Z
            ifeq 22
         5: .line 694
            aload 3 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            invokestatic org.bouncycastle.asn1.pkcs.PBES2Parameters.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PBES2Parameters;
            astore 4 /* params */
        start local 4 // org.bouncycastle.asn1.pkcs.PBES2Parameters params
         6: .line 695
            aload 4 /* params */
            invokevirtual org.bouncycastle.asn1.pkcs.PBES2Parameters.getKeyDerivationFunc:()Lorg/bouncycastle/asn1/pkcs/KeyDerivationFunc;
            astore 5 /* func */
        start local 5 // org.bouncycastle.asn1.pkcs.KeyDerivationFunc func
         7: .line 696
            aload 4 /* params */
            invokevirtual org.bouncycastle.asn1.pkcs.PBES2Parameters.getEncryptionScheme:()Lorg/bouncycastle/asn1/pkcs/EncryptionScheme;
            astore 6 /* scheme */
        start local 6 // org.bouncycastle.asn1.pkcs.EncryptionScheme scheme
         8: .line 697
            aload 5 /* func */
            invokevirtual org.bouncycastle.asn1.pkcs.KeyDerivationFunc.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.pkcs.PBKDF2Params
            astore 7 /* defParams */
        start local 7 // org.bouncycastle.asn1.pkcs.PBKDF2Params defParams
         9: .line 699
            aload 7 /* defParams */
            invokevirtual org.bouncycastle.asn1.pkcs.PBKDF2Params.getIterationCount:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            istore 8 /* iterationCount */
        start local 8 // int iterationCount
        10: .line 700
            aload 7 /* defParams */
            invokevirtual org.bouncycastle.asn1.pkcs.PBKDF2Params.getSalt:()[B
            astore 9 /* salt */
        start local 9 // byte[] salt
        11: .line 702
            aload 6 /* scheme */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptionScheme.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            astore 10 /* algorithm */
        start local 10 // java.lang.String algorithm
        12: .line 704
            aload 10 /* algorithm */
            aload 0 /* this */
            getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
            getfield org.bouncycastle.openssl.PEMReader.pFinder:Lorg/bouncycastle/openssl/PasswordFinder;
            invokeinterface org.bouncycastle.openssl.PasswordFinder.getPassword:()[C
            aload 9 /* salt */
            iload 8 /* iterationCount */
            invokestatic org.bouncycastle.openssl.PEMUtilities.generateSecretKeyForPKCS5Scheme2:(Ljava/lang/String;[C[BI)Ljavax/crypto/SecretKey;
            astore 11 /* key */
        start local 11 // javax.crypto.SecretKey key
        13: .line 706
            aload 10 /* algorithm */
            aload 0 /* this */
            getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 12 /* cipher */
        start local 12 // javax.crypto.Cipher cipher
        14: .line 707
            aload 10 /* algorithm */
            aload 0 /* this */
            getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
            invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/AlgorithmParameters;
            astore 13 /* algParams */
        start local 13 // java.security.AlgorithmParameters algParams
        15: .line 709
            aload 13 /* algParams */
            aload 6 /* scheme */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptionScheme.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            invokeinterface org.bouncycastle.asn1.DEREncodable.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            invokevirtual org.bouncycastle.asn1.DERObject.getEncoded:()[B
            invokevirtual java.security.AlgorithmParameters.init:([B)V
        16: .line 711
            aload 12 /* cipher */
            iconst_2
            aload 11 /* key */
            aload 13 /* algParams */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
        17: .line 713
            aload 12 /* cipher */
            aload 2 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getEncryptedData:()[B
            invokevirtual javax.crypto.Cipher.doFinal:([B)[B
            invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
            invokestatic org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
            astore 14 /* pInfo */
        start local 14 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pInfo
        18: .line 714
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 14 /* pInfo */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getEncoded:()[B
            invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
            astore 15 /* keySpec */
        start local 15 // java.security.spec.PKCS8EncodedKeySpec keySpec
        19: .line 716
            aload 14 /* pInfo */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.asymProvider:Ljava/lang/String;
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
            astore 16 /* keyFact */
        start local 16 // java.security.KeyFactory keyFact
        20: .line 718
            aload 16 /* keyFact */
            aload 15 /* keySpec */
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
        21: areturn
        end local 16 // java.security.KeyFactory keyFact
        end local 15 // java.security.spec.PKCS8EncodedKeySpec keySpec
        end local 14 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pInfo
        end local 13 // java.security.AlgorithmParameters algParams
        end local 12 // javax.crypto.Cipher cipher
        end local 11 // javax.crypto.SecretKey key
        end local 10 // java.lang.String algorithm
        end local 9 // byte[] salt
        end local 8 // int iterationCount
        end local 7 // org.bouncycastle.asn1.pkcs.PBKDF2Params defParams
        end local 6 // org.bouncycastle.asn1.pkcs.EncryptionScheme scheme
        end local 5 // org.bouncycastle.asn1.pkcs.KeyDerivationFunc func
        end local 4 // org.bouncycastle.asn1.pkcs.PBES2Parameters params
        22: .line 720
      StackMap locals:
      StackMap stack:
            aload 3 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokestatic org.bouncycastle.openssl.PEMUtilities.isPKCS12:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Z
            ifeq 35
        23: .line 722
            aload 3 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            invokestatic org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PKCS12PBEParams;
            astore 4 /* params */
        start local 4 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams params
        24: .line 723
            aload 3 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            astore 5 /* algorithm */
        start local 5 // java.lang.String algorithm
        25: .line 724
            new javax.crypto.spec.PBEKeySpec
            dup
            aload 0 /* this */
            getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
            getfield org.bouncycastle.openssl.PEMReader.pFinder:Lorg/bouncycastle/openssl/PasswordFinder;
            invokeinterface org.bouncycastle.openssl.PasswordFinder.getPassword:()[C
            invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
            astore 6 /* pbeSpec */
        start local 6 // javax.crypto.spec.PBEKeySpec pbeSpec
        26: .line 726
            aload 5 /* algorithm */
            aload 0 /* this */
            getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
            invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
            astore 7 /* secKeyFact */
        start local 7 // javax.crypto.SecretKeyFactory secKeyFact
        27: .line 727
            new javax.crypto.spec.PBEParameterSpec
            dup
            aload 4 /* params */
            invokevirtual org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getIV:()[B
            aload 4 /* params */
            invokevirtual org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getIterations:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
            astore 8 /* defParams */
        start local 8 // javax.crypto.spec.PBEParameterSpec defParams
        28: .line 729
            aload 5 /* algorithm */
            aload 0 /* this */
            getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 9 /* cipher */
        start local 9 // javax.crypto.Cipher cipher
        29: .line 731
            aload 9 /* cipher */
            iconst_2
            aload 7 /* secKeyFact */
            aload 6 /* pbeSpec */
            invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
            aload 8 /* defParams */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
        30: .line 733
            aload 9 /* cipher */
            aload 2 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getEncryptedData:()[B
            invokevirtual javax.crypto.Cipher.doFinal:([B)[B
            invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
            invokestatic org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
            astore 10 /* pInfo */
        start local 10 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pInfo
        31: .line 734
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 10 /* pInfo */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getEncoded:()[B
            invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
            astore 11 /* keySpec */
        start local 11 // java.security.spec.PKCS8EncodedKeySpec keySpec
        32: .line 736
            aload 10 /* pInfo */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.asymProvider:Ljava/lang/String;
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
            astore 12 /* keyFact */
        start local 12 // java.security.KeyFactory keyFact
        33: .line 738
            aload 12 /* keyFact */
            aload 11 /* keySpec */
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
        34: areturn
        end local 12 // java.security.KeyFactory keyFact
        end local 11 // java.security.spec.PKCS8EncodedKeySpec keySpec
        end local 10 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pInfo
        end local 9 // javax.crypto.Cipher cipher
        end local 8 // javax.crypto.spec.PBEParameterSpec defParams
        end local 7 // javax.crypto.SecretKeyFactory secKeyFact
        end local 6 // javax.crypto.spec.PBEKeySpec pbeSpec
        end local 5 // java.lang.String algorithm
        end local 4 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams params
        35: .line 740
      StackMap locals:
      StackMap stack:
            aload 3 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokestatic org.bouncycastle.openssl.PEMUtilities.isPKCS5Scheme1:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Z
            ifeq 48
        36: .line 742
            aload 3 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            invokestatic org.bouncycastle.asn1.pkcs.PBEParameter.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PBEParameter;
            astore 4 /* params */
        start local 4 // org.bouncycastle.asn1.pkcs.PBEParameter params
        37: .line 743
            aload 3 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            astore 5 /* algorithm */
        start local 5 // java.lang.String algorithm
        38: .line 744
            new javax.crypto.spec.PBEKeySpec
            dup
            aload 0 /* this */
            getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
            getfield org.bouncycastle.openssl.PEMReader.pFinder:Lorg/bouncycastle/openssl/PasswordFinder;
            invokeinterface org.bouncycastle.openssl.PasswordFinder.getPassword:()[C
            invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
            astore 6 /* pbeSpec */
        start local 6 // javax.crypto.spec.PBEKeySpec pbeSpec
        39: .line 746
            aload 5 /* algorithm */
            aload 0 /* this */
            getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
            invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
            astore 7 /* secKeyFact */
        start local 7 // javax.crypto.SecretKeyFactory secKeyFact
        40: .line 747
            new javax.crypto.spec.PBEParameterSpec
            dup
            aload 4 /* params */
            invokevirtual org.bouncycastle.asn1.pkcs.PBEParameter.getSalt:()[B
            aload 4 /* params */
            invokevirtual org.bouncycastle.asn1.pkcs.PBEParameter.getIterationCount:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
            astore 8 /* defParams */
        start local 8 // javax.crypto.spec.PBEParameterSpec defParams
        41: .line 749
            aload 5 /* algorithm */
            aload 0 /* this */
            getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 9 /* cipher */
        start local 9 // javax.crypto.Cipher cipher
        42: .line 751
            aload 9 /* cipher */
            iconst_2
            aload 7 /* secKeyFact */
            aload 6 /* pbeSpec */
            invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
            aload 8 /* defParams */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
        43: .line 753
            aload 9 /* cipher */
            aload 2 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getEncryptedData:()[B
            invokevirtual javax.crypto.Cipher.doFinal:([B)[B
            invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
            invokestatic org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
            astore 10 /* pInfo */
        start local 10 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pInfo
        44: .line 754
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 10 /* pInfo */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getEncoded:()[B
            invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
            astore 11 /* keySpec */
        start local 11 // java.security.spec.PKCS8EncodedKeySpec keySpec
        45: .line 756
            aload 10 /* pInfo */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.asymProvider:Ljava/lang/String;
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
            astore 12 /* keyFact */
        start local 12 // java.security.KeyFactory keyFact
        46: .line 758
            aload 12 /* keyFact */
            aload 11 /* keySpec */
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
        47: areturn
        end local 12 // java.security.KeyFactory keyFact
        end local 11 // java.security.spec.PKCS8EncodedKeySpec keySpec
        end local 10 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pInfo
        end local 9 // javax.crypto.Cipher cipher
        end local 8 // javax.crypto.spec.PBEParameterSpec defParams
        end local 7 // javax.crypto.SecretKeyFactory secKeyFact
        end local 6 // javax.crypto.spec.PBEKeySpec pbeSpec
        end local 5 // java.lang.String algorithm
        end local 4 // org.bouncycastle.asn1.pkcs.PBEParameter params
        48: .line 762
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.openssl.PEMException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown algorithm: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
        end local 2 // org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo info
        49: .line 765
      StackMap locals: org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser org.bouncycastle.util.io.pem.PemObject
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        50: .line 767
            aload 2 /* e */
            athrow
        end local 2 // java.io.IOException e
        51: .line 769
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        52: .line 771
            new org.bouncycastle.openssl.PEMException
            dup
            new java.lang.StringBuilder
            dup
            ldc "problem parsing ENCRYPTED PRIVATE KEY: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // org.bouncycastle.util.io.pem.PemObject obj
        end local 0 // org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   53     0            this  Lorg/bouncycastle/openssl/PEMReader$EncryptedPrivateKeyParser;
            0   53     1             obj  Lorg/bouncycastle/util/io/pem/PemObject;
            1   49     2            info  Lorg/bouncycastle/asn1/pkcs/EncryptedPrivateKeyInfo;
            2   49     3           algId  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            6   22     4          params  Lorg/bouncycastle/asn1/pkcs/PBES2Parameters;
            7   22     5            func  Lorg/bouncycastle/asn1/pkcs/KeyDerivationFunc;
            8   22     6          scheme  Lorg/bouncycastle/asn1/pkcs/EncryptionScheme;
            9   22     7       defParams  Lorg/bouncycastle/asn1/pkcs/PBKDF2Params;
           10   22     8  iterationCount  I
           11   22     9            salt  [B
           12   22    10       algorithm  Ljava/lang/String;
           13   22    11             key  Ljavax/crypto/SecretKey;
           14   22    12          cipher  Ljavax/crypto/Cipher;
           15   22    13       algParams  Ljava/security/AlgorithmParameters;
           18   22    14           pInfo  Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
           19   22    15         keySpec  Ljava/security/spec/PKCS8EncodedKeySpec;
           20   22    16         keyFact  Ljava/security/KeyFactory;
           24   35     4          params  Lorg/bouncycastle/asn1/pkcs/PKCS12PBEParams;
           25   35     5       algorithm  Ljava/lang/String;
           26   35     6         pbeSpec  Ljavax/crypto/spec/PBEKeySpec;
           27   35     7      secKeyFact  Ljavax/crypto/SecretKeyFactory;
           28   35     8       defParams  Ljavax/crypto/spec/PBEParameterSpec;
           29   35     9          cipher  Ljavax/crypto/Cipher;
           31   35    10           pInfo  Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
           32   35    11         keySpec  Ljava/security/spec/PKCS8EncodedKeySpec;
           33   35    12         keyFact  Ljava/security/KeyFactory;
           37   48     4          params  Lorg/bouncycastle/asn1/pkcs/PBEParameter;
           38   48     5       algorithm  Ljava/lang/String;
           39   48     6         pbeSpec  Ljavax/crypto/spec/PBEKeySpec;
           40   48     7      secKeyFact  Ljavax/crypto/SecretKeyFactory;
           41   48     8       defParams  Ljavax/crypto/spec/PBEParameterSpec;
           42   48     9          cipher  Ljavax/crypto/Cipher;
           44   48    10           pInfo  Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
           45   48    11         keySpec  Ljava/security/spec/PKCS8EncodedKeySpec;
           46   48    12         keyFact  Ljava/security/KeyFactory;
           50   51     2               e  Ljava/io/IOException;
           52   53     2               e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    21      49  Class java.io.IOException
          22    34      49  Class java.io.IOException
          35    47      49  Class java.io.IOException
          48    49      49  Class java.io.IOException
           0    21      51  Class java.lang.Exception
          22    34      51  Class java.lang.Exception
          35    47      51  Class java.lang.Exception
          48    49      51  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   
}
SourceFile: "PEMReader.java"
NestHost: org.bouncycastle.openssl.PEMReader
InnerClasses:
  private EncryptedPrivateKeyParser = org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser of org.bouncycastle.openssl.PEMReader