ECCurve$Fp.smali
.class public Lorg/spongycastle/math/ec/ECCurve$Fp;
.super Lorg/spongycastle/math/ec/ECCurve$AbstractFp;
.source "ECCurve.java"
# static fields
.field private static final FP_DEFAULT_COORDS:I = 0x4
# instance fields
.field infinity:Lorg/spongycastle/math/ec/ECPoint$Fp;
.field q:Ljava/math/BigInteger;
.field r:Ljava/math/BigInteger;
# direct methods
.method public constructor <init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
.registers 10
.prologue
const/4 v4, 0x0
.line 547
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, p3
move-object v5, v4
invoke-direct/range {v0 .. v5}, Lorg/spongycastle/math/ec/ECCurve$Fp;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
.line 548
return-void
.end method
.method public constructor <init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
.registers 8
.prologue
const/4 v1, 0x0
.line 552
invoke-direct {p0, p1}, Lorg/spongycastle/math/ec/ECCurve$AbstractFp;-><init>(Ljava/math/BigInteger;)V
.line 554
iput-object p1, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->q:Ljava/math/BigInteger;
.line 555
invoke-static {p1}, Lorg/spongycastle/math/ec/ECFieldElement$Fp;->calculateResidue(Ljava/math/BigInteger;)Ljava/math/BigInteger;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->r:Ljava/math/BigInteger;
.line 556
new-instance v0, Lorg/spongycastle/math/ec/ECPoint$Fp;
invoke-direct {v0, p0, v1, v1}, Lorg/spongycastle/math/ec/ECPoint$Fp;-><init>(Lorg/spongycastle/math/ec/ECCurve;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;)V
iput-object v0, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->infinity:Lorg/spongycastle/math/ec/ECPoint$Fp;
.line 558
invoke-virtual {p0, p2}, Lorg/spongycastle/math/ec/ECCurve$Fp;->fromBigInteger(Ljava/math/BigInteger;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->a:Lorg/spongycastle/math/ec/ECFieldElement;
.line 559
invoke-virtual {p0, p3}, Lorg/spongycastle/math/ec/ECCurve$Fp;->fromBigInteger(Ljava/math/BigInteger;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->b:Lorg/spongycastle/math/ec/ECFieldElement;
.line 560
iput-object p4, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->order:Ljava/math/BigInteger;
.line 561
iput-object p5, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->cofactor:Ljava/math/BigInteger;
.line 562
const/4 v0, 0x4
iput v0, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->coord:I
.line 563
return-void
.end method
.method protected constructor <init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;)V
.registers 12
.prologue
const/4 v5, 0x0
.line 567
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, p3
move-object v4, p4
move-object v6, v5
invoke-direct/range {v0 .. v6}, Lorg/spongycastle/math/ec/ECCurve$Fp;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
.line 568
return-void
.end method
.method protected constructor <init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
.registers 9
.prologue
const/4 v1, 0x0
.line 572
invoke-direct {p0, p1}, Lorg/spongycastle/math/ec/ECCurve$AbstractFp;-><init>(Ljava/math/BigInteger;)V
.line 574
iput-object p1, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->q:Ljava/math/BigInteger;
.line 575
iput-object p2, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->r:Ljava/math/BigInteger;
.line 576
new-instance v0, Lorg/spongycastle/math/ec/ECPoint$Fp;
invoke-direct {v0, p0, v1, v1}, Lorg/spongycastle/math/ec/ECPoint$Fp;-><init>(Lorg/spongycastle/math/ec/ECCurve;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;)V
iput-object v0, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->infinity:Lorg/spongycastle/math/ec/ECPoint$Fp;
.line 578
iput-object p3, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->a:Lorg/spongycastle/math/ec/ECFieldElement;
.line 579
iput-object p4, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->b:Lorg/spongycastle/math/ec/ECFieldElement;
.line 580
iput-object p5, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->order:Ljava/math/BigInteger;
.line 581
iput-object p6, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->cofactor:Ljava/math/BigInteger;
.line 582
const/4 v0, 0x4
iput v0, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->coord:I
.line 583
return-void
.end method
# virtual methods
.method protected cloneCurve()Lorg/spongycastle/math/ec/ECCurve;
.registers 8
.prologue
.line 587
new-instance v0, Lorg/spongycastle/math/ec/ECCurve$Fp;
iget-object v1, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->q:Ljava/math/BigInteger;
iget-object v2, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->r:Ljava/math/BigInteger;
iget-object v3, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->a:Lorg/spongycastle/math/ec/ECFieldElement;
iget-object v4, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->b:Lorg/spongycastle/math/ec/ECFieldElement;
iget-object v5, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->order:Ljava/math/BigInteger;
iget-object v6, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->cofactor:Ljava/math/BigInteger;
invoke-direct/range {v0 .. v6}, Lorg/spongycastle/math/ec/ECCurve$Fp;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
return-object v0
.end method
.method protected createRawPoint(Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;Z)Lorg/spongycastle/math/ec/ECPoint;
.registers 5
.prologue
.line 621
new-instance v0, Lorg/spongycastle/math/ec/ECPoint$Fp;
invoke-direct {v0, p0, p1, p2, p3}, Lorg/spongycastle/math/ec/ECPoint$Fp;-><init>(Lorg/spongycastle/math/ec/ECCurve;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;Z)V
return-object v0
.end method
.method protected createRawPoint(Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;[Lorg/spongycastle/math/ec/ECFieldElement;Z)Lorg/spongycastle/math/ec/ECPoint;
.registers 11
.prologue
.line 626
new-instance v0, Lorg/spongycastle/math/ec/ECPoint$Fp;
move-object v1, p0
move-object v2, p1
move-object v3, p2
move-object v4, p3
move v5, p4
invoke-direct/range {v0 .. v5}, Lorg/spongycastle/math/ec/ECPoint$Fp;-><init>(Lorg/spongycastle/math/ec/ECCurve;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;[Lorg/spongycastle/math/ec/ECFieldElement;Z)V
return-object v0
.end method
.method public fromBigInteger(Ljava/math/BigInteger;)Lorg/spongycastle/math/ec/ECFieldElement;
.registers 5
.prologue
.line 616
new-instance v0, Lorg/spongycastle/math/ec/ECFieldElement$Fp;
iget-object v1, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->q:Ljava/math/BigInteger;
iget-object v2, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->r:Ljava/math/BigInteger;
invoke-direct {v0, v1, v2, p1}, Lorg/spongycastle/math/ec/ECFieldElement$Fp;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
return-object v0
.end method
.method public getFieldSize()I
.registers 2
.prologue
.line 611
iget-object v0, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->q:Ljava/math/BigInteger;
invoke-virtual {v0}, Ljava/math/BigInteger;->bitLength()I
move-result v0
return v0
.end method
.method public getInfinity()Lorg/spongycastle/math/ec/ECPoint;
.registers 2
.prologue
.line 653
iget-object v0, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->infinity:Lorg/spongycastle/math/ec/ECPoint$Fp;
return-object v0
.end method
.method public getQ()Ljava/math/BigInteger;
.registers 2
.prologue
.line 606
iget-object v0, p0, Lorg/spongycastle/math/ec/ECCurve$Fp;->q:Ljava/math/BigInteger;
return-object v0
.end method
.method public importPoint(Lorg/spongycastle/math/ec/ECPoint;)Lorg/spongycastle/math/ec/ECPoint;
.registers 8
.prologue
const/4 v5, 0x0
.line 631
invoke-virtual {p1}, Lorg/spongycastle/math/ec/ECPoint;->getCurve()Lorg/spongycastle/math/ec/ECCurve;
move-result-object v0
if-eq p0, v0, :cond_1f
invoke-virtual {p0}, Lorg/spongycastle/math/ec/ECCurve$Fp;->getCoordinateSystem()I
move-result v0
const/4 v1, 0x2
if-ne v0, v1, :cond_1f
invoke-virtual {p1}, Lorg/spongycastle/math/ec/ECPoint;->isInfinity()Z
move-result v0
if-nez v0, :cond_1f
.line 633
invoke-virtual {p1}, Lorg/spongycastle/math/ec/ECPoint;->getCurve()Lorg/spongycastle/math/ec/ECCurve;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/math/ec/ECCurve;->getCoordinateSystem()I
move-result v0
packed-switch v0, :pswitch_data_52
.line 648
:cond_1f
invoke-super {p0, p1}, Lorg/spongycastle/math/ec/ECCurve$AbstractFp;->importPoint(Lorg/spongycastle/math/ec/ECPoint;)Lorg/spongycastle/math/ec/ECPoint;
move-result-object v0
:goto_23
return-object v0
.line 638
:pswitch_24
new-instance v0, Lorg/spongycastle/math/ec/ECPoint$Fp;
iget-object v1, p1, Lorg/spongycastle/math/ec/ECPoint;->x:Lorg/spongycastle/math/ec/ECFieldElement;
.line 639
invoke-virtual {v1}, Lorg/spongycastle/math/ec/ECFieldElement;->toBigInteger()Ljava/math/BigInteger;
move-result-object v1
invoke-virtual {p0, v1}, Lorg/spongycastle/math/ec/ECCurve$Fp;->fromBigInteger(Ljava/math/BigInteger;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v2
iget-object v1, p1, Lorg/spongycastle/math/ec/ECPoint;->y:Lorg/spongycastle/math/ec/ECFieldElement;
.line 640
invoke-virtual {v1}, Lorg/spongycastle/math/ec/ECFieldElement;->toBigInteger()Ljava/math/BigInteger;
move-result-object v1
invoke-virtual {p0, v1}, Lorg/spongycastle/math/ec/ECCurve$Fp;->fromBigInteger(Ljava/math/BigInteger;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v3
const/4 v1, 0x1
new-array v4, v1, [Lorg/spongycastle/math/ec/ECFieldElement;
iget-object v1, p1, Lorg/spongycastle/math/ec/ECPoint;->zs:[Lorg/spongycastle/math/ec/ECFieldElement;
aget-object v1, v1, v5
.line 641
invoke-virtual {v1}, Lorg/spongycastle/math/ec/ECFieldElement;->toBigInteger()Ljava/math/BigInteger;
move-result-object v1
invoke-virtual {p0, v1}, Lorg/spongycastle/math/ec/ECCurve$Fp;->fromBigInteger(Ljava/math/BigInteger;)Lorg/spongycastle/math/ec/ECFieldElement;
move-result-object v1
aput-object v1, v4, v5
iget-boolean v5, p1, Lorg/spongycastle/math/ec/ECPoint;->withCompression:Z
move-object v1, p0
invoke-direct/range {v0 .. v5}, Lorg/spongycastle/math/ec/ECPoint$Fp;-><init>(Lorg/spongycastle/math/ec/ECCurve;Lorg/spongycastle/math/ec/ECFieldElement;Lorg/spongycastle/math/ec/ECFieldElement;[Lorg/spongycastle/math/ec/ECFieldElement;Z)V
goto :goto_23
.line 633
:pswitch_data_52
.packed-switch 0x2
:pswitch_24
:pswitch_24
:pswitch_24
.end packed-switch
.end method
.method public supportsCoordinateSystem(I)Z
.registers 3
.prologue
.line 592
packed-switch p1, :pswitch_data_8
.line 600
:pswitch_3
const/4 v0, 0x0
:goto_4
return v0
.line 598
:pswitch_5
const/4 v0, 0x1
goto :goto_4
.line 592
nop
:pswitch_data_8
.packed-switch 0x0
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_3
:pswitch_5
.end packed-switch
.end method