OpenSSLECPointContext.smali
.class final Lorg/conscrypt/OpenSSLECPointContext;
.super Ljava/lang/Object;
.source ""
# instance fields
.field private final group:Lorg/conscrypt/OpenSSLECGroupContext;
.field private final pointCtx:Lorg/conscrypt/NativeRef$EC_POINT;
# direct methods
.method constructor <init>(Lorg/conscrypt/OpenSSLECGroupContext;Lorg/conscrypt/NativeRef$EC_POINT;)V
.registers 3
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lorg/conscrypt/OpenSSLECPointContext;->group:Lorg/conscrypt/OpenSSLECGroupContext;
iput-object p2, p0, Lorg/conscrypt/OpenSSLECPointContext;->pointCtx:Lorg/conscrypt/NativeRef$EC_POINT;
return-void
.end method
.method static getInstance(Lorg/conscrypt/OpenSSLECGroupContext;Ljava/security/spec/ECPoint;)Lorg/conscrypt/OpenSSLECPointContext;
.registers 6
new-instance v0, Lorg/conscrypt/OpenSSLECPointContext;
new-instance v1, Lorg/conscrypt/NativeRef$EC_POINT;
invoke-virtual {p0}, Lorg/conscrypt/OpenSSLECGroupContext;->getNativeRef()Lorg/conscrypt/NativeRef$EC_GROUP;
move-result-object v2
invoke-static {v2}, Lorg/conscrypt/NativeCrypto;->EC_POINT_new(Lorg/conscrypt/NativeRef$EC_GROUP;)J
move-result-wide v2
invoke-direct {v1, v2, v3}, Lorg/conscrypt/NativeRef$EC_POINT;-><init>(J)V
invoke-direct {v0, p0, v1}, Lorg/conscrypt/OpenSSLECPointContext;-><init>(Lorg/conscrypt/OpenSSLECGroupContext;Lorg/conscrypt/NativeRef$EC_POINT;)V
invoke-virtual {p0}, Lorg/conscrypt/OpenSSLECGroupContext;->getNativeRef()Lorg/conscrypt/NativeRef$EC_GROUP;
move-result-object p0
invoke-virtual {v0}, Lorg/conscrypt/OpenSSLECPointContext;->getNativeRef()Lorg/conscrypt/NativeRef$EC_POINT;
move-result-object v1
invoke-virtual {p1}, Ljava/security/spec/ECPoint;->getAffineX()Ljava/math/BigInteger;
move-result-object v2
invoke-virtual {v2}, Ljava/math/BigInteger;->toByteArray()[B
move-result-object v2
invoke-virtual {p1}, Ljava/security/spec/ECPoint;->getAffineY()Ljava/math/BigInteger;
move-result-object p1
invoke-virtual {p1}, Ljava/math/BigInteger;->toByteArray()[B
move-result-object p1
invoke-static {p0, v1, v2, p1}, Lorg/conscrypt/NativeCrypto;->EC_POINT_set_affine_coordinates(Lorg/conscrypt/NativeRef$EC_GROUP;Lorg/conscrypt/NativeRef$EC_POINT;[B[B)V
return-object v0
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.registers 3
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string v0, "OpenSSLECPointContext.equals is not defined."
invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method getECPoint()Ljava/security/spec/ECPoint;
.registers 5
iget-object v0, p0, Lorg/conscrypt/OpenSSLECPointContext;->group:Lorg/conscrypt/OpenSSLECGroupContext;
invoke-virtual {v0}, Lorg/conscrypt/OpenSSLECGroupContext;->getNativeRef()Lorg/conscrypt/NativeRef$EC_GROUP;
move-result-object v0
iget-object v1, p0, Lorg/conscrypt/OpenSSLECPointContext;->pointCtx:Lorg/conscrypt/NativeRef$EC_POINT;
invoke-static {v0, v1}, Lorg/conscrypt/NativeCrypto;->EC_POINT_get_affine_coordinates(Lorg/conscrypt/NativeRef$EC_GROUP;Lorg/conscrypt/NativeRef$EC_POINT;)[[B
move-result-object v0
new-instance v1, Ljava/math/BigInteger;
const/4 v2, 0x0
aget-object v2, v0, v2
invoke-direct {v1, v2}, Ljava/math/BigInteger;-><init>([B)V
new-instance v2, Ljava/math/BigInteger;
const/4 v3, 0x1
aget-object v0, v0, v3
invoke-direct {v2, v0}, Ljava/math/BigInteger;-><init>([B)V
new-instance v0, Ljava/security/spec/ECPoint;
invoke-direct {v0, v1, v2}, Ljava/security/spec/ECPoint;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
return-object v0
.end method
.method getNativeRef()Lorg/conscrypt/NativeRef$EC_POINT;
.registers 2
iget-object v0, p0, Lorg/conscrypt/OpenSSLECPointContext;->pointCtx:Lorg/conscrypt/NativeRef$EC_POINT;
return-object v0
.end method
.method public hashCode()I
.registers 2
invoke-super {p0}, Ljava/lang/Object;->hashCode()I
move-result v0
return v0
.end method