i.smali
.class public final Lcom/subgraph/orchid/crypto/i;
.super Ljava/lang/Object;
.source "RSAKeyEncoder.java"
# instance fields
.field final bFW:Lcom/subgraph/orchid/crypto/a;
# direct methods
.method public constructor <init>()V
.registers 2
.prologue
.line 18
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 22
new-instance v0, Lcom/subgraph/orchid/crypto/a;
invoke-direct {v0}, Lcom/subgraph/orchid/crypto/a;-><init>()V
iput-object v0, p0, Lcom/subgraph/orchid/crypto/i;->bFW:Lcom/subgraph/orchid/crypto/a;
return-void
.end method
.method private static a(Lcom/subgraph/orchid/crypto/e;)Ljava/math/BigInteger;
.registers 2
.prologue
.line 90
instance-of v0, p0, Lcom/subgraph/orchid/crypto/d;
if-nez v0, :cond_a
.line 91
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v0
.line 93
:cond_a
check-cast p0, Lcom/subgraph/orchid/crypto/d;
.line 3038
iget-object v0, p0, Lcom/subgraph/orchid/crypto/d;->value:Ljava/math/BigInteger;
.line 94
return-object v0
.end method
.method static b(Lcom/subgraph/orchid/crypto/e;)Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/subgraph/orchid/crypto/e;",
")",
"Ljava/util/List",
"<",
"Lcom/subgraph/orchid/crypto/e;",
">;"
}
.end annotation
.prologue
.line 99
instance-of v0, p0, Lcom/subgraph/orchid/crypto/f;
if-eqz v0, :cond_18
.line 100
check-cast p0, Lcom/subgraph/orchid/crypto/f;
.line 4028
iget-object v0, p0, Lcom/subgraph/orchid/crypto/f;->items:Ljava/util/List;
.line 101
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
const/4 v1, 0x2
if-eq v0, v1, :cond_15
.line 102
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v0
.line 5028
:cond_15
iget-object v0, p0, Lcom/subgraph/orchid/crypto/f;->items:Ljava/util/List;
.line 104
return-object v0
.line 106
:cond_18
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v0
.end method
# virtual methods
.method public final gI(Ljava/lang/String;)Ljava/security/interfaces/RSAPublicKey;
.registers 5
.prologue
const/4 v2, -0x1
.line 35
.line 1123
:try_start_1
const-string v0, "-----BEGIN RSA PUBLIC KEY-----"
invoke-virtual {p1, v0}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v0
.line 1124
const-string v1, "-----END RSA PUBLIC KEY-----"
invoke-virtual {p1, v1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v1
.line 1125
if-eq v0, v2, :cond_13
if-eq v1, v2, :cond_13
if-gt v1, v0, :cond_22
.line 1126
:cond_13
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "PEM object not formatted with expected header and footer"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_1b
.catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1b} :catch_1b
.line 43
:catch_1b
move-exception v0
new-instance v0, Ljava/security/InvalidKeyException;
invoke-direct {v0}, Ljava/security/InvalidKeyException;-><init>()V
throw v0
.line 1128
:cond_22
add-int/lit8 v0, v0, 0x1e
:try_start_24
invoke-virtual {p1, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
.line 1119
invoke-static {v0}, Lcom/subgraph/orchid/encoders/a;->decode(Ljava/lang/String;)[B
move-result-object v0
.line 36
invoke-static {v0}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;
move-result-object v0
.line 37
iget-object v1, p0, Lcom/subgraph/orchid/crypto/i;->bFW:Lcom/subgraph/orchid/crypto/a;
invoke-virtual {v1, v0}, Lcom/subgraph/orchid/crypto/a;->b(Ljava/nio/ByteBuffer;)Lcom/subgraph/orchid/crypto/e;
move-result-object v0
.line 38
invoke-static {v0}, Lcom/subgraph/orchid/crypto/i;->b(Lcom/subgraph/orchid/crypto/e;)Ljava/util/List;
move-result-object v1
.line 39
const/4 v0, 0x0
invoke-interface {v1, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/subgraph/orchid/crypto/e;
invoke-static {v0}, Lcom/subgraph/orchid/crypto/i;->a(Lcom/subgraph/orchid/crypto/e;)Ljava/math/BigInteger;
move-result-object v2
.line 40
const/4 v0, 0x1
invoke-interface {v1, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/subgraph/orchid/crypto/e;
invoke-static {v0}, Lcom/subgraph/orchid/crypto/i;->a(Lcom/subgraph/orchid/crypto/e;)Ljava/math/BigInteger;
move-result-object v0
.line 2048
new-instance v1, Ljava/security/spec/RSAPublicKeySpec;
invoke-direct {v1, v2, v0}, Ljava/security/spec/RSAPublicKeySpec;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
.line 2049
const-string v0, "RSA"
invoke-static {v0}, Ljava/security/KeyFactory;->getInstance(Ljava/lang/String;)Ljava/security/KeyFactory;
move-result-object v0
.line 2050
invoke-virtual {v0, v1}, Ljava/security/KeyFactory;->generatePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
move-result-object v0
check-cast v0, Ljava/security/interfaces/RSAPublicKey;
:try_end_61
.catch Ljava/lang/IllegalArgumentException; {:try_start_24 .. :try_end_61} :catch_1b
.line 41
return-object v0
.end method