public class org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory extends org.bouncycastle.jce.provider.JDKKeyFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory
  super_class: org.bouncycastle.jce.provider.JDKKeyFactory
{
  java.lang.String algorithm;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory this
        start local 1 // java.lang.String algorithm
         0: .line 27
            aload 0 /* this */
            invokespecial org.bouncycastle.jce.provider.JDKKeyFactory.<init>:()V
         1: .line 30
            aload 0 /* this */
            aload 1 /* algorithm */
            putfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
         2: .line 31
            return
        end local 1 // java.lang.String algorithm
        end local 0 // org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/bouncycastle/jce/provider/asymmetric/ec/KeyFactory;
            0    3     1  algorithm  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      algorithm  

  protected java.security.Key engineTranslateKey(java.security.Key);
    descriptor: (Ljava/security/Key;)Ljava/security/Key;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory this
        start local 1 // java.security.Key key
         0: .line 37
            aload 1 /* key */
            instanceof java.security.interfaces.ECPublicKey
            ifeq 2
         1: .line 39
            new org.bouncycastle.jce.provider.JCEECPublicKey
            dup
            aload 1 /* key */
            checkcast java.security.interfaces.ECPublicKey
            invokespecial org.bouncycastle.jce.provider.JCEECPublicKey.<init>:(Ljava/security/interfaces/ECPublicKey;)V
            areturn
         2: .line 41
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            instanceof java.security.interfaces.ECPrivateKey
            ifeq 4
         3: .line 43
            new org.bouncycastle.jce.provider.JCEECPrivateKey
            dup
            aload 1 /* key */
            checkcast java.security.interfaces.ECPrivateKey
            invokespecial org.bouncycastle.jce.provider.JCEECPrivateKey.<init>:(Ljava/security/interfaces/ECPrivateKey;)V
            areturn
         4: .line 46
      StackMap locals:
      StackMap stack:
            new java.security.InvalidKeyException
            dup
            ldc "key type unknown"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.security.Key key
        end local 0 // org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bouncycastle/jce/provider/asymmetric/ec/KeyFactory;
            0    5     1   key  Ljava/security/Key;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      key   

  protected java.security.spec.KeySpec engineGetKeySpec(java.security.Key, java.lang.Class);
    descriptor: (Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory this
        start local 1 // java.security.Key key
        start local 2 // java.lang.Class spec
         0: .line 54
            aload 2 /* spec */
            ldc Ljava/security/spec/PKCS8EncodedKeySpec;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 2
            aload 1 /* key */
            invokeinterface java.security.Key.getFormat:()Ljava/lang/String;
            ldc "PKCS#8"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 56
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 1 /* key */
            invokeinterface java.security.Key.getEncoded:()[B
            invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
            areturn
         2: .line 58
      StackMap locals:
      StackMap stack:
            aload 2 /* spec */
            ldc Ljava/security/spec/X509EncodedKeySpec;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 4
            aload 1 /* key */
            invokeinterface java.security.Key.getFormat:()Ljava/lang/String;
            ldc "X.509"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 60
            new java.security.spec.X509EncodedKeySpec
            dup
            aload 1 /* key */
            invokeinterface java.security.Key.getEncoded:()[B
            invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
            areturn
         4: .line 62
      StackMap locals:
      StackMap stack:
            aload 2 /* spec */
            ldc Ljava/security/spec/ECPublicKeySpec;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 10
            aload 1 /* key */
            instanceof java.security.interfaces.ECPublicKey
            ifeq 10
         5: .line 64
            aload 1 /* key */
            checkcast java.security.interfaces.ECPublicKey
            astore 3 /* k */
        start local 3 // java.security.interfaces.ECPublicKey k
         6: .line 65
            aload 3 /* k */
            invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
            ifnull 8
         7: .line 67
            new java.security.spec.ECPublicKeySpec
            dup
            aload 3 /* k */
            invokeinterface java.security.interfaces.ECPublicKey.getW:()Ljava/security/spec/ECPoint;
            aload 3 /* k */
            invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
            invokespecial java.security.spec.ECPublicKeySpec.<init>:(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V
            areturn
         8: .line 71
      StackMap locals: java.security.interfaces.ECPublicKey
      StackMap stack:
            invokestatic org.bouncycastle.jce.provider.ProviderUtil.getEcImplicitlyCa:()Lorg/bouncycastle/jce/spec/ECParameterSpec;
            astore 4 /* implicitSpec */
        start local 4 // org.bouncycastle.jce.spec.ECParameterSpec implicitSpec
         9: .line 73
            new java.security.spec.ECPublicKeySpec
            dup
            aload 3 /* k */
            invokeinterface java.security.interfaces.ECPublicKey.getW:()Ljava/security/spec/ECPoint;
            aload 4 /* implicitSpec */
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            aload 4 /* implicitSpec */
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getSeed:()[B
            invokestatic org.bouncycastle.jce.provider.asymmetric.ec.EC5Util.convertCurve:(Lorg/bouncycastle/math/ec/ECCurve;[B)Ljava/security/spec/EllipticCurve;
            aload 4 /* implicitSpec */
            invokestatic org.bouncycastle.jce.provider.asymmetric.ec.EC5Util.convertSpec:(Ljava/security/spec/EllipticCurve;Lorg/bouncycastle/jce/spec/ECParameterSpec;)Ljava/security/spec/ECParameterSpec;
            invokespecial java.security.spec.ECPublicKeySpec.<init>:(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V
            areturn
        end local 4 // org.bouncycastle.jce.spec.ECParameterSpec implicitSpec
        end local 3 // java.security.interfaces.ECPublicKey k
        10: .line 76
      StackMap locals:
      StackMap stack:
            aload 2 /* spec */
            ldc Ljava/security/spec/ECPrivateKeySpec;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 16
            aload 1 /* key */
            instanceof java.security.interfaces.ECPrivateKey
            ifeq 16
        11: .line 78
            aload 1 /* key */
            checkcast java.security.interfaces.ECPrivateKey
            astore 3 /* k */
        start local 3 // java.security.interfaces.ECPrivateKey k
        12: .line 80
            aload 3 /* k */
            invokeinterface java.security.interfaces.ECPrivateKey.getParams:()Ljava/security/spec/ECParameterSpec;
            ifnull 14
        13: .line 82
            new java.security.spec.ECPrivateKeySpec
            dup
            aload 3 /* k */
            invokeinterface java.security.interfaces.ECPrivateKey.getS:()Ljava/math/BigInteger;
            aload 3 /* k */
            invokeinterface java.security.interfaces.ECPrivateKey.getParams:()Ljava/security/spec/ECParameterSpec;
            invokespecial java.security.spec.ECPrivateKeySpec.<init>:(Ljava/math/BigInteger;Ljava/security/spec/ECParameterSpec;)V
            areturn
        14: .line 86
      StackMap locals: java.security.interfaces.ECPrivateKey
      StackMap stack:
            invokestatic org.bouncycastle.jce.provider.ProviderUtil.getEcImplicitlyCa:()Lorg/bouncycastle/jce/spec/ECParameterSpec;
            astore 4 /* implicitSpec */
        start local 4 // org.bouncycastle.jce.spec.ECParameterSpec implicitSpec
        15: .line 88
            new java.security.spec.ECPrivateKeySpec
            dup
            aload 3 /* k */
            invokeinterface java.security.interfaces.ECPrivateKey.getS:()Ljava/math/BigInteger;
            aload 4 /* implicitSpec */
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            aload 4 /* implicitSpec */
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getSeed:()[B
            invokestatic org.bouncycastle.jce.provider.asymmetric.ec.EC5Util.convertCurve:(Lorg/bouncycastle/math/ec/ECCurve;[B)Ljava/security/spec/EllipticCurve;
            aload 4 /* implicitSpec */
            invokestatic org.bouncycastle.jce.provider.asymmetric.ec.EC5Util.convertSpec:(Ljava/security/spec/EllipticCurve;Lorg/bouncycastle/jce/spec/ECParameterSpec;)Ljava/security/spec/ECParameterSpec;
            invokespecial java.security.spec.ECPrivateKeySpec.<init>:(Ljava/math/BigInteger;Ljava/security/spec/ECParameterSpec;)V
            areturn
        end local 4 // org.bouncycastle.jce.spec.ECParameterSpec implicitSpec
        end local 3 // java.security.interfaces.ECPrivateKey k
        16: .line 92
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "not implemented yet "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* spec */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Class spec
        end local 1 // java.security.Key key
        end local 0 // org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0          this  Lorg/bouncycastle/jce/provider/asymmetric/ec/KeyFactory;
            0   17     1           key  Ljava/security/Key;
            0   17     2          spec  Ljava/lang/Class;
            6   10     3             k  Ljava/security/interfaces/ECPublicKey;
            9   10     4  implicitSpec  Lorg/bouncycastle/jce/spec/ECParameterSpec;
           12   16     3             k  Ljava/security/interfaces/ECPrivateKey;
           15   16     4  implicitSpec  Lorg/bouncycastle/jce/spec/ECParameterSpec;
    Exceptions:
      throws java.security.spec.InvalidKeySpecException
    MethodParameters:
      Name  Flags
      key   
      spec  

  protected java.security.PrivateKey engineGeneratePrivate(java.security.spec.KeySpec);
    descriptor: (Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory this
        start local 1 // java.security.spec.KeySpec keySpec
         0: .line 99
            aload 1 /* keySpec */
            instanceof java.security.spec.PKCS8EncodedKeySpec
            ifeq 7
         1: .line 104
            aload 1 /* keySpec */
            checkcast java.security.spec.PKCS8EncodedKeySpec
            invokevirtual java.security.spec.PKCS8EncodedKeySpec.getEncoded:()[B
         2: .line 103
            invokestatic org.bouncycastle.jce.provider.JDKKeyFactory.createPrivateKeyFromDERStream:([B)Ljava/security/PrivateKey;
            checkcast org.bouncycastle.jce.provider.JCEECPrivateKey
            astore 2 /* key */
        start local 2 // org.bouncycastle.jce.provider.JCEECPrivateKey key
         3: .line 106
            new org.bouncycastle.jce.provider.JCEECPrivateKey
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
            aload 2 /* key */
            invokespecial org.bouncycastle.jce.provider.JCEECPrivateKey.<init>:(Ljava/lang/String;Lorg/bouncycastle/jce/provider/JCEECPrivateKey;)V
         4: areturn
        end local 2 // org.bouncycastle.jce.provider.JCEECPrivateKey key
         5: .line 108
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         6: .line 110
            new java.security.spec.InvalidKeySpecException
            dup
            aload 2 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Exception e
         7: .line 113
      StackMap locals:
      StackMap stack:
            aload 1 /* keySpec */
            instanceof org.bouncycastle.jce.spec.ECPrivateKeySpec
            ifeq 9
         8: .line 115
            new org.bouncycastle.jce.provider.JCEECPrivateKey
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
            aload 1 /* keySpec */
            checkcast org.bouncycastle.jce.spec.ECPrivateKeySpec
            invokespecial org.bouncycastle.jce.provider.JCEECPrivateKey.<init>:(Ljava/lang/String;Lorg/bouncycastle/jce/spec/ECPrivateKeySpec;)V
            areturn
         9: .line 117
      StackMap locals:
      StackMap stack:
            aload 1 /* keySpec */
            instanceof java.security.spec.ECPrivateKeySpec
            ifeq 11
        10: .line 119
            new org.bouncycastle.jce.provider.JCEECPrivateKey
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
            aload 1 /* keySpec */
            checkcast java.security.spec.ECPrivateKeySpec
            invokespecial org.bouncycastle.jce.provider.JCEECPrivateKey.<init>:(Ljava/lang/String;Ljava/security/spec/ECPrivateKeySpec;)V
            areturn
        11: .line 122
      StackMap locals:
      StackMap stack:
            new java.security.spec.InvalidKeySpecException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown KeySpec type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* keySpec */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.security.spec.KeySpec keySpec
        end local 0 // org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/bouncycastle/jce/provider/asymmetric/ec/KeyFactory;
            0   12     1  keySpec  Ljava/security/spec/KeySpec;
            3    5     2      key  Lorg/bouncycastle/jce/provider/JCEECPrivateKey;
            6    7     2        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.Exception
    Exceptions:
      throws java.security.spec.InvalidKeySpecException
    MethodParameters:
         Name  Flags
      keySpec  

  protected java.security.PublicKey engineGeneratePublic(java.security.spec.KeySpec);
    descriptor: (Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory this
        start local 1 // java.security.spec.KeySpec keySpec
         0: .line 129
            aload 1 /* keySpec */
            instanceof java.security.spec.X509EncodedKeySpec
            ifeq 7
         1: .line 134
            aload 1 /* keySpec */
            checkcast java.security.spec.X509EncodedKeySpec
            invokevirtual java.security.spec.X509EncodedKeySpec.getEncoded:()[B
         2: .line 133
            invokestatic org.bouncycastle.jce.provider.JDKKeyFactory.createPublicKeyFromDERStream:([B)Ljava/security/PublicKey;
            checkcast org.bouncycastle.jce.provider.JCEECPublicKey
            astore 2 /* key */
        start local 2 // org.bouncycastle.jce.provider.JCEECPublicKey key
         3: .line 136
            new org.bouncycastle.jce.provider.JCEECPublicKey
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
            aload 2 /* key */
            invokespecial org.bouncycastle.jce.provider.JCEECPublicKey.<init>:(Ljava/lang/String;Lorg/bouncycastle/jce/provider/JCEECPublicKey;)V
         4: areturn
        end local 2 // org.bouncycastle.jce.provider.JCEECPublicKey key
         5: .line 138
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         6: .line 140
            new java.security.spec.InvalidKeySpecException
            dup
            aload 2 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Exception e
         7: .line 143
      StackMap locals:
      StackMap stack:
            aload 1 /* keySpec */
            instanceof org.bouncycastle.jce.spec.ECPublicKeySpec
            ifeq 9
         8: .line 145
            new org.bouncycastle.jce.provider.JCEECPublicKey
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
            aload 1 /* keySpec */
            checkcast org.bouncycastle.jce.spec.ECPublicKeySpec
            invokespecial org.bouncycastle.jce.provider.JCEECPublicKey.<init>:(Ljava/lang/String;Lorg/bouncycastle/jce/spec/ECPublicKeySpec;)V
            areturn
         9: .line 147
      StackMap locals:
      StackMap stack:
            aload 1 /* keySpec */
            instanceof java.security.spec.ECPublicKeySpec
            ifeq 11
        10: .line 149
            new org.bouncycastle.jce.provider.JCEECPublicKey
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
            aload 1 /* keySpec */
            checkcast java.security.spec.ECPublicKeySpec
            invokespecial org.bouncycastle.jce.provider.JCEECPublicKey.<init>:(Ljava/lang/String;Ljava/security/spec/ECPublicKeySpec;)V
            areturn
        11: .line 152
      StackMap locals:
      StackMap stack:
            new java.security.spec.InvalidKeySpecException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown KeySpec type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* keySpec */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.security.spec.KeySpec keySpec
        end local 0 // org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/bouncycastle/jce/provider/asymmetric/ec/KeyFactory;
            0   12     1  keySpec  Ljava/security/spec/KeySpec;
            3    5     2      key  Lorg/bouncycastle/jce/provider/JCEECPublicKey;
            6    7     2        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.Exception
    Exceptions:
      throws java.security.spec.InvalidKeySpecException
    MethodParameters:
         Name  Flags
      keySpec  
}
SourceFile: "KeyFactory.java"
NestMembers:
  org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$EC  org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECDH  org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECDHC  org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECDSA  org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECGOST3410  org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECMQV
InnerClasses:
  public EC = org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$EC of org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory
  public ECDH = org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECDH of org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory
  public ECDHC = org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECDHC of org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory
  public ECDSA = org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECDSA of org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory
  public ECGOST3410 = org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECGOST3410 of org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory
  public ECMQV = org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory$ECMQV of org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory