public class org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter
  super_class: java.lang.Object
{
  private org.bouncycastle.jcajce.util.JcaJceHelper helper;
    descriptor: Lorg/bouncycastle/jcajce/util/JcaJceHelper;
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 32
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.algorithms:Ljava/util/Map;
         1: .line 36
            getstatic org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.algorithms:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_ecPublicKey:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            ldc "ECDSA"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 37
            getstatic org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.algorithms:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.rsaEncryption:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            ldc "RSA"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 38
            getstatic org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.algorithms:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_dsa:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            ldc "DSA"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 39
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
         0: .line 28
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 30
            aload 0 /* this */
            new org.bouncycastle.jcajce.util.DefaultJcaJceHelper
            dup
            invokespecial org.bouncycastle.jcajce.util.DefaultJcaJceHelper.<init>:()V
            putfield org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
         2: .line 28
            return
        end local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/openssl/jcajce/JcaPEMKeyConverter;

  public org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter setProvider(java.security.Provider);
    descriptor: (Ljava/security/Provider;)Lorg/bouncycastle/openssl/jcajce/JcaPEMKeyConverter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
        start local 1 // java.security.Provider provider
         0: .line 43
            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.openssl.jcajce.JcaPEMKeyConverter.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
         1: .line 45
            aload 0 /* this */
            areturn
        end local 1 // java.security.Provider provider
        end local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/bouncycastle/openssl/jcajce/JcaPEMKeyConverter;
            0    2     1  provider  Ljava/security/Provider;
    MethodParameters:
          Name  Flags
      provider  

  public org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter setProvider(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/bouncycastle/openssl/jcajce/JcaPEMKeyConverter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
        start local 1 // java.lang.String providerName
         0: .line 50
            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.openssl.jcajce.JcaPEMKeyConverter.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
         1: .line 52
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String providerName
        end local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/bouncycastle/openssl/jcajce/JcaPEMKeyConverter;
            0    2     1  providerName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      providerName  

  public java.security.KeyPair getKeyPair(org.bouncycastle.openssl.PEMKeyPair);
    descriptor: (Lorg/bouncycastle/openssl/PEMKeyPair;)Ljava/security/KeyPair;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
        start local 1 // org.bouncycastle.openssl.PEMKeyPair keyPair
         0: .line 60
            aload 0 /* this */
            aload 1 /* keyPair */
            invokevirtual org.bouncycastle.openssl.PEMKeyPair.getPrivateKeyInfo:()Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getPrivateKeyAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.getKeyFactory:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Ljava/security/KeyFactory;
            astore 2 /* keyFactory */
        start local 2 // java.security.KeyFactory keyFactory
         1: .line 62
            new java.security.KeyPair
            dup
            aload 2 /* keyFactory */
            new java.security.spec.X509EncodedKeySpec
            dup
            aload 1 /* keyPair */
            invokevirtual org.bouncycastle.openssl.PEMKeyPair.getPublicKeyInfo:()Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getEncoded:()[B
            invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
            invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
         2: .line 63
            aload 2 /* keyFactory */
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 1 /* keyPair */
            invokevirtual org.bouncycastle.openssl.PEMKeyPair.getPrivateKeyInfo:()Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getEncoded:()[B
            invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
         3: .line 62
            invokespecial java.security.KeyPair.<init>:(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V
         4: areturn
        end local 2 // java.security.KeyFactory keyFactory
         5: .line 65
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         6: .line 67
            new org.bouncycastle.openssl.PEMException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unable to convert key pair: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* 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 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.openssl.PEMKeyPair keyPair
        end local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/bouncycastle/openssl/jcajce/JcaPEMKeyConverter;
            0    7     1     keyPair  Lorg/bouncycastle/openssl/PEMKeyPair;
            1    5     2  keyFactory  Ljava/security/KeyFactory;
            6    7     2           e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.Exception
    Exceptions:
      throws org.bouncycastle.openssl.PEMException
    MethodParameters:
         Name  Flags
      keyPair  

  public java.security.PublicKey getPublicKey(org.bouncycastle.asn1.x509.SubjectPublicKeyInfo);
    descriptor: (Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)Ljava/security/PublicKey;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
        start local 1 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo publicKeyInfo
         0: .line 76
            aload 0 /* this */
            aload 1 /* publicKeyInfo */
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.getKeyFactory:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Ljava/security/KeyFactory;
            astore 2 /* keyFactory */
        start local 2 // java.security.KeyFactory keyFactory
         1: .line 78
            aload 2 /* keyFactory */
            new java.security.spec.X509EncodedKeySpec
            dup
            aload 1 /* publicKeyInfo */
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getEncoded:()[B
            invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
            invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
         2: areturn
        end local 2 // java.security.KeyFactory keyFactory
         3: .line 80
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         4: .line 82
            new org.bouncycastle.openssl.PEMException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unable to convert key pair: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* 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 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.asn1.x509.SubjectPublicKeyInfo publicKeyInfo
        end local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/bouncycastle/openssl/jcajce/JcaPEMKeyConverter;
            0    5     1  publicKeyInfo  Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            1    3     2     keyFactory  Ljava/security/KeyFactory;
            4    5     2              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Exception
    Exceptions:
      throws org.bouncycastle.openssl.PEMException
    MethodParameters:
               Name  Flags
      publicKeyInfo  

  public java.security.PrivateKey getPrivateKey(org.bouncycastle.asn1.pkcs.PrivateKeyInfo);
    descriptor: (Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)Ljava/security/PrivateKey;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
        start local 1 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo privateKeyInfo
         0: .line 91
            aload 0 /* this */
            aload 1 /* privateKeyInfo */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getPrivateKeyAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.getKeyFactory:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Ljava/security/KeyFactory;
            astore 2 /* keyFactory */
        start local 2 // java.security.KeyFactory keyFactory
         1: .line 93
            aload 2 /* keyFactory */
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 1 /* privateKeyInfo */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getEncoded:()[B
            invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
         2: areturn
        end local 2 // java.security.KeyFactory keyFactory
         3: .line 95
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         4: .line 97
            new org.bouncycastle.openssl.PEMException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unable to convert key pair: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* 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 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.asn1.pkcs.PrivateKeyInfo privateKeyInfo
        end local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/bouncycastle/openssl/jcajce/JcaPEMKeyConverter;
            0    5     1  privateKeyInfo  Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
            1    3     2      keyFactory  Ljava/security/KeyFactory;
            4    5     2               e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Exception
    Exceptions:
      throws org.bouncycastle.openssl.PEMException
    MethodParameters:
                Name  Flags
      privateKeyInfo  

  private java.security.KeyFactory getKeyFactory(org.bouncycastle.asn1.x509.AlgorithmIdentifier);
    descriptor: (Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Ljava/security/KeyFactory;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
        start local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
         0: .line 104
            aload 1 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            astore 2 /* algorithm */
        start local 2 // org.bouncycastle.asn1.ASN1ObjectIdentifier algorithm
         1: .line 106
            getstatic org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.algorithms:Ljava/util/Map;
            aload 2 /* algorithm */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* algName */
        start local 3 // java.lang.String algName
         2: .line 108
            aload 3 /* algName */
            ifnonnull 4
         3: .line 110
            aload 2 /* algorithm */
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            astore 3 /* algName */
         4: .line 115
      StackMap locals: org.bouncycastle.asn1.ASN1ObjectIdentifier java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
            aload 3 /* algName */
            invokeinterface org.bouncycastle.jcajce.util.JcaJceHelper.createKeyFactory:(Ljava/lang/String;)Ljava/security/KeyFactory;
         5: areturn
         6: .line 117
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            astore 4 /* e */
        start local 4 // java.security.NoSuchAlgorithmException e
         7: .line 119
            aload 3 /* algName */
            ldc "ECDSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 121
            aload 0 /* this */
            getfield org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.helper:Lorg/bouncycastle/jcajce/util/JcaJceHelper;
            ldc "EC"
            invokeinterface org.bouncycastle.jcajce.util.JcaJceHelper.createKeyFactory:(Ljava/lang/String;)Ljava/security/KeyFactory;
            areturn
         9: .line 124
      StackMap locals: java.security.NoSuchAlgorithmException
      StackMap stack:
            aload 4 /* e */
            athrow
        end local 4 // java.security.NoSuchAlgorithmException e
        end local 3 // java.lang.String algName
        end local 2 // org.bouncycastle.asn1.ASN1ObjectIdentifier algorithm
        end local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
        end local 0 // org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/bouncycastle/openssl/jcajce/JcaPEMKeyConverter;
            0   10     1      algId  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            1   10     2  algorithm  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            2   10     3    algName  Ljava/lang/String;
            7   10     4          e  Ljava/security/NoSuchAlgorithmException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    MethodParameters:
       Name  Flags
      algId  
}
SourceFile: "JcaPEMKeyConverter.java"