public class org.bouncycastle.eac.jcajce.JcaPublicKeyConverter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.eac.jcajce.JcaPublicKeyConverter
super_class: java.lang.Object
{
private org.bouncycastle.eac.jcajce.EACHelper helper;
descriptor: Lorg/bouncycastle/eac/jcajce/EACHelper;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.bouncycastle.eac.jcajce.DefaultEACHelper
dup
invokespecial org.bouncycastle.eac.jcajce.DefaultEACHelper.<init>:()V
putfield org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.helper:Lorg/bouncycastle/eac/jcajce/EACHelper;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/eac/jcajce/JcaPublicKeyConverter;
public org.bouncycastle.eac.jcajce.JcaPublicKeyConverter setProvider(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/bouncycastle/eac/jcajce/JcaPublicKeyConverter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new org.bouncycastle.eac.jcajce.NamedEACHelper
dup
aload 1
invokespecial org.bouncycastle.eac.jcajce.NamedEACHelper.<init>:(Ljava/lang/String;)V
putfield org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.helper:Lorg/bouncycastle/eac/jcajce/EACHelper;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/eac/jcajce/JcaPublicKeyConverter;
0 2 1 providerName Ljava/lang/String;
MethodParameters:
Name Flags
providerName
public org.bouncycastle.eac.jcajce.JcaPublicKeyConverter setProvider(java.security.Provider);
descriptor: (Ljava/security/Provider;)Lorg/bouncycastle/eac/jcajce/JcaPublicKeyConverter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new org.bouncycastle.eac.jcajce.ProviderEACHelper
dup
aload 1
invokespecial org.bouncycastle.eac.jcajce.ProviderEACHelper.<init>:(Ljava/security/Provider;)V
putfield org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.helper:Lorg/bouncycastle/eac/jcajce/EACHelper;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/eac/jcajce/JcaPublicKeyConverter;
0 2 1 provider Ljava/security/Provider;
MethodParameters:
Name Flags
provider
public java.security.PublicKey getKey(org.bouncycastle.asn1.eac.PublicKeyDataObject);
descriptor: (Lorg/bouncycastle/asn1/eac/PublicKeyDataObject;)Ljava/security/PublicKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.bouncycastle.asn1.eac.PublicKeyDataObject.getUsage:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
getstatic org.bouncycastle.asn1.eac.EACObjectIdentifiers.id_TA_ECDSA:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.on:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
ifeq 2
1: aload 0
aload 1
checkcast org.bouncycastle.asn1.eac.ECDSAPublicKey
invokevirtual org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.getECPublicKeyPublicKey:(Lorg/bouncycastle/asn1/eac/ECDSAPublicKey;)Ljava/security/PublicKey;
areturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast org.bouncycastle.asn1.eac.RSAPublicKey
astore 2
start local 2 3: new java.security.spec.RSAPublicKeySpec
dup
aload 2
invokevirtual org.bouncycastle.asn1.eac.RSAPublicKey.getModulus:()Ljava/math/BigInteger;
aload 2
invokevirtual org.bouncycastle.asn1.eac.RSAPublicKey.getPublicExponent:()Ljava/math/BigInteger;
invokespecial java.security.spec.RSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 3
start local 3 4: aload 0
getfield org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.helper:Lorg/bouncycastle/eac/jcajce/EACHelper;
ldc "RSA"
invokeinterface org.bouncycastle.eac.jcajce.EACHelper.createKeyFactory:(Ljava/lang/String;)Ljava/security/KeyFactory;
astore 4
start local 4 5: aload 4
aload 3
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
6: areturn
end local 4 7: StackMap locals: org.bouncycastle.eac.jcajce.JcaPublicKeyConverter org.bouncycastle.asn1.eac.PublicKeyDataObject org.bouncycastle.asn1.eac.RSAPublicKey java.security.spec.RSAPublicKeySpec
StackMap stack: java.security.NoSuchProviderException
astore 4
start local 4 8: new org.bouncycastle.eac.EACException
dup
new java.lang.StringBuilder
dup
ldc "cannot find provider: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.security.NoSuchProviderException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokespecial org.bouncycastle.eac.EACException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 9: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
astore 4
start local 4 10: new org.bouncycastle.eac.EACException
dup
new java.lang.StringBuilder
dup
ldc "cannot find algorithm ECDSA: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.security.NoSuchAlgorithmException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokespecial org.bouncycastle.eac.EACException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/bouncycastle/eac/jcajce/JcaPublicKeyConverter;
0 11 1 publicKeyDataObject Lorg/bouncycastle/asn1/eac/PublicKeyDataObject;
3 11 2 pubKey Lorg/bouncycastle/asn1/eac/RSAPublicKey;
4 11 3 pubKeySpec Ljava/security/spec/RSAPublicKeySpec;
5 7 4 factk Ljava/security/KeyFactory;
8 9 4 e Ljava/security/NoSuchProviderException;
10 11 4 e Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
4 6 7 Class java.security.NoSuchProviderException
4 6 9 Class java.security.NoSuchAlgorithmException
Exceptions:
throws org.bouncycastle.eac.EACException, java.security.spec.InvalidKeySpecException
MethodParameters:
Name Flags
publicKeyDataObject
private java.security.PublicKey getECPublicKeyPublicKey(org.bouncycastle.asn1.eac.ECDSAPublicKey);
descriptor: (Lorg/bouncycastle/asn1/eac/ECDSAPublicKey;)Ljava/security/PublicKey;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.getParams:(Lorg/bouncycastle/asn1/eac/ECDSAPublicKey;)Ljava/security/spec/ECParameterSpec;
astore 2
start local 2 1: aload 0
aload 1
invokevirtual org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.getPublicPoint:(Lorg/bouncycastle/asn1/eac/ECDSAPublicKey;)Ljava/security/spec/ECPoint;
astore 3
start local 3 2: new java.security.spec.ECPublicKeySpec
dup
aload 3
aload 2
invokespecial java.security.spec.ECPublicKeySpec.<init>:(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V
astore 4
start local 4 3: aload 0
getfield org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.helper:Lorg/bouncycastle/eac/jcajce/EACHelper;
ldc "ECDSA"
invokeinterface org.bouncycastle.eac.jcajce.EACHelper.createKeyFactory:(Ljava/lang/String;)Ljava/security/KeyFactory;
astore 5
start local 5 4: goto 9
end local 5 5: StackMap locals: org.bouncycastle.eac.jcajce.JcaPublicKeyConverter org.bouncycastle.asn1.eac.ECDSAPublicKey java.security.spec.ECParameterSpec java.security.spec.ECPoint java.security.spec.ECPublicKeySpec
StackMap stack: java.security.NoSuchProviderException
astore 6
start local 6 6: new org.bouncycastle.eac.EACException
dup
new java.lang.StringBuilder
dup
ldc "cannot find provider: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.security.NoSuchProviderException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 6
invokespecial org.bouncycastle.eac.EACException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 7: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
astore 6
start local 6 8: new org.bouncycastle.eac.EACException
dup
new java.lang.StringBuilder
dup
ldc "cannot find algorithm ECDSA: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.security.NoSuchAlgorithmException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 6
invokespecial org.bouncycastle.eac.EACException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 start local 5 9: StackMap locals: java.security.KeyFactory
StackMap stack:
aload 5
aload 4
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/eac/jcajce/JcaPublicKeyConverter;
0 10 1 key Lorg/bouncycastle/asn1/eac/ECDSAPublicKey;
1 10 2 spec Ljava/security/spec/ECParameterSpec;
2 10 3 publicPoint Ljava/security/spec/ECPoint;
3 10 4 pubKeySpec Ljava/security/spec/ECPublicKeySpec;
4 5 5 factk Ljava/security/KeyFactory;
9 10 5 factk Ljava/security/KeyFactory;
6 7 6 e Ljava/security/NoSuchProviderException;
8 9 6 e Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
3 4 5 Class java.security.NoSuchProviderException
3 4 7 Class java.security.NoSuchAlgorithmException
Exceptions:
throws org.bouncycastle.eac.EACException, java.security.spec.InvalidKeySpecException
MethodParameters:
Name Flags
key
private java.security.spec.ECPoint getPublicPoint(org.bouncycastle.asn1.eac.ECDSAPublicKey);
descriptor: (Lorg/bouncycastle/asn1/eac/ECDSAPublicKey;)Ljava/security/spec/ECPoint;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.hasParameters:()Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "Public key does not contains EC Params"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getPrimeModulusP:()Ljava/math/BigInteger;
astore 2
start local 2 3: new org.bouncycastle.math.ec.ECCurve$Fp
dup
aload 2
aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getFirstCoefA:()Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getSecondCoefB:()Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getOrderOfBasePointR:()Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getCofactorF:()Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECCurve$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 3
start local 3 4: aload 3
aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getPublicPointY:()[B
invokevirtual org.bouncycastle.math.ec.ECCurve$Fp.decodePoint:([B)Lorg/bouncycastle/math/ec/ECPoint;
checkcast org.bouncycastle.math.ec.ECPoint$Fp
astore 4
start local 4 5: new java.security.spec.ECPoint
dup
aload 4
invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getAffineXCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
aload 4
invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getAffineYCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
invokespecial java.security.spec.ECPoint.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bouncycastle/eac/jcajce/JcaPublicKeyConverter;
0 6 1 key Lorg/bouncycastle/asn1/eac/ECDSAPublicKey;
3 6 2 p Ljava/math/BigInteger;
4 6 3 curve Lorg/bouncycastle/math/ec/ECCurve$Fp;
5 6 4 pubY Lorg/bouncycastle/math/ec/ECPoint$Fp;
MethodParameters:
Name Flags
key
private java.security.spec.ECParameterSpec getParams(org.bouncycastle.asn1.eac.ECDSAPublicKey);
descriptor: (Lorg/bouncycastle/asn1/eac/ECDSAPublicKey;)Ljava/security/spec/ECParameterSpec;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.hasParameters:()Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "Public key does not contains EC Params"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getPrimeModulusP:()Ljava/math/BigInteger;
astore 2
start local 2 3: new org.bouncycastle.math.ec.ECCurve$Fp
dup
aload 2
aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getFirstCoefA:()Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getSecondCoefB:()Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getOrderOfBasePointR:()Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getCofactorF:()Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECCurve$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 3
start local 3 4: aload 3
aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getBasePointG:()[B
invokevirtual org.bouncycastle.math.ec.ECCurve$Fp.decodePoint:([B)Lorg/bouncycastle/math/ec/ECPoint;
astore 4
start local 4 5: aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getOrderOfBasePointR:()Ljava/math/BigInteger;
astore 5
start local 5 6: aload 1
invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getCofactorF:()Ljava/math/BigInteger;
astore 6
start local 6 7: aload 3
invokestatic org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.convertCurve:(Lorg/bouncycastle/math/ec/ECCurve;)Ljava/security/spec/EllipticCurve;
astore 7
start local 7 8: new java.security.spec.ECParameterSpec
dup
aload 7
new java.security.spec.ECPoint
dup
aload 4
invokevirtual org.bouncycastle.math.ec.ECPoint.getAffineXCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
aload 4
invokevirtual org.bouncycastle.math.ec.ECPoint.getAffineYCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
invokespecial java.security.spec.ECPoint.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
aload 5
aload 6
invokevirtual java.math.BigInteger.intValue:()I
invokespecial java.security.spec.ECParameterSpec.<init>:(Ljava/security/spec/EllipticCurve;Ljava/security/spec/ECPoint;Ljava/math/BigInteger;I)V
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/bouncycastle/eac/jcajce/JcaPublicKeyConverter;
0 9 1 key Lorg/bouncycastle/asn1/eac/ECDSAPublicKey;
3 9 2 p Ljava/math/BigInteger;
4 9 3 curve Lorg/bouncycastle/math/ec/ECCurve$Fp;
5 9 4 G Lorg/bouncycastle/math/ec/ECPoint;
6 9 5 order Ljava/math/BigInteger;
7 9 6 coFactor Ljava/math/BigInteger;
8 9 7 jcaCurve Ljava/security/spec/EllipticCurve;
MethodParameters:
Name Flags
key
public org.bouncycastle.asn1.eac.PublicKeyDataObject getPublicKeyDataObject(org.bouncycastle.asn1.ASN1ObjectIdentifier, java.security.PublicKey);
descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/security/PublicKey;)Lorg/bouncycastle/asn1/eac/PublicKeyDataObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof java.security.interfaces.RSAPublicKey
ifeq 3
1: aload 2
checkcast java.security.interfaces.RSAPublicKey
astore 3
start local 3 2: new org.bouncycastle.asn1.eac.RSAPublicKey
dup
aload 1
aload 3
invokeinterface java.security.interfaces.RSAPublicKey.getModulus:()Ljava/math/BigInteger;
aload 3
invokeinterface java.security.interfaces.RSAPublicKey.getPublicExponent:()Ljava/math/BigInteger;
invokespecial org.bouncycastle.asn1.eac.RSAPublicKey.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 3 3: StackMap locals:
StackMap stack:
aload 2
checkcast java.security.interfaces.ECPublicKey
astore 3
start local 3 4: aload 3
invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
astore 4
start local 4 5: new org.bouncycastle.asn1.eac.ECDSAPublicKey
dup
6: aload 1
7: aload 4
invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
invokevirtual java.security.spec.EllipticCurve.getField:()Ljava/security/spec/ECField;
checkcast java.security.spec.ECFieldFp
invokevirtual java.security.spec.ECFieldFp.getP:()Ljava/math/BigInteger;
8: aload 4
invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
invokevirtual java.security.spec.EllipticCurve.getA:()Ljava/math/BigInteger;
aload 4
invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
invokevirtual java.security.spec.EllipticCurve.getB:()Ljava/math/BigInteger;
9: aload 4
invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
aload 4
invokevirtual java.security.spec.ECParameterSpec.getOrder:()Ljava/math/BigInteger;
aload 4
invokevirtual java.security.spec.ECParameterSpec.getCofactor:()I
invokestatic org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.convertCurve:(Ljava/security/spec/EllipticCurve;Ljava/math/BigInteger;I)Lorg/bouncycastle/math/ec/ECCurve;
aload 4
invokevirtual java.security.spec.ECParameterSpec.getGenerator:()Ljava/security/spec/ECPoint;
invokestatic org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.convertPoint:(Lorg/bouncycastle/math/ec/ECCurve;Ljava/security/spec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
invokevirtual org.bouncycastle.math.ec.ECPoint.getEncoded:()[B
10: aload 4
invokevirtual java.security.spec.ECParameterSpec.getOrder:()Ljava/math/BigInteger;
11: aload 4
invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
aload 4
invokevirtual java.security.spec.ECParameterSpec.getOrder:()Ljava/math/BigInteger;
aload 4
invokevirtual java.security.spec.ECParameterSpec.getCofactor:()I
invokestatic org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.convertCurve:(Ljava/security/spec/EllipticCurve;Ljava/math/BigInteger;I)Lorg/bouncycastle/math/ec/ECCurve;
aload 3
invokeinterface java.security.interfaces.ECPublicKey.getW:()Ljava/security/spec/ECPoint;
invokestatic org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.convertPoint:(Lorg/bouncycastle/math/ec/ECCurve;Ljava/security/spec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
invokevirtual org.bouncycastle.math.ec.ECPoint.getEncoded:()[B
12: aload 4
invokevirtual java.security.spec.ECParameterSpec.getCofactor:()I
13: invokespecial org.bouncycastle.asn1.eac.ECDSAPublicKey.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;[BLjava/math/BigInteger;[BI)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/bouncycastle/eac/jcajce/JcaPublicKeyConverter;
0 14 1 usage Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
0 14 2 publicKey Ljava/security/PublicKey;
2 3 3 pubKey Ljava/security/interfaces/RSAPublicKey;
4 14 3 pubKey Ljava/security/interfaces/ECPublicKey;
5 14 4 params Ljava/security/spec/ECParameterSpec;
MethodParameters:
Name Flags
usage
publicKey
private static org.bouncycastle.math.ec.ECPoint convertPoint(org.bouncycastle.math.ec.ECCurve, java.security.spec.ECPoint);
descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Ljava/security/spec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.security.spec.ECPoint.getAffineX:()Ljava/math/BigInteger;
aload 1
invokevirtual java.security.spec.ECPoint.getAffineY:()Ljava/math/BigInteger;
invokevirtual org.bouncycastle.math.ec.ECCurve.createPoint:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 curve Lorg/bouncycastle/math/ec/ECCurve;
0 1 1 point Ljava/security/spec/ECPoint;
MethodParameters:
Name Flags
curve
point
private static org.bouncycastle.math.ec.ECCurve convertCurve(java.security.spec.EllipticCurve, java.math.BigInteger, int);
descriptor: (Ljava/security/spec/EllipticCurve;Ljava/math/BigInteger;I)Lorg/bouncycastle/math/ec/ECCurve;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.security.spec.EllipticCurve.getField:()Ljava/security/spec/ECField;
astore 3
start local 3 1: aload 0
invokevirtual java.security.spec.EllipticCurve.getA:()Ljava/math/BigInteger;
astore 4
start local 4 2: aload 0
invokevirtual java.security.spec.EllipticCurve.getB:()Ljava/math/BigInteger;
astore 5
start local 5 3: aload 3
instanceof java.security.spec.ECFieldFp
ifeq 5
4: new org.bouncycastle.math.ec.ECCurve$Fp
dup
aload 3
checkcast java.security.spec.ECFieldFp
invokevirtual java.security.spec.ECFieldFp.getP:()Ljava/math/BigInteger;
aload 4
aload 5
aload 1
iload 2
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokespecial org.bouncycastle.math.ec.ECCurve$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
5: StackMap locals: java.security.spec.ECField java.math.BigInteger java.math.BigInteger
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "not implemented yet!!!"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 ec Ljava/security/spec/EllipticCurve;
0 6 1 order Ljava/math/BigInteger;
0 6 2 coFactor I
1 6 3 field Ljava/security/spec/ECField;
2 6 4 a Ljava/math/BigInteger;
3 6 5 b Ljava/math/BigInteger;
MethodParameters:
Name Flags
ec
order
coFactor
private static java.security.spec.EllipticCurve convertCurve(org.bouncycastle.math.ec.ECCurve);
descriptor: (Lorg/bouncycastle/math/ec/ECCurve;)Ljava/security/spec/EllipticCurve;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual org.bouncycastle.math.ec.ECCurve.getField:()Lorg/bouncycastle/math/field/FiniteField;
invokestatic org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.convertField:(Lorg/bouncycastle/math/field/FiniteField;)Ljava/security/spec/ECField;
astore 1
start local 1 1: aload 0
invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
astore 2
start local 2 2: aload 0
invokevirtual org.bouncycastle.math.ec.ECCurve.getB:()Lorg/bouncycastle/math/ec/ECFieldElement;
invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
astore 3
start local 3 3: new java.security.spec.EllipticCurve
dup
aload 1
aload 2
aload 3
aconst_null
invokespecial java.security.spec.EllipticCurve.<init>:(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;[B)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 curve Lorg/bouncycastle/math/ec/ECCurve;
1 4 1 field Ljava/security/spec/ECField;
2 4 2 a Ljava/math/BigInteger;
3 4 3 b Ljava/math/BigInteger;
MethodParameters:
Name Flags
curve
private static java.security.spec.ECField convertField(org.bouncycastle.math.field.FiniteField);
descriptor: (Lorg/bouncycastle/math/field/FiniteField;)Ljava/security/spec/ECField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
invokestatic org.bouncycastle.math.ec.ECAlgorithms.isFpField:(Lorg/bouncycastle/math/field/FiniteField;)Z
ifeq 2
1: new java.security.spec.ECFieldFp
dup
aload 0
invokeinterface org.bouncycastle.math.field.FiniteField.getCharacteristic:()Ljava/math/BigInteger;
invokespecial java.security.spec.ECFieldFp.<init>:(Ljava/math/BigInteger;)V
areturn
2: StackMap locals:
StackMap stack:
aload 0
checkcast org.bouncycastle.math.field.PolynomialExtensionField
invokeinterface org.bouncycastle.math.field.PolynomialExtensionField.getMinimalPolynomial:()Lorg/bouncycastle/math/field/Polynomial;
astore 1
start local 1 3: aload 1
invokeinterface org.bouncycastle.math.field.Polynomial.getExponentsPresent:()[I
astore 2
start local 2 4: aload 2
iconst_1
aload 2
arraylength
iconst_1
isub
invokestatic org.bouncycastle.util.Arrays.copyOfRange:([III)[I
invokestatic org.bouncycastle.util.Arrays.reverse:([I)[I
astore 3
start local 3 5: new java.security.spec.ECFieldF2m
dup
aload 1
invokeinterface org.bouncycastle.math.field.Polynomial.getDegree:()I
aload 3
invokespecial java.security.spec.ECFieldF2m.<init>:(I[I)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 field Lorg/bouncycastle/math/field/FiniteField;
3 6 1 poly Lorg/bouncycastle/math/field/Polynomial;
4 6 2 exponents [I
5 6 3 ks [I
MethodParameters:
Name Flags
field
}
SourceFile: "JcaPublicKeyConverter.java"
InnerClasses:
public Fp = org.bouncycastle.math.ec.ECCurve$Fp of org.bouncycastle.math.ec.ECCurve
public Fp = org.bouncycastle.math.ec.ECPoint$Fp of org.bouncycastle.math.ec.ECPoint