public class org.bouncycastle.crypto.util.PublicKeyFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.crypto.util.PublicKeyFactory
  super_class: java.lang.Object
{
  private static java.util.Map converters;
    descriptor: Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 72
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
         1: .line 76
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.rsaEncryption:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$RSAConverter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$RSAConverter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 77
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_RSASSA_PSS:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$RSAConverter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$RSAConverter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 78
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.x509.X509ObjectIdentifiers.id_ea_rsa:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$RSAConverter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$RSAConverter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 79
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.dhpublicnumber:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$DHPublicNumberConverter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$DHPublicNumberConverter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 80
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.dhKeyAgreement:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$DHAgreementConverter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$DHAgreementConverter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 81
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_dsa:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$DSAConverter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$DSAConverter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 82
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.oiw.OIWObjectIdentifiers.dsaWithSHA1:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$DSAConverter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$DSAConverter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 83
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.oiw.OIWObjectIdentifiers.elGamalAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$ElGamalConverter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$ElGamalConverter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 84
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_ecPublicKey:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$ECConverter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$ECConverter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 85
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers.gostR3410_2001:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2001Converter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2001Converter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 86
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_gost_3410_12_256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2012Converter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2012Converter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 87
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.rosstandart.RosstandartObjectIdentifiers.id_tc26_gost_3410_12_512:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2012Converter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2012Converter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 88
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.ua.UAObjectIdentifiers.dstu4145be:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$DSTUConverter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$DSTUConverter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 89
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.ua.UAObjectIdentifiers.dstu4145le:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$DSTUConverter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$DSTUConverter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 90
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.edec.EdECObjectIdentifiers.id_X25519:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$X25519Converter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$X25519Converter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 91
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.edec.EdECObjectIdentifiers.id_X448:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$X448Converter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$X448Converter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 92
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.edec.EdECObjectIdentifiers.id_Ed25519:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$Ed25519Converter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$Ed25519Converter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 93
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            getstatic org.bouncycastle.asn1.edec.EdECObjectIdentifiers.id_Ed448:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.crypto.util.PublicKeyFactory$Ed448Converter
            dup
            invokespecial org.bouncycastle.crypto.util.PublicKeyFactory$Ed448Converter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 94
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.util.PublicKeyFactory this
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.bouncycastle.crypto.util.PublicKeyFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/crypto/util/PublicKeyFactory;

  public static org.bouncycastle.crypto.params.AsymmetricKeyParameter createKey(byte[]);
    descriptor: ([B)Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // byte[] keyInfoData
         0: .line 106
            aload 0 /* keyInfoData */
            invokestatic org.bouncycastle.asn1.ASN1Primitive.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Primitive;
            invokestatic org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            invokestatic org.bouncycastle.crypto.util.PublicKeyFactory.createKey:(Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
            areturn
        end local 0 // byte[] keyInfoData
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  keyInfoData  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      keyInfoData  

  public static org.bouncycastle.crypto.params.AsymmetricKeyParameter createKey(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.io.InputStream inStr
         0: .line 119
            new org.bouncycastle.asn1.ASN1InputStream
            dup
            aload 0 /* inStr */
            invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:(Ljava/io/InputStream;)V
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/ASN1Primitive;
            invokestatic org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            invokestatic org.bouncycastle.crypto.util.PublicKeyFactory.createKey:(Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
            areturn
        end local 0 // java.io.InputStream inStr
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  inStr  Ljava/io/InputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      inStr  

  public static org.bouncycastle.crypto.params.AsymmetricKeyParameter createKey(org.bouncycastle.asn1.x509.SubjectPublicKeyInfo);
    descriptor: (Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo keyInfo
         0: .line 132
            aload 0 /* keyInfo */
            aconst_null
            invokestatic org.bouncycastle.crypto.util.PublicKeyFactory.createKey:(Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;Ljava/lang/Object;)Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
            areturn
        end local 0 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo keyInfo
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  keyInfo  Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      keyInfo  

  public static org.bouncycastle.crypto.params.AsymmetricKeyParameter createKey(org.bouncycastle.asn1.x509.SubjectPublicKeyInfo, java.lang.Object);
    descriptor: (Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;Ljava/lang/Object;)Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo keyInfo
        start local 1 // java.lang.Object defaultParams
         0: .line 146
            aload 0 /* keyInfo */
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            astore 2 /* algId */
        start local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
         1: .line 147
            getstatic org.bouncycastle.crypto.util.PublicKeyFactory.converters:Ljava/util/Map;
            aload 2 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bouncycastle.crypto.util.PublicKeyFactory$SubjectPublicKeyInfoConverter
            astore 3 /* converter */
        start local 3 // org.bouncycastle.crypto.util.PublicKeyFactory$SubjectPublicKeyInfoConverter converter
         2: .line 149
            aload 3 /* converter */
            ifnull 4
         3: .line 151
            aload 3 /* converter */
            aload 0 /* keyInfo */
            aload 1 /* defaultParams */
            invokevirtual org.bouncycastle.crypto.util.PublicKeyFactory$SubjectPublicKeyInfoConverter.getPublicKeyParameters:(Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;Ljava/lang/Object;)Lorg/bouncycastle/crypto/params/AsymmetricKeyParameter;
            areturn
         4: .line 155
      StackMap locals: org.bouncycastle.asn1.x509.AlgorithmIdentifier org.bouncycastle.crypto.util.PublicKeyFactory$SubjectPublicKeyInfoConverter
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "algorithm identifier in public key not recognised: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* 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 java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // org.bouncycastle.crypto.util.PublicKeyFactory$SubjectPublicKeyInfoConverter converter
        end local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
        end local 1 // java.lang.Object defaultParams
        end local 0 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo keyInfo
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0        keyInfo  Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            0    5     1  defaultParams  Ljava/lang/Object;
            1    5     2          algId  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            2    5     3      converter  Lorg/bouncycastle/crypto/util/PublicKeyFactory$SubjectPublicKeyInfoConverter;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      keyInfo        
      defaultParams  

  private static byte[] getRawKey(org.bouncycastle.asn1.x509.SubjectPublicKeyInfo, java.lang.Object, int);
    descriptor: (Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;Ljava/lang/Object;I)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo keyInfo
        start local 1 // java.lang.Object defaultParams
        start local 2 // int expectedSize
         0: .line 531
            aload 0 /* keyInfo */
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getPublicKeyData:()Lorg/bouncycastle/asn1/DERBitString;
            invokevirtual org.bouncycastle.asn1.DERBitString.getOctets:()[B
            astore 3 /* result */
        start local 3 // byte[] result
         1: .line 532
            iload 2 /* expectedSize */
            aload 3 /* result */
            arraylength
            if_icmpeq 3
         2: .line 534
            new java.lang.RuntimeException
            dup
            ldc "public key encoding has incorrect length"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 536
      StackMap locals: byte[]
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // byte[] result
        end local 2 // int expectedSize
        end local 1 // java.lang.Object defaultParams
        end local 0 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo keyInfo
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0        keyInfo  Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            0    4     1  defaultParams  Ljava/lang/Object;
            0    4     2   expectedSize  I
            1    4     3         result  [B
    MethodParameters:
               Name  Flags
      keyInfo        
      defaultParams  
      expectedSize   
}
SourceFile: "PublicKeyFactory.java"
NestMembers:
  org.bouncycastle.crypto.util.PublicKeyFactory$DHAgreementConverter  org.bouncycastle.crypto.util.PublicKeyFactory$DHPublicNumberConverter  org.bouncycastle.crypto.util.PublicKeyFactory$DSAConverter  org.bouncycastle.crypto.util.PublicKeyFactory$DSTUConverter  org.bouncycastle.crypto.util.PublicKeyFactory$ECConverter  org.bouncycastle.crypto.util.PublicKeyFactory$Ed25519Converter  org.bouncycastle.crypto.util.PublicKeyFactory$Ed448Converter  org.bouncycastle.crypto.util.PublicKeyFactory$ElGamalConverter  org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2001Converter  org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2012Converter  org.bouncycastle.crypto.util.PublicKeyFactory$RSAConverter  org.bouncycastle.crypto.util.PublicKeyFactory$SubjectPublicKeyInfoConverter  org.bouncycastle.crypto.util.PublicKeyFactory$X25519Converter  org.bouncycastle.crypto.util.PublicKeyFactory$X448Converter
InnerClasses:
  private DHAgreementConverter = org.bouncycastle.crypto.util.PublicKeyFactory$DHAgreementConverter of org.bouncycastle.crypto.util.PublicKeyFactory
  private DHPublicNumberConverter = org.bouncycastle.crypto.util.PublicKeyFactory$DHPublicNumberConverter of org.bouncycastle.crypto.util.PublicKeyFactory
  private DSAConverter = org.bouncycastle.crypto.util.PublicKeyFactory$DSAConverter of org.bouncycastle.crypto.util.PublicKeyFactory
  private DSTUConverter = org.bouncycastle.crypto.util.PublicKeyFactory$DSTUConverter of org.bouncycastle.crypto.util.PublicKeyFactory
  private ECConverter = org.bouncycastle.crypto.util.PublicKeyFactory$ECConverter of org.bouncycastle.crypto.util.PublicKeyFactory
  private Ed25519Converter = org.bouncycastle.crypto.util.PublicKeyFactory$Ed25519Converter of org.bouncycastle.crypto.util.PublicKeyFactory
  private Ed448Converter = org.bouncycastle.crypto.util.PublicKeyFactory$Ed448Converter of org.bouncycastle.crypto.util.PublicKeyFactory
  private ElGamalConverter = org.bouncycastle.crypto.util.PublicKeyFactory$ElGamalConverter of org.bouncycastle.crypto.util.PublicKeyFactory
  private GOST3410_2001Converter = org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2001Converter of org.bouncycastle.crypto.util.PublicKeyFactory
  private GOST3410_2012Converter = org.bouncycastle.crypto.util.PublicKeyFactory$GOST3410_2012Converter of org.bouncycastle.crypto.util.PublicKeyFactory
  private RSAConverter = org.bouncycastle.crypto.util.PublicKeyFactory$RSAConverter of org.bouncycastle.crypto.util.PublicKeyFactory
  private abstract SubjectPublicKeyInfoConverter = org.bouncycastle.crypto.util.PublicKeyFactory$SubjectPublicKeyInfoConverter of org.bouncycastle.crypto.util.PublicKeyFactory
  private X25519Converter = org.bouncycastle.crypto.util.PublicKeyFactory$X25519Converter of org.bouncycastle.crypto.util.PublicKeyFactory
  private X448Converter = org.bouncycastle.crypto.util.PublicKeyFactory$X448Converter of org.bouncycastle.crypto.util.PublicKeyFactory