public class org.bouncycastle.jce.provider.asymmetric.ec.EC5Util
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.jce.provider.asymmetric.ec.EC5Util
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.asymmetric.ec.EC5Util this
         0: .line 15
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.bouncycastle.jce.provider.asymmetric.ec.EC5Util this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/asymmetric/ec/EC5Util;

  public static java.security.spec.EllipticCurve convertCurve(org.bouncycastle.math.ec.ECCurve, byte[]);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve;[B)Ljava/security/spec/EllipticCurve;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve curve
        start local 1 // byte[] seed
         0: .line 23
            aload 0 /* curve */
            instanceof org.bouncycastle.math.ec.ECCurve$Fp
            ifeq 2
         1: .line 25
            new java.security.spec.EllipticCurve
            dup
            new java.security.spec.ECFieldFp
            dup
            aload 0 /* curve */
            checkcast org.bouncycastle.math.ec.ECCurve$Fp
            invokevirtual org.bouncycastle.math.ec.ECCurve$Fp.getQ:()Ljava/math/BigInteger;
            invokespecial java.security.spec.ECFieldFp.<init>:(Ljava/math/BigInteger;)V
            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;
            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;
            aconst_null
            invokespecial java.security.spec.EllipticCurve.<init>:(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;[B)V
            areturn
         2: .line 29
      StackMap locals:
      StackMap stack:
            aload 0 /* curve */
            checkcast org.bouncycastle.math.ec.ECCurve$F2m
            astore 2 /* curveF2m */
        start local 2 // org.bouncycastle.math.ec.ECCurve$F2m curveF2m
         3: .line 32
            aload 2 /* curveF2m */
            invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.isTrinomial:()Z
            ifeq 6
         4: .line 34
            iconst_1
            newarray 10
            dup
            iconst_0
            aload 2 /* curveF2m */
            invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.getK1:()I
            iastore
            astore 3 /* ks */
        start local 3 // int[] ks
         5: .line 36
            new java.security.spec.EllipticCurve
            dup
            new java.security.spec.ECFieldF2m
            dup
            aload 2 /* curveF2m */
            invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.getM:()I
            aload 3 /* ks */
            invokespecial java.security.spec.ECFieldF2m.<init>:(I[I)V
            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;
            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;
            aconst_null
            invokespecial java.security.spec.EllipticCurve.<init>:(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;[B)V
            areturn
        end local 3 // int[] ks
         6: .line 40
      StackMap locals: org.bouncycastle.math.ec.ECCurve$F2m
      StackMap stack:
            iconst_3
            newarray 10
            dup
            iconst_0
            aload 2 /* curveF2m */
            invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.getK3:()I
            iastore
            dup
            iconst_1
            aload 2 /* curveF2m */
            invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.getK2:()I
            iastore
            dup
            iconst_2
            aload 2 /* curveF2m */
            invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.getK1:()I
            iastore
            astore 3 /* ks */
        start local 3 // int[] ks
         7: .line 42
            new java.security.spec.EllipticCurve
            dup
            new java.security.spec.ECFieldF2m
            dup
            aload 2 /* curveF2m */
            invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.getM:()I
            aload 3 /* ks */
            invokespecial java.security.spec.ECFieldF2m.<init>:(I[I)V
            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;
            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;
            aconst_null
            invokespecial java.security.spec.EllipticCurve.<init>:(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;[B)V
            areturn
        end local 3 // int[] ks
        end local 2 // org.bouncycastle.math.ec.ECCurve$F2m curveF2m
        end local 1 // byte[] seed
        end local 0 // org.bouncycastle.math.ec.ECCurve curve
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0     curve  Lorg/bouncycastle/math/ec/ECCurve;
            0    8     1      seed  [B
            3    8     2  curveF2m  Lorg/bouncycastle/math/ec/ECCurve$F2m;
            5    6     3        ks  [I
            7    8     3        ks  [I
    MethodParameters:
       Name  Flags
      curve  
      seed   

  public static org.bouncycastle.math.ec.ECCurve convertCurve(java.security.spec.EllipticCurve);
    descriptor: (Ljava/security/spec/EllipticCurve;)Lorg/bouncycastle/math/ec/ECCurve;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=7, args_size=1
        start local 0 // java.security.spec.EllipticCurve ec
         0: .line 50
            aload 0 /* ec */
            invokevirtual java.security.spec.EllipticCurve.getField:()Ljava/security/spec/ECField;
            astore 1 /* field */
        start local 1 // java.security.spec.ECField field
         1: .line 51
            aload 0 /* ec */
            invokevirtual java.security.spec.EllipticCurve.getA:()Ljava/math/BigInteger;
            astore 2 /* a */
        start local 2 // java.math.BigInteger a
         2: .line 52
            aload 0 /* ec */
            invokevirtual java.security.spec.EllipticCurve.getB:()Ljava/math/BigInteger;
            astore 3 /* b */
        start local 3 // java.math.BigInteger b
         3: .line 54
            aload 1 /* field */
            instanceof java.security.spec.ECFieldFp
            ifeq 5
         4: .line 56
            new org.bouncycastle.math.ec.ECCurve$Fp
            dup
            aload 1 /* field */
            checkcast java.security.spec.ECFieldFp
            invokevirtual java.security.spec.ECFieldFp.getP:()Ljava/math/BigInteger;
            aload 2 /* a */
            aload 3 /* b */
            invokespecial org.bouncycastle.math.ec.ECCurve$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
         5: .line 60
      StackMap locals: java.security.spec.ECField java.math.BigInteger java.math.BigInteger
      StackMap stack:
            aload 1 /* field */
            checkcast java.security.spec.ECFieldF2m
            astore 4 /* fieldF2m */
        start local 4 // java.security.spec.ECFieldF2m fieldF2m
         6: .line 61
            aload 4 /* fieldF2m */
            invokevirtual java.security.spec.ECFieldF2m.getM:()I
            istore 5 /* m */
        start local 5 // int m
         7: .line 62
            aload 4 /* fieldF2m */
            invokevirtual java.security.spec.ECFieldF2m.getMidTermsOfReductionPolynomial:()[I
            invokestatic org.bouncycastle.jce.provider.asymmetric.ec.ECUtil.convertMidTerms:([I)[I
            astore 6 /* ks */
        start local 6 // int[] ks
         8: .line 63
            new org.bouncycastle.math.ec.ECCurve$F2m
            dup
            iload 5 /* m */
            aload 6 /* ks */
            iconst_0
            iaload
            aload 6 /* ks */
            iconst_1
            iaload
            aload 6 /* ks */
            iconst_2
            iaload
            aload 2 /* a */
            aload 3 /* b */
            invokespecial org.bouncycastle.math.ec.ECCurve$F2m.<init>:(IIIILjava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 6 // int[] ks
        end local 5 // int m
        end local 4 // java.security.spec.ECFieldF2m fieldF2m
        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 // java.security.spec.EllipticCurve ec
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0        ec  Ljava/security/spec/EllipticCurve;
            1    9     1     field  Ljava/security/spec/ECField;
            2    9     2         a  Ljava/math/BigInteger;
            3    9     3         b  Ljava/math/BigInteger;
            6    9     4  fieldF2m  Ljava/security/spec/ECFieldF2m;
            7    9     5         m  I
            8    9     6        ks  [I
    MethodParameters:
      Name  Flags
      ec    

  public static java.security.spec.ECParameterSpec convertSpec(java.security.spec.EllipticCurve, org.bouncycastle.jce.spec.ECParameterSpec);
    descriptor: (Ljava/security/spec/EllipticCurve;Lorg/bouncycastle/jce/spec/ECParameterSpec;)Ljava/security/spec/ECParameterSpec;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // java.security.spec.EllipticCurve ellipticCurve
        start local 1 // org.bouncycastle.jce.spec.ECParameterSpec spec
         0: .line 71
            aload 1 /* spec */
            instanceof org.bouncycastle.jce.spec.ECNamedCurveParameterSpec
            ifeq 11
         1: .line 73
            new org.bouncycastle.jce.spec.ECNamedCurveSpec
            dup
         2: .line 74
            aload 1 /* spec */
            checkcast org.bouncycastle.jce.spec.ECNamedCurveParameterSpec
            invokevirtual org.bouncycastle.jce.spec.ECNamedCurveParameterSpec.getName:()Ljava/lang/String;
         3: .line 75
            aload 0 /* ellipticCurve */
         4: .line 76
            new java.security.spec.ECPoint
            dup
         5: .line 77
            aload 1 /* spec */
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getG:()Lorg/bouncycastle/math/ec/ECPoint;
            invokevirtual org.bouncycastle.math.ec.ECPoint.getX:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
         6: .line 78
            aload 1 /* spec */
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getG:()Lorg/bouncycastle/math/ec/ECPoint;
            invokevirtual org.bouncycastle.math.ec.ECPoint.getY:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
         7: .line 76
            invokespecial java.security.spec.ECPoint.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
         8: .line 79
            aload 1 /* spec */
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getN:()Ljava/math/BigInteger;
         9: .line 80
            aload 1 /* spec */
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getH:()Ljava/math/BigInteger;
        10: .line 73
            invokespecial org.bouncycastle.jce.spec.ECNamedCurveSpec.<init>:(Ljava/lang/String;Ljava/security/spec/EllipticCurve;Ljava/security/spec/ECPoint;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        11: .line 84
      StackMap locals:
      StackMap stack:
            new java.security.spec.ECParameterSpec
            dup
        12: .line 85
            aload 0 /* ellipticCurve */
        13: .line 86
            new java.security.spec.ECPoint
            dup
        14: .line 87
            aload 1 /* spec */
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getG:()Lorg/bouncycastle/math/ec/ECPoint;
            invokevirtual org.bouncycastle.math.ec.ECPoint.getX:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
        15: .line 88
            aload 1 /* spec */
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getG:()Lorg/bouncycastle/math/ec/ECPoint;
            invokevirtual org.bouncycastle.math.ec.ECPoint.getY:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
        16: .line 86
            invokespecial java.security.spec.ECPoint.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
        17: .line 89
            aload 1 /* spec */
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getN:()Ljava/math/BigInteger;
        18: .line 90
            aload 1 /* spec */
            invokevirtual org.bouncycastle.jce.spec.ECParameterSpec.getH:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
        19: .line 84
            invokespecial java.security.spec.ECParameterSpec.<init>:(Ljava/security/spec/EllipticCurve;Ljava/security/spec/ECPoint;Ljava/math/BigInteger;I)V
            areturn
        end local 1 // org.bouncycastle.jce.spec.ECParameterSpec spec
        end local 0 // java.security.spec.EllipticCurve ellipticCurve
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0  ellipticCurve  Ljava/security/spec/EllipticCurve;
            0   20     1           spec  Lorg/bouncycastle/jce/spec/ECParameterSpec;
    MethodParameters:
               Name  Flags
      ellipticCurve  
      spec           

  public static org.bouncycastle.jce.spec.ECParameterSpec convertSpec(java.security.spec.ECParameterSpec, boolean);
    descriptor: (Ljava/security/spec/ECParameterSpec;Z)Lorg/bouncycastle/jce/spec/ECParameterSpec;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // java.security.spec.ECParameterSpec ecSpec
        start local 1 // boolean withCompression
         0: .line 98
            aload 0 /* ecSpec */
            invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
            invokestatic org.bouncycastle.jce.provider.asymmetric.ec.EC5Util.convertCurve:(Ljava/security/spec/EllipticCurve;)Lorg/bouncycastle/math/ec/ECCurve;
            astore 2 /* curve */
        start local 2 // org.bouncycastle.math.ec.ECCurve curve
         1: .line 100
            new org.bouncycastle.jce.spec.ECParameterSpec
            dup
         2: .line 101
            aload 2 /* curve */
         3: .line 102
            aload 2 /* curve */
            aload 0 /* ecSpec */
            invokevirtual java.security.spec.ECParameterSpec.getGenerator:()Ljava/security/spec/ECPoint;
            iload 1 /* withCompression */
            invokestatic org.bouncycastle.jce.provider.asymmetric.ec.EC5Util.convertPoint:(Lorg/bouncycastle/math/ec/ECCurve;Ljava/security/spec/ECPoint;Z)Lorg/bouncycastle/math/ec/ECPoint;
         4: .line 103
            aload 0 /* ecSpec */
            invokevirtual java.security.spec.ECParameterSpec.getOrder:()Ljava/math/BigInteger;
         5: .line 104
            aload 0 /* ecSpec */
            invokevirtual java.security.spec.ECParameterSpec.getCofactor:()I
            i2l
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
         6: .line 105
            aload 0 /* ecSpec */
            invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
            invokevirtual java.security.spec.EllipticCurve.getSeed:()[B
         7: .line 100
            invokespecial org.bouncycastle.jce.spec.ECParameterSpec.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Ljava/math/BigInteger;[B)V
            areturn
        end local 2 // org.bouncycastle.math.ec.ECCurve curve
        end local 1 // boolean withCompression
        end local 0 // java.security.spec.ECParameterSpec ecSpec
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0           ecSpec  Ljava/security/spec/ECParameterSpec;
            0    8     1  withCompression  Z
            1    8     2            curve  Lorg/bouncycastle/math/ec/ECCurve;
    MethodParameters:
                 Name  Flags
      ecSpec           
      withCompression  

  public static org.bouncycastle.math.ec.ECPoint convertPoint(java.security.spec.ECParameterSpec, java.security.spec.ECPoint, boolean);
    descriptor: (Ljava/security/spec/ECParameterSpec;Ljava/security/spec/ECPoint;Z)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.security.spec.ECParameterSpec ecSpec
        start local 1 // java.security.spec.ECPoint point
        start local 2 // boolean withCompression
         0: .line 113
            aload 0 /* ecSpec */
            invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
            invokestatic org.bouncycastle.jce.provider.asymmetric.ec.EC5Util.convertCurve:(Ljava/security/spec/EllipticCurve;)Lorg/bouncycastle/math/ec/ECCurve;
            aload 1 /* point */
            iload 2 /* withCompression */
            invokestatic org.bouncycastle.jce.provider.asymmetric.ec.EC5Util.convertPoint:(Lorg/bouncycastle/math/ec/ECCurve;Ljava/security/spec/ECPoint;Z)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 2 // boolean withCompression
        end local 1 // java.security.spec.ECPoint point
        end local 0 // java.security.spec.ECParameterSpec ecSpec
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0           ecSpec  Ljava/security/spec/ECParameterSpec;
            0    1     1            point  Ljava/security/spec/ECPoint;
            0    1     2  withCompression  Z
    MethodParameters:
                 Name  Flags
      ecSpec           
      point            
      withCompression  

  public static org.bouncycastle.math.ec.ECPoint convertPoint(org.bouncycastle.math.ec.ECCurve, java.security.spec.ECPoint, boolean);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Ljava/security/spec/ECPoint;Z)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECCurve curve
        start local 1 // java.security.spec.ECPoint point
        start local 2 // boolean withCompression
         0: .line 121
            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;
            iload 2 /* withCompression */
            invokevirtual org.bouncycastle.math.ec.ECCurve.createPoint:(Ljava/math/BigInteger;Ljava/math/BigInteger;Z)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 2 // boolean withCompression
        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;
            0    1     2  withCompression  Z
    MethodParameters:
                 Name  Flags
      curve            
      point            
      withCompression  
}
SourceFile: "EC5Util.java"
InnerClasses:
  public F2m = org.bouncycastle.math.ec.ECCurve$F2m of org.bouncycastle.math.ec.ECCurve
  public Fp = org.bouncycastle.math.ec.ECCurve$Fp of org.bouncycastle.math.ec.ECCurve