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