m.smali
.class public final Lcom/cmcm/safewallet/data/keystore/m;
.super Ljava/lang/Object;
.source "Crypto.java"
# interfaces
.implements Lcom/cmcm/safewallet/utils/q;
# static fields
.field public static WH:Ljava/lang/String;
.field private static WI:Ljava/lang/String;
.field public static WJ:Ljava/lang/String;
.field private static WK:Ljava/lang/String;
# instance fields
.field public WL:Ljava/lang/String;
.field public WM:Ljava/lang/String;
.field public WN:Lcom/cmcm/safewallet/data/keystore/j;
.field private WO:Ljava/lang/String;
.field public WP:Lcom/cmcm/safewallet/data/keystore/p;
.field public WQ:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 14
const-string v0, "scrypt"
sput-object v0, Lcom/cmcm/safewallet/data/keystore/m;->WH:Ljava/lang/String;
.line 15
const-string v0, "pbkdf2"
sput-object v0, Lcom/cmcm/safewallet/data/keystore/m;->WI:Ljava/lang/String;
.line 16
const-string v0, "aes-128-ctr"
sput-object v0, Lcom/cmcm/safewallet/data/keystore/m;->WJ:Ljava/lang/String;
.line 17
const-string v0, "aes-128-cbc"
sput-object v0, Lcom/cmcm/safewallet/data/keystore/m;->WK:Ljava/lang/String;
.line 18
return-void
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 26
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 28
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Ljava/lang/String;Lcom/cmcm/safewallet/data/keystore/j;Ljava/lang/String;Lcom/cmcm/safewallet/data/keystore/p;Ljava/lang/String;)V
.registers 7
.prologue
.line 30
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 31
iput-object p1, p0, Lcom/cmcm/safewallet/data/keystore/m;->WL:Ljava/lang/String;
.line 32
iput-object p2, p0, Lcom/cmcm/safewallet/data/keystore/m;->WM:Ljava/lang/String;
.line 33
iput-object p3, p0, Lcom/cmcm/safewallet/data/keystore/m;->WN:Lcom/cmcm/safewallet/data/keystore/j;
.line 34
iput-object p4, p0, Lcom/cmcm/safewallet/data/keystore/m;->WO:Ljava/lang/String;
.line 35
iput-object p5, p0, Lcom/cmcm/safewallet/data/keystore/m;->WP:Lcom/cmcm/safewallet/data/keystore/p;
.line 36
iput-object p6, p0, Lcom/cmcm/safewallet/data/keystore/m;->WQ:Ljava/lang/String;
.line 37
return-void
.end method
.method public static b(Lorg/json/JSONObject;)Lcom/cmcm/safewallet/data/keystore/m;
.registers 2
.prologue
.line 107
new-instance v0, Lcom/cmcm/safewallet/data/keystore/m;
invoke-direct {v0}, Lcom/cmcm/safewallet/data/keystore/m;-><init>()V
.line 108
invoke-virtual {v0, p0}, Lcom/cmcm/safewallet/data/keystore/m;->a(Lorg/json/JSONObject;)Z
.line 109
return-object v0
.end method
# virtual methods
.method public final a(Lorg/json/JSONObject;)Z
.registers 3
.prologue
.line 115
.line 116
if-nez p1, :cond_4
.line 117
const/4 v0, 0x0
.line 131
:goto_3
return v0
.line 119
:cond_4
:try_start_4
const-string v0, "ciphertext"
invoke-virtual {p1, v0}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 1053
iput-object v0, p0, Lcom/cmcm/safewallet/data/keystore/m;->WM:Ljava/lang/String;
.line 120
const-string v0, "cipher"
invoke-virtual {p1, v0}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 2045
iput-object v0, p0, Lcom/cmcm/safewallet/data/keystore/m;->WL:Ljava/lang/String;
.line 121
const-string v0, "kdf"
invoke-virtual {p1, v0}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 2069
iput-object v0, p0, Lcom/cmcm/safewallet/data/keystore/m;->WO:Ljava/lang/String;
.line 122
const-string v0, "mac"
invoke-virtual {p1, v0}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 2085
iput-object v0, p0, Lcom/cmcm/safewallet/data/keystore/m;->WQ:Ljava/lang/String;
.line 3047
if-nez p1, :cond_31
.line 3048
const/4 v0, 0x0
.line 3061
:goto_27
iput-object v0, p0, Lcom/cmcm/safewallet/data/keystore/m;->WN:Lcom/cmcm/safewallet/data/keystore/j;
.line 125
invoke-static {p1}, Lcom/cmcm/safewallet/data/keystore/p;->c(Lorg/json/JSONObject;)Lcom/cmcm/safewallet/data/keystore/p;
move-result-object v0
.line 3077
iput-object v0, p0, Lcom/cmcm/safewallet/data/keystore/m;->WP:Lcom/cmcm/safewallet/data/keystore/p;
.line 131
:goto_2f
const/4 v0, 0x1
goto :goto_3
.line 3050
:cond_31
new-instance v0, Lcom/cmcm/safewallet/data/keystore/j;
invoke-direct {v0}, Lcom/cmcm/safewallet/data/keystore/j;-><init>()V
.line 3051
invoke-virtual {v0, p1}, Lcom/cmcm/safewallet/data/keystore/j;->a(Lorg/json/JSONObject;)Z
:try_end_39
.catch Ljava/lang/Exception; {:try_start_4 .. :try_end_39} :catch_3a
goto :goto_27
:catch_3a
move-exception v0
goto :goto_2f
.end method
.method public final toJSON()Lorg/json/JSONObject;
.registers 8
.prologue
const/4 v3, 0x1
const/4 v2, 0x0
.line 136
const/4 v1, 0x0
.line 138
:try_start_3
new-instance v0, Lorg/json/JSONObject;
invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V
:try_end_8
.catch Ljava/lang/Exception; {:try_start_3 .. :try_end_8} :catch_df
.line 3090
:try_start_8
sget-object v1, Lcom/cmcm/safewallet/data/keystore/m;->WK:Ljava/lang/String;
iget-object v4, p0, Lcom/cmcm/safewallet/data/keystore/m;->WL:Ljava/lang/String;
invoke-virtual {v1, v4}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v1
if-nez v1, :cond_1c
sget-object v1, Lcom/cmcm/safewallet/data/keystore/m;->WJ:Ljava/lang/String;
iget-object v4, p0, Lcom/cmcm/safewallet/data/keystore/m;->WL:Ljava/lang/String;
invoke-virtual {v1, v4}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_d0
.line 3095
:cond_1c
iget-object v1, p0, Lcom/cmcm/safewallet/data/keystore/m;->WO:Ljava/lang/String;
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_6f
iget-object v1, p0, Lcom/cmcm/safewallet/data/keystore/m;->WP:Lcom/cmcm/safewallet/data/keystore/p;
if-eqz v1, :cond_6f
iget-object v1, p0, Lcom/cmcm/safewallet/data/keystore/m;->WP:Lcom/cmcm/safewallet/data/keystore/p;
iget-object v4, p0, Lcom/cmcm/safewallet/data/keystore/m;->WO:Ljava/lang/String;
.line 4070
sget-object v5, Lcom/cmcm/safewallet/data/keystore/m;->WH:Ljava/lang/String;
invoke-virtual {v5, v4}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_a5
.line 4071
iget v4, v1, Lcom/cmcm/safewallet/data/keystore/p;->dklen:I
sget v5, Lcom/cmcm/safewallet/data/keystore/p;->WY:I
if-ne v4, v5, :cond_cd
iget v4, v1, Lcom/cmcm/safewallet/data/keystore/p;->n:I
if-eqz v4, :cond_cd
iget v4, v1, Lcom/cmcm/safewallet/data/keystore/p;->p:I
if-eqz v4, :cond_cd
iget v1, v1, Lcom/cmcm/safewallet/data/keystore/p;->r:I
if-eqz v1, :cond_cd
move v1, v3
.line 3097
:goto_47
if-nez v1, :cond_6f
iget-object v1, p0, Lcom/cmcm/safewallet/data/keystore/m;->WL:Ljava/lang/String;
.line 3098
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_6f
iget-object v1, p0, Lcom/cmcm/safewallet/data/keystore/m;->WM:Ljava/lang/String;
.line 3099
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_6f
iget-object v1, p0, Lcom/cmcm/safewallet/data/keystore/m;->WN:Lcom/cmcm/safewallet/data/keystore/j;
if-eqz v1, :cond_6f
iget-object v1, p0, Lcom/cmcm/safewallet/data/keystore/m;->WN:Lcom/cmcm/safewallet/data/keystore/j;
.line 5057
iget-object v1, v1, Lcom/cmcm/safewallet/data/keystore/j;->WB:Ljava/lang/String;
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
.line 3101
if-nez v1, :cond_6f
iget-object v1, p0, Lcom/cmcm/safewallet/data/keystore/m;->WQ:Ljava/lang/String;
.line 3102
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_d0
:cond_6f
move v1, v3
.line 139
:goto_70
if-eqz v1, :cond_d2
.line 140
const-string v1, "cipher"
iget-object v2, p0, Lcom/cmcm/safewallet/data/keystore/m;->WL:Ljava/lang/String;
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
.line 144
:goto_79
iget-object v1, p0, Lcom/cmcm/safewallet/data/keystore/m;->WN:Lcom/cmcm/safewallet/data/keystore/j;
invoke-virtual {v1}, Lcom/cmcm/safewallet/data/keystore/j;->toJSON()Lorg/json/JSONObject;
move-result-object v1
.line 145
const-string v2, "cipherparams"
invoke-virtual {v0, v2, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
.line 146
const-string v1, "ciphertext"
iget-object v2, p0, Lcom/cmcm/safewallet/data/keystore/m;->WM:Ljava/lang/String;
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
.line 147
const-string v1, "kdf"
iget-object v2, p0, Lcom/cmcm/safewallet/data/keystore/m;->WO:Ljava/lang/String;
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
.line 148
iget-object v1, p0, Lcom/cmcm/safewallet/data/keystore/m;->WP:Lcom/cmcm/safewallet/data/keystore/p;
invoke-virtual {v1}, Lcom/cmcm/safewallet/data/keystore/p;->toJSON()Lorg/json/JSONObject;
move-result-object v1
.line 149
const-string v2, "kdfparams"
invoke-virtual {v0, v2, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
.line 150
const-string v1, "mac"
iget-object v2, p0, Lcom/cmcm/safewallet/data/keystore/m;->WQ:Ljava/lang/String;
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
.line 155
:goto_a4
return-object v0
.line 4073
:cond_a5
sget-object v5, Lcom/cmcm/safewallet/data/keystore/m;->WI:Ljava/lang/String;
invoke-virtual {v5, v4}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v4
if-eqz v4, :cond_ca
.line 4074
iget v4, v1, Lcom/cmcm/safewallet/data/keystore/p;->dklen:I
sget v5, Lcom/cmcm/safewallet/data/keystore/p;->WY:I
if-ne v4, v5, :cond_cd
iget v4, v1, Lcom/cmcm/safewallet/data/keystore/p;->c:I
if-eqz v4, :cond_cd
iget-object v4, v1, Lcom/cmcm/safewallet/data/keystore/p;->prf:Ljava/lang/String;
invoke-static {v4}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
if-nez v4, :cond_cd
iget-object v1, v1, Lcom/cmcm/safewallet/data/keystore/p;->salt:Ljava/lang/String;
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_cd
move v1, v3
.line 4075
goto/16 :goto_47
:cond_ca
move v1, v2
.line 4077
goto/16 :goto_47
:cond_cd
move v1, v2
.line 4079
goto/16 :goto_47
:cond_d0
move v1, v2
.line 3102
goto :goto_70
.line 142
:cond_d2
const-string v1, "cipher"
const-string v2, "invalid"
invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
:try_end_d9
.catch Ljava/lang/Exception; {:try_start_8 .. :try_end_d9} :catch_da
goto :goto_79
.line 152
:catch_da
move-exception v1
:goto_db
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_a4
:catch_df
move-exception v0
move-object v6, v0
move-object v0, v1
move-object v1, v6
goto :goto_db
.end method