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 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
         0: .line 33
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 35
            aload 0 /* this */
            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: .line 33
            return
        end local 0 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
      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 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
        start local 1 // java.lang.String providerName
         0: .line 39
            aload 0 /* this */
            new org.bouncycastle.eac.jcajce.NamedEACHelper
            dup
            aload 1 /* providerName */
            invokespecial org.bouncycastle.eac.jcajce.NamedEACHelper.<init>:(Ljava/lang/String;)V
            putfield org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.helper:Lorg/bouncycastle/eac/jcajce/EACHelper;
         1: .line 41
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String providerName
        end local 0 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
      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 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
        start local 1 // java.security.Provider provider
         0: .line 46
            aload 0 /* this */
            new org.bouncycastle.eac.jcajce.ProviderEACHelper
            dup
            aload 1 /* provider */
            invokespecial org.bouncycastle.eac.jcajce.ProviderEACHelper.<init>:(Ljava/security/Provider;)V
            putfield org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.helper:Lorg/bouncycastle/eac/jcajce/EACHelper;
         1: .line 48
            aload 0 /* this */
            areturn
        end local 1 // java.security.Provider provider
        end local 0 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
      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 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
        start local 1 // org.bouncycastle.asn1.eac.PublicKeyDataObject publicKeyDataObject
         0: .line 54
            aload 1 /* publicKeyDataObject */
            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: .line 56
            aload 0 /* this */
            aload 1 /* publicKeyDataObject */
            checkcast org.bouncycastle.asn1.eac.ECDSAPublicKey
            invokevirtual org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.getECPublicKeyPublicKey:(Lorg/bouncycastle/asn1/eac/ECDSAPublicKey;)Ljava/security/PublicKey;
            areturn
         2: .line 60
      StackMap locals:
      StackMap stack:
            aload 1 /* publicKeyDataObject */
            checkcast org.bouncycastle.asn1.eac.RSAPublicKey
            astore 2 /* pubKey */
        start local 2 // org.bouncycastle.asn1.eac.RSAPublicKey pubKey
         3: .line 61
            new java.security.spec.RSAPublicKeySpec
            dup
            aload 2 /* pubKey */
            invokevirtual org.bouncycastle.asn1.eac.RSAPublicKey.getModulus:()Ljava/math/BigInteger;
            aload 2 /* pubKey */
            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 /* pubKeySpec */
        start local 3 // java.security.spec.RSAPublicKeySpec pubKeySpec
         4: .line 65
            aload 0 /* this */
            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 /* factk */
        start local 4 // java.security.KeyFactory factk
         5: .line 67
            aload 4 /* factk */
            aload 3 /* pubKeySpec */
            invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
         6: areturn
        end local 4 // java.security.KeyFactory factk
         7: .line 69
      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 /* e */
        start local 4 // java.security.NoSuchProviderException e
         8: .line 71
            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 /* e */
            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 /* e */
            invokespecial org.bouncycastle.eac.EACException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.NoSuchProviderException e
         9: .line 73
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            astore 4 /* e */
        start local 4 // java.security.NoSuchAlgorithmException e
        10: .line 75
            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 /* e */
            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 /* e */
            invokespecial org.bouncycastle.eac.EACException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.NoSuchAlgorithmException e
        end local 3 // java.security.spec.RSAPublicKeySpec pubKeySpec
        end local 2 // org.bouncycastle.asn1.eac.RSAPublicKey pubKey
        end local 1 // org.bouncycastle.asn1.eac.PublicKeyDataObject publicKeyDataObject
        end local 0 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
      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 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
        start local 1 // org.bouncycastle.asn1.eac.ECDSAPublicKey key
         0: .line 83
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.getParams:(Lorg/bouncycastle/asn1/eac/ECDSAPublicKey;)Ljava/security/spec/ECParameterSpec;
            astore 2 /* spec */
        start local 2 // java.security.spec.ECParameterSpec spec
         1: .line 84
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.getPublicPoint:(Lorg/bouncycastle/asn1/eac/ECDSAPublicKey;)Ljava/security/spec/ECPoint;
            astore 3 /* publicPoint */
        start local 3 // java.security.spec.ECPoint publicPoint
         2: .line 85
            new java.security.spec.ECPublicKeySpec
            dup
            aload 3 /* publicPoint */
            aload 2 /* spec */
            invokespecial java.security.spec.ECPublicKeySpec.<init>:(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V
            astore 4 /* pubKeySpec */
        start local 4 // java.security.spec.ECPublicKeySpec pubKeySpec
         3: .line 90
            aload 0 /* this */
            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 /* factk */
        start local 5 // java.security.KeyFactory factk
         4: .line 91
            goto 9
        end local 5 // java.security.KeyFactory factk
         5: .line 92
      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 /* e */
        start local 6 // java.security.NoSuchProviderException e
         6: .line 94
            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 /* e */
            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 /* e */
            invokespecial org.bouncycastle.eac.EACException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.security.NoSuchProviderException e
         7: .line 96
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            astore 6 /* e */
        start local 6 // java.security.NoSuchAlgorithmException e
         8: .line 98
            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 /* e */
            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 /* e */
            invokespecial org.bouncycastle.eac.EACException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.security.NoSuchAlgorithmException e
        start local 5 // java.security.KeyFactory factk
         9: .line 101
      StackMap locals: java.security.KeyFactory
      StackMap stack:
            aload 5 /* factk */
            aload 4 /* pubKeySpec */
            invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
            areturn
        end local 5 // java.security.KeyFactory factk
        end local 4 // java.security.spec.ECPublicKeySpec pubKeySpec
        end local 3 // java.security.spec.ECPoint publicPoint
        end local 2 // java.security.spec.ECParameterSpec spec
        end local 1 // org.bouncycastle.asn1.eac.ECDSAPublicKey key
        end local 0 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
      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 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
        start local 1 // org.bouncycastle.asn1.eac.ECDSAPublicKey key
         0: .line 106
            aload 1 /* key */
            invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.hasParameters:()Z
            ifne 2
         1: .line 108
            new java.lang.IllegalArgumentException
            dup
            ldc "Public key does not contains EC Params"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 111
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getPrimeModulusP:()Ljava/math/BigInteger;
            astore 2 /* p */
        start local 2 // java.math.BigInteger p
         3: .line 112
            new org.bouncycastle.math.ec.ECCurve$Fp
            dup
            aload 2 /* p */
            aload 1 /* key */
            invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getFirstCoefA:()Ljava/math/BigInteger;
            aload 1 /* key */
            invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getSecondCoefB:()Ljava/math/BigInteger;
            aload 1 /* key */
            invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getOrderOfBasePointR:()Ljava/math/BigInteger;
            aload 1 /* key */
            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 /* curve */
        start local 3 // org.bouncycastle.math.ec.ECCurve$Fp curve
         4: .line 114
            aload 3 /* curve */
            aload 1 /* key */
            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 /* pubY */
        start local 4 // org.bouncycastle.math.ec.ECPoint$Fp pubY
         5: .line 116
            new java.security.spec.ECPoint
            dup
            aload 4 /* pubY */
            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 /* pubY */
            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 // org.bouncycastle.math.ec.ECPoint$Fp pubY
        end local 3 // org.bouncycastle.math.ec.ECCurve$Fp curve
        end local 2 // java.math.BigInteger p
        end local 1 // org.bouncycastle.asn1.eac.ECDSAPublicKey key
        end local 0 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
      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 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
        start local 1 // org.bouncycastle.asn1.eac.ECDSAPublicKey key
         0: .line 121
            aload 1 /* key */
            invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.hasParameters:()Z
            ifne 2
         1: .line 123
            new java.lang.IllegalArgumentException
            dup
            ldc "Public key does not contains EC Params"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 126
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getPrimeModulusP:()Ljava/math/BigInteger;
            astore 2 /* p */
        start local 2 // java.math.BigInteger p
         3: .line 127
            new org.bouncycastle.math.ec.ECCurve$Fp
            dup
            aload 2 /* p */
            aload 1 /* key */
            invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getFirstCoefA:()Ljava/math/BigInteger;
            aload 1 /* key */
            invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getSecondCoefB:()Ljava/math/BigInteger;
            aload 1 /* key */
            invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getOrderOfBasePointR:()Ljava/math/BigInteger;
            aload 1 /* key */
            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 /* curve */
        start local 3 // org.bouncycastle.math.ec.ECCurve$Fp curve
         4: .line 129
            aload 3 /* curve */
            aload 1 /* key */
            invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getBasePointG:()[B
            invokevirtual org.bouncycastle.math.ec.ECCurve$Fp.decodePoint:([B)Lorg/bouncycastle/math/ec/ECPoint;
            astore 4 /* G */
        start local 4 // org.bouncycastle.math.ec.ECPoint G
         5: .line 131
            aload 1 /* key */
            invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getOrderOfBasePointR:()Ljava/math/BigInteger;
            astore 5 /* order */
        start local 5 // java.math.BigInteger order
         6: .line 132
            aload 1 /* key */
            invokevirtual org.bouncycastle.asn1.eac.ECDSAPublicKey.getCofactorF:()Ljava/math/BigInteger;
            astore 6 /* coFactor */
        start local 6 // java.math.BigInteger coFactor
         7: .line 134
            aload 3 /* curve */
            invokestatic org.bouncycastle.eac.jcajce.JcaPublicKeyConverter.convertCurve:(Lorg/bouncycastle/math/ec/ECCurve;)Ljava/security/spec/EllipticCurve;
            astore 7 /* jcaCurve */
        start local 7 // java.security.spec.EllipticCurve jcaCurve
         8: .line 136
            new java.security.spec.ECParameterSpec
            dup
            aload 7 /* jcaCurve */
            new java.security.spec.ECPoint
            dup
            aload 4 /* G */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getAffineXCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            aload 4 /* G */
            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 /* order */
            aload 6 /* coFactor */
            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 // java.security.spec.EllipticCurve jcaCurve
        end local 6 // java.math.BigInteger coFactor
        end local 5 // java.math.BigInteger order
        end local 4 // org.bouncycastle.math.ec.ECPoint G
        end local 3 // org.bouncycastle.math.ec.ECCurve$Fp curve
        end local 2 // java.math.BigInteger p
        end local 1 // org.bouncycastle.asn1.eac.ECDSAPublicKey key
        end local 0 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
      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 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
        start local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier usage
        start local 2 // java.security.PublicKey publicKey
         0: .line 141
            aload 2 /* publicKey */
            instanceof java.security.interfaces.RSAPublicKey
            ifeq 3
         1: .line 143
            aload 2 /* publicKey */
            checkcast java.security.interfaces.RSAPublicKey
            astore 3 /* pubKey */
        start local 3 // java.security.interfaces.RSAPublicKey pubKey
         2: .line 145
            new org.bouncycastle.asn1.eac.RSAPublicKey
            dup
            aload 1 /* usage */
            aload 3 /* pubKey */
            invokeinterface java.security.interfaces.RSAPublicKey.getModulus:()Ljava/math/BigInteger;
            aload 3 /* pubKey */
            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 // java.security.interfaces.RSAPublicKey pubKey
         3: .line 149
      StackMap locals:
      StackMap stack:
            aload 2 /* publicKey */
            checkcast java.security.interfaces.ECPublicKey
            astore 3 /* pubKey */
        start local 3 // java.security.interfaces.ECPublicKey pubKey
         4: .line 150
            aload 3 /* pubKey */
            invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
            astore 4 /* params */
        start local 4 // java.security.spec.ECParameterSpec params
         5: .line 152
            new org.bouncycastle.asn1.eac.ECDSAPublicKey
            dup
         6: .line 153
            aload 1 /* usage */
         7: .line 154
            aload 4 /* params */
            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: .line 155
            aload 4 /* params */
            invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
            invokevirtual java.security.spec.EllipticCurve.getA:()Ljava/math/BigInteger;
            aload 4 /* params */
            invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
            invokevirtual java.security.spec.EllipticCurve.getB:()Ljava/math/BigInteger;
         9: .line 156
            aload 4 /* params */
            invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
            aload 4 /* params */
            invokevirtual java.security.spec.ECParameterSpec.getOrder:()Ljava/math/BigInteger;
            aload 4 /* params */
            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 /* params */
            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: .line 157
            aload 4 /* params */
            invokevirtual java.security.spec.ECParameterSpec.getOrder:()Ljava/math/BigInteger;
        11: .line 158
            aload 4 /* params */
            invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
            aload 4 /* params */
            invokevirtual java.security.spec.ECParameterSpec.getOrder:()Ljava/math/BigInteger;
            aload 4 /* params */
            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 /* pubKey */
            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: .line 159
            aload 4 /* params */
            invokevirtual java.security.spec.ECParameterSpec.getCofactor:()I
        13: .line 152
            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 // java.security.spec.ECParameterSpec params
        end local 3 // java.security.interfaces.ECPublicKey pubKey
        end local 2 // java.security.PublicKey publicKey
        end local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier usage
        end local 0 // org.bouncycastle.eac.jcajce.JcaPublicKeyConverter this
      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 // org.bouncycastle.math.ec.ECCurve curve
        start local 1 // java.security.spec.ECPoint point
         0: .line 167
            aload 0 /* curve */
            aload 1 /* point */
            invokevirtual java.security.spec.ECPoint.getAffineX:()Ljava/math/BigInteger;
            aload 1 /* point */
            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 // java.security.spec.ECPoint point
        end local 0 // org.bouncycastle.math.ec.ECCurve curve
      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 // java.security.spec.EllipticCurve ec
        start local 1 // java.math.BigInteger order
        start local 2 // int coFactor
         0: .line 173
            aload 0 /* ec */
            invokevirtual java.security.spec.EllipticCurve.getField:()Ljava/security/spec/ECField;
            astore 3 /* field */
        start local 3 // java.security.spec.ECField field
         1: .line 174
            aload 0 /* ec */
            invokevirtual java.security.spec.EllipticCurve.getA:()Ljava/math/BigInteger;
            astore 4 /* a */
        start local 4 // java.math.BigInteger a
         2: .line 175
            aload 0 /* ec */
            invokevirtual java.security.spec.EllipticCurve.getB:()Ljava/math/BigInteger;
            astore 5 /* b */
        start local 5 // java.math.BigInteger b
         3: .line 177
            aload 3 /* field */
            instanceof java.security.spec.ECFieldFp
            ifeq 5
         4: .line 179
            new org.bouncycastle.math.ec.ECCurve$Fp
            dup
            aload 3 /* field */
            checkcast java.security.spec.ECFieldFp
            invokevirtual java.security.spec.ECFieldFp.getP:()Ljava/math/BigInteger;
            aload 4 /* a */
            aload 5 /* b */
            aload 1 /* order */
            iload 2 /* coFactor */
            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: .line 183
      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 // java.math.BigInteger b
        end local 4 // java.math.BigInteger a
        end local 3 // java.security.spec.ECField field
        end local 2 // int coFactor
        end local 1 // java.math.BigInteger order
        end local 0 // java.security.spec.EllipticCurve ec
      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 // org.bouncycastle.math.ec.ECCurve curve
         0: .line 190
            aload 0 /* curve */
            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 /* field */
        start local 1 // java.security.spec.ECField field
         1: .line 191
            aload 0 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            astore 2 /* a */
        start local 2 // java.math.BigInteger a
         2: aload 0 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getB:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            astore 3 /* b */
        start local 3 // java.math.BigInteger b
         3: .line 195
            new java.security.spec.EllipticCurve
            dup
            aload 1 /* field */
            aload 2 /* a */
            aload 3 /* b */
            aconst_null
            invokespecial java.security.spec.EllipticCurve.<init>:(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;[B)V
            areturn
        end local 3 // java.math.BigInteger b
        end local 2 // java.math.BigInteger a
        end local 1 // java.security.spec.ECField field
        end local 0 // org.bouncycastle.math.ec.ECCurve curve
      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 // org.bouncycastle.math.field.FiniteField field
         0: .line 200
            aload 0 /* field */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.isFpField:(Lorg/bouncycastle/math/field/FiniteField;)Z
            ifeq 2
         1: .line 202
            new java.security.spec.ECFieldFp
            dup
            aload 0 /* field */
            invokeinterface org.bouncycastle.math.field.FiniteField.getCharacteristic:()Ljava/math/BigInteger;
            invokespecial java.security.spec.ECFieldFp.<init>:(Ljava/math/BigInteger;)V
            areturn
         2: .line 206
      StackMap locals:
      StackMap stack:
            aload 0 /* field */
            checkcast org.bouncycastle.math.field.PolynomialExtensionField
            invokeinterface org.bouncycastle.math.field.PolynomialExtensionField.getMinimalPolynomial:()Lorg/bouncycastle/math/field/Polynomial;
            astore 1 /* poly */
        start local 1 // org.bouncycastle.math.field.Polynomial poly
         3: .line 207
            aload 1 /* poly */
            invokeinterface org.bouncycastle.math.field.Polynomial.getExponentsPresent:()[I
            astore 2 /* exponents */
        start local 2 // int[] exponents
         4: .line 208
            aload 2 /* exponents */
            iconst_1
            aload 2 /* exponents */
            arraylength
            iconst_1
            isub
            invokestatic org.bouncycastle.util.Arrays.copyOfRange:([III)[I
            invokestatic org.bouncycastle.util.Arrays.reverse:([I)[I
            astore 3 /* ks */
        start local 3 // int[] ks
         5: .line 209
            new java.security.spec.ECFieldF2m
            dup
            aload 1 /* poly */
            invokeinterface org.bouncycastle.math.field.Polynomial.getDegree:()I
            aload 3 /* ks */
            invokespecial java.security.spec.ECFieldF2m.<init>:(I[I)V
            areturn
        end local 3 // int[] ks
        end local 2 // int[] exponents
        end local 1 // org.bouncycastle.math.field.Polynomial poly
        end local 0 // org.bouncycastle.math.field.FiniteField field
      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