AbstractECMultiplier.smali
.class public abstract Lorg/spongycastle/math/ec/AbstractECMultiplier;
.super Ljava/lang/Object;
.source "AbstractECMultiplier.java"
# interfaces
.implements Lorg/spongycastle/math/ec/ECMultiplier;
# direct methods
.method public constructor <init>()V
.registers 1
.prologue
.line 5
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public multiply(Lorg/spongycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/spongycastle/math/ec/ECPoint;
.registers 5
.prologue
.line 9
invoke-virtual {p2}, Ljava/math/BigInteger;->signum()I
move-result v1
.line 10
if-eqz v1, :cond_c
invoke-virtual {p1}, Lorg/spongycastle/math/ec/ECPoint;->isInfinity()Z
move-result v0
if-eqz v0, :cond_15
.line 12
:cond_c
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;->getInfinity()Lorg/spongycastle/math/ec/ECPoint;
move-result-object v0
.line 22
:goto_14
return-object v0
.line 15
:cond_15
invoke-virtual {p2}, Ljava/math/BigInteger;->abs()Ljava/math/BigInteger;
move-result-object v0
invoke-virtual {p0, p1, v0}, Lorg/spongycastle/math/ec/AbstractECMultiplier;->multiplyPositive(Lorg/spongycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/spongycastle/math/ec/ECPoint;
move-result-object v0
.line 16
if-lez v1, :cond_24
.line 22
:goto_1f
invoke-static {v0}, Lorg/spongycastle/math/ec/ECAlgorithms;->validatePoint(Lorg/spongycastle/math/ec/ECPoint;)Lorg/spongycastle/math/ec/ECPoint;
move-result-object v0
goto :goto_14
.line 16
:cond_24
invoke-virtual {v0}, Lorg/spongycastle/math/ec/ECPoint;->negate()Lorg/spongycastle/math/ec/ECPoint;
move-result-object v0
goto :goto_1f
.end method
.method protected abstract multiplyPositive(Lorg/spongycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/spongycastle/math/ec/ECPoint;
.end method