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 start local 1 0: aload 0
invokespecial org.bouncycastle.jce.provider.JDKKeyFactory.<init>:()V
1: aload 0
aload 1
putfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
2: return
end local 1 end local 0 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 start local 1 0: aload 1
instanceof java.security.interfaces.ECPublicKey
ifeq 2
1: new org.bouncycastle.jce.provider.JCEECPublicKey
dup
aload 1
checkcast java.security.interfaces.ECPublicKey
invokespecial org.bouncycastle.jce.provider.JCEECPublicKey.<init>:(Ljava/security/interfaces/ECPublicKey;)V
areturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.security.interfaces.ECPrivateKey
ifeq 4
3: new org.bouncycastle.jce.provider.JCEECPrivateKey
dup
aload 1
checkcast java.security.interfaces.ECPrivateKey
invokespecial org.bouncycastle.jce.provider.JCEECPrivateKey.<init>:(Ljava/security/interfaces/ECPrivateKey;)V
areturn
4: 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 end local 0 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 start local 1 start local 2 0: aload 2
ldc Ljava/security/spec/PKCS8EncodedKeySpec;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 2
aload 1
invokeinterface java.security.Key.getFormat:()Ljava/lang/String;
ldc "PKCS#8"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: new java.security.spec.PKCS8EncodedKeySpec
dup
aload 1
invokeinterface java.security.Key.getEncoded:()[B
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
areturn
2: StackMap locals:
StackMap stack:
aload 2
ldc Ljava/security/spec/X509EncodedKeySpec;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 4
aload 1
invokeinterface java.security.Key.getFormat:()Ljava/lang/String;
ldc "X.509"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: new java.security.spec.X509EncodedKeySpec
dup
aload 1
invokeinterface java.security.Key.getEncoded:()[B
invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
areturn
4: StackMap locals:
StackMap stack:
aload 2
ldc Ljava/security/spec/ECPublicKeySpec;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 10
aload 1
instanceof java.security.interfaces.ECPublicKey
ifeq 10
5: aload 1
checkcast java.security.interfaces.ECPublicKey
astore 3
start local 3 6: aload 3
invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
ifnull 8
7: new java.security.spec.ECPublicKeySpec
dup
aload 3
invokeinterface java.security.interfaces.ECPublicKey.getW:()Ljava/security/spec/ECPoint;
aload 3
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: StackMap locals: java.security.interfaces.ECPublicKey
StackMap stack:
invokestatic org.bouncycastle.jce.provider.ProviderUtil.getEcImplicitlyCa:()Lorg/bouncycastle/jce/spec/ECParameterSpec;
astore 4
start local 4 9: new java.security.spec.ECPublicKeySpec
dup
aload 3
invokeinterface java.security.interfaces.ECPublicKey.getW:()Ljava/security/spec/ECPoint;
aload 4
invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
aload 4
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
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 end local 3 10: StackMap locals:
StackMap stack:
aload 2
ldc Ljava/security/spec/ECPrivateKeySpec;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 16
aload 1
instanceof java.security.interfaces.ECPrivateKey
ifeq 16
11: aload 1
checkcast java.security.interfaces.ECPrivateKey
astore 3
start local 3 12: aload 3
invokeinterface java.security.interfaces.ECPrivateKey.getParams:()Ljava/security/spec/ECParameterSpec;
ifnull 14
13: new java.security.spec.ECPrivateKeySpec
dup
aload 3
invokeinterface java.security.interfaces.ECPrivateKey.getS:()Ljava/math/BigInteger;
aload 3
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: StackMap locals: java.security.interfaces.ECPrivateKey
StackMap stack:
invokestatic org.bouncycastle.jce.provider.ProviderUtil.getEcImplicitlyCa:()Lorg/bouncycastle/jce/spec/ECParameterSpec;
astore 4
start local 4 15: new java.security.spec.ECPrivateKeySpec
dup
aload 3
invokeinterface java.security.interfaces.ECPrivateKey.getS:()Ljava/math/BigInteger;
aload 4
invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
aload 4
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
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 end local 3 16: 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
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
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 end local 1 end local 0 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 start local 1 0: aload 1
instanceof java.security.spec.PKCS8EncodedKeySpec
ifeq 7
1: aload 1
checkcast java.security.spec.PKCS8EncodedKeySpec
invokevirtual java.security.spec.PKCS8EncodedKeySpec.getEncoded:()[B
2: invokestatic org.bouncycastle.jce.provider.JDKKeyFactory.createPrivateKeyFromDERStream:([B)Ljava/security/PrivateKey;
checkcast org.bouncycastle.jce.provider.JCEECPrivateKey
astore 2
start local 2 3: new org.bouncycastle.jce.provider.JCEECPrivateKey
dup
aload 0
getfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
aload 2
invokespecial org.bouncycastle.jce.provider.JCEECPrivateKey.<init>:(Ljava/lang/String;Lorg/bouncycastle/jce/provider/JCEECPrivateKey;)V
4: areturn
end local 2 5: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 6: new java.security.spec.InvalidKeySpecException
dup
aload 2
invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
end local 2 7: StackMap locals:
StackMap stack:
aload 1
instanceof org.bouncycastle.jce.spec.ECPrivateKeySpec
ifeq 9
8: new org.bouncycastle.jce.provider.JCEECPrivateKey
dup
aload 0
getfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
aload 1
checkcast org.bouncycastle.jce.spec.ECPrivateKeySpec
invokespecial org.bouncycastle.jce.provider.JCEECPrivateKey.<init>:(Ljava/lang/String;Lorg/bouncycastle/jce/spec/ECPrivateKeySpec;)V
areturn
9: StackMap locals:
StackMap stack:
aload 1
instanceof java.security.spec.ECPrivateKeySpec
ifeq 11
10: new org.bouncycastle.jce.provider.JCEECPrivateKey
dup
aload 0
getfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
aload 1
checkcast java.security.spec.ECPrivateKeySpec
invokespecial org.bouncycastle.jce.provider.JCEECPrivateKey.<init>:(Ljava/lang/String;Ljava/security/spec/ECPrivateKeySpec;)V
areturn
11: 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
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 end local 0 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 start local 1 0: aload 1
instanceof java.security.spec.X509EncodedKeySpec
ifeq 7
1: aload 1
checkcast java.security.spec.X509EncodedKeySpec
invokevirtual java.security.spec.X509EncodedKeySpec.getEncoded:()[B
2: invokestatic org.bouncycastle.jce.provider.JDKKeyFactory.createPublicKeyFromDERStream:([B)Ljava/security/PublicKey;
checkcast org.bouncycastle.jce.provider.JCEECPublicKey
astore 2
start local 2 3: new org.bouncycastle.jce.provider.JCEECPublicKey
dup
aload 0
getfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
aload 2
invokespecial org.bouncycastle.jce.provider.JCEECPublicKey.<init>:(Ljava/lang/String;Lorg/bouncycastle/jce/provider/JCEECPublicKey;)V
4: areturn
end local 2 5: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 6: new java.security.spec.InvalidKeySpecException
dup
aload 2
invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
end local 2 7: StackMap locals:
StackMap stack:
aload 1
instanceof org.bouncycastle.jce.spec.ECPublicKeySpec
ifeq 9
8: new org.bouncycastle.jce.provider.JCEECPublicKey
dup
aload 0
getfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
aload 1
checkcast org.bouncycastle.jce.spec.ECPublicKeySpec
invokespecial org.bouncycastle.jce.provider.JCEECPublicKey.<init>:(Ljava/lang/String;Lorg/bouncycastle/jce/spec/ECPublicKeySpec;)V
areturn
9: StackMap locals:
StackMap stack:
aload 1
instanceof java.security.spec.ECPublicKeySpec
ifeq 11
10: new org.bouncycastle.jce.provider.JCEECPublicKey
dup
aload 0
getfield org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.algorithm:Ljava/lang/String;
aload 1
checkcast java.security.spec.ECPublicKeySpec
invokespecial org.bouncycastle.jce.provider.JCEECPublicKey.<init>:(Ljava/lang/String;Ljava/security/spec/ECPublicKeySpec;)V
areturn
11: 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
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 end local 0 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