X9ECPoint.smali
.class public Lorg/spongycastle/asn1/x9/X9ECPoint;
.super Lorg/spongycastle/asn1/ASN1Object;
.source "X9ECPoint.java"
# instance fields
.field private c:Lorg/spongycastle/math/ec/ECCurve;
.field private final encoding:Lorg/spongycastle/asn1/ASN1OctetString;
.field private p:Lorg/spongycastle/math/ec/ECPoint;
# direct methods
.method public constructor <init>(Lorg/spongycastle/math/ec/ECCurve;Lorg/spongycastle/asn1/ASN1OctetString;)V
.registers 4
.prologue
.line 48
invoke-virtual {p2}, Lorg/spongycastle/asn1/ASN1OctetString;->getOctets()[B
move-result-object v0
invoke-direct {p0, p1, v0}, Lorg/spongycastle/asn1/x9/X9ECPoint;-><init>(Lorg/spongycastle/math/ec/ECCurve;[B)V
.line 49
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/math/ec/ECCurve;[B)V
.registers 5
.prologue
.line 39
invoke-direct {p0}, Lorg/spongycastle/asn1/ASN1Object;-><init>()V
.line 40
iput-object p1, p0, Lorg/spongycastle/asn1/x9/X9ECPoint;->c:Lorg/spongycastle/math/ec/ECCurve;
.line 41
new-instance v0, Lorg/spongycastle/asn1/DEROctetString;
invoke-static {p2}, Lorg/spongycastle/util/Arrays;->clone([B)[B
move-result-object v1
invoke-direct {v0, v1}, Lorg/spongycastle/asn1/DEROctetString;-><init>([B)V
iput-object v0, p0, Lorg/spongycastle/asn1/x9/X9ECPoint;->encoding:Lorg/spongycastle/asn1/ASN1OctetString;
.line 42
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/math/ec/ECPoint;)V
.registers 3
.prologue
.line 25
const/4 v0, 0x0
invoke-direct {p0, p1, v0}, Lorg/spongycastle/asn1/x9/X9ECPoint;-><init>(Lorg/spongycastle/math/ec/ECPoint;Z)V
.line 26
return-void
.end method
.method public constructor <init>(Lorg/spongycastle/math/ec/ECPoint;Z)V
.registers 5
.prologue
.line 31
invoke-direct {p0}, Lorg/spongycastle/asn1/ASN1Object;-><init>()V
.line 32
invoke-virtual {p1}, Lorg/spongycastle/math/ec/ECPoint;->normalize()Lorg/spongycastle/math/ec/ECPoint;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/asn1/x9/X9ECPoint;->p:Lorg/spongycastle/math/ec/ECPoint;
.line 33
new-instance v0, Lorg/spongycastle/asn1/DEROctetString;
invoke-virtual {p1, p2}, Lorg/spongycastle/math/ec/ECPoint;->getEncoded(Z)[B
move-result-object v1
invoke-direct {v0, v1}, Lorg/spongycastle/asn1/DEROctetString;-><init>([B)V
iput-object v0, p0, Lorg/spongycastle/asn1/x9/X9ECPoint;->encoding:Lorg/spongycastle/asn1/ASN1OctetString;
.line 34
return-void
.end method
# virtual methods
.method public getPoint()Lorg/spongycastle/math/ec/ECPoint;
.registers 3
.prologue
.line 58
iget-object v0, p0, Lorg/spongycastle/asn1/x9/X9ECPoint;->p:Lorg/spongycastle/math/ec/ECPoint;
if-nez v0, :cond_16
.line 60
iget-object v0, p0, Lorg/spongycastle/asn1/x9/X9ECPoint;->c:Lorg/spongycastle/math/ec/ECCurve;
iget-object v1, p0, Lorg/spongycastle/asn1/x9/X9ECPoint;->encoding:Lorg/spongycastle/asn1/ASN1OctetString;
invoke-virtual {v1}, Lorg/spongycastle/asn1/ASN1OctetString;->getOctets()[B
move-result-object v1
invoke-virtual {v0, v1}, Lorg/spongycastle/math/ec/ECCurve;->decodePoint([B)Lorg/spongycastle/math/ec/ECPoint;
move-result-object v0
invoke-virtual {v0}, Lorg/spongycastle/math/ec/ECPoint;->normalize()Lorg/spongycastle/math/ec/ECPoint;
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/asn1/x9/X9ECPoint;->p:Lorg/spongycastle/math/ec/ECPoint;
.line 63
:cond_16
iget-object v0, p0, Lorg/spongycastle/asn1/x9/X9ECPoint;->p:Lorg/spongycastle/math/ec/ECPoint;
return-object v0
.end method
.method public getPointEncoding()[B
.registers 2
.prologue
.line 53
iget-object v0, p0, Lorg/spongycastle/asn1/x9/X9ECPoint;->encoding:Lorg/spongycastle/asn1/ASN1OctetString;
invoke-virtual {v0}, Lorg/spongycastle/asn1/ASN1OctetString;->getOctets()[B
move-result-object v0
invoke-static {v0}, Lorg/spongycastle/util/Arrays;->clone([B)[B
move-result-object v0
return-object v0
.end method
.method public isPointCompressed()Z
.registers 5
.prologue
const/4 v0, 0x0
.line 68
iget-object v1, p0, Lorg/spongycastle/asn1/x9/X9ECPoint;->encoding:Lorg/spongycastle/asn1/ASN1OctetString;
invoke-virtual {v1}, Lorg/spongycastle/asn1/ASN1OctetString;->getOctets()[B
move-result-object v1
.line 69
if-eqz v1, :cond_17
array-length v2, v1
if-lez v2, :cond_17
aget-byte v2, v1, v0
const/4 v3, 0x2
if-eq v2, v3, :cond_16
aget-byte v1, v1, v0
const/4 v2, 0x3
if-ne v1, v2, :cond_17
:cond_16
const/4 v0, 0x1
:cond_17
return v0
.end method
.method public toASN1Primitive()Lorg/spongycastle/asn1/ASN1Primitive;
.registers 2
.prologue
.line 82
iget-object v0, p0, Lorg/spongycastle/asn1/x9/X9ECPoint;->encoding:Lorg/spongycastle/asn1/ASN1OctetString;
return-object v0
.end method