h.smali
.class public final Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;
.super Ljava/lang/Object;
.source "DeterministicSeed.java"
# instance fields
.field creationTimeSeconds:J
.field private mnemonicCode:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field final seed:[B
# direct methods
.method public constructor <init>(Ljava/security/SecureRandom;Ljava/lang/String;J)V
.registers 8
.prologue
.line 93
.line 1120
const/4 v0, 0x1
const-string v1, "requested entropy size too large"
invoke-static {v0, v1}, Lcom/google/common/base/n;->checkArgument(ZLjava/lang/Object;)V
.line 1122
const/16 v0, 0x10
new-array v1, v0, [B
.line 1123
invoke-virtual {p1, v1}, Ljava/security/SecureRandom;->nextBytes([B)V
.line 93
invoke-static {p2}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
invoke-direct {p0, v1, v0, p3, p4}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;-><init>([BLjava/lang/String;J)V
.line 94
return-void
.end method
.method public constructor <init>([BLjava/lang/String;J)V
.registers 10
.prologue
const/4 v1, 0x1
const/4 v2, 0x0
.line 103
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 104
array-length v0, p1
rem-int/lit8 v0, v0, 0x4
if-nez v0, :cond_32
move v0, v1
:goto_b
const-string v3, "entropy size in bits not divisible by 32"
invoke-static {v0, v3}, Lcom/google/common/base/n;->checkArgument(ZLjava/lang/Object;)V
.line 105
array-length v0, p1
shl-int/lit8 v0, v0, 0x3
const/16 v3, 0x80
if-lt v0, v3, :cond_34
:goto_17
const-string v0, "entropy size too small"
invoke-static {v1, v0}, Lcom/google/common/base/n;->checkArgument(ZLjava/lang/Object;)V
.line 106
invoke-static {p2}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 109
:try_start_1f
sget-object v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/h;->Qz:Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/h;
invoke-virtual {v0, p1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/h;->toMnemonic([B)Ljava/util/List;
move-result-object v0
iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->mnemonicCode:Ljava/util/List;
:try_end_27
.catch Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/MnemonicException$MnemonicLengthException; {:try_start_1f .. :try_end_27} :catch_36
.line 114
iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->mnemonicCode:Ljava/util/List;
invoke-static {v0, p2}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/crypto/h;->toSeed(Ljava/util/List;Ljava/lang/String;)[B
move-result-object v0
iput-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->seed:[B
.line 116
iput-wide p3, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->creationTimeSeconds:J
.line 117
return-void
:cond_32
move v0, v2
.line 104
goto :goto_b
:cond_34
move v1, v2
.line 105
goto :goto_17
.line 110
:catch_36
move-exception v0
.line 112
new-instance v1, Ljava/lang/RuntimeException;
invoke-direct {v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v1
.end method
# virtual methods
.method public final equals(Ljava/lang/Object;)Z
.registers 9
.prologue
const/4 v6, 0x0
const/4 v0, 0x1
const/4 v1, 0x0
.line 204
if-ne p0, p1, :cond_6
.line 209
:cond_5
:goto_5
return v0
.line 205
:cond_6
if-eqz p1, :cond_12
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v3
if-eq v2, v3, :cond_14
:cond_12
move v0, v1
goto :goto_5
.line 206
:cond_14
check-cast p1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;
.line 207
iget-wide v2, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->creationTimeSeconds:J
iget-wide v4, p1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->creationTimeSeconds:J
cmp-long v2, v2, v4
if-nez v2, :cond_2e
.line 208
invoke-static {v6, v6}, Lcom/google/common/base/m;->equal(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_2e
iget-object v2, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->mnemonicCode:Ljava/util/List;
iget-object v3, p1, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->mnemonicCode:Ljava/util/List;
.line 209
invoke-static {v2, v3}, Lcom/google/common/base/m;->equal(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_5
:cond_2e
move v0, v1
.line 207
goto :goto_5
.end method
.method public final hashCode()I
.registers 5
.prologue
.line 214
const/4 v0, 0x3
new-array v0, v0, [Ljava/lang/Object;
const/4 v1, 0x0
iget-wide v2, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->creationTimeSeconds:J
invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v2
aput-object v2, v0, v1
const/4 v1, 0x1
const/4 v2, 0x0
aput-object v2, v0, v1
const/4 v1, 0x2
iget-object v2, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->mnemonicCode:Ljava/util/List;
aput-object v2, v0, v1
.line 2084
invoke-static {v0}, Ljava/util/Arrays;->hashCode([Ljava/lang/Object;)I
move-result v0
.line 214
return v0
.end method
.method public final isEncrypted()Z
.registers 3
.prologue
const/4 v1, 0x0
.line 129
iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->mnemonicCode:Ljava/util/List;
if-eqz v0, :cond_a
const/4 v0, 0x1
:goto_6
invoke-static {v0}, Lcom/google/common/base/n;->checkState(Z)V
.line 130
return v1
:cond_a
move v0, v1
.line 129
goto :goto_6
.end method
.method public final toString()Ljava/lang/String;
.registers 4
.prologue
.line 135
invoke-virtual {p0}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->isEncrypted()Z
new-instance v1, Ljava/lang/StringBuilder;
const-string v0, "DeterministicSeed "
invoke-direct {v1, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 1143
iget-object v0, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->seed:[B
if-eqz v0, :cond_2f
sget-object v0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->HEX:Lcom/google/common/io/BaseEncoding;
iget-object v2, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->seed:[B
invoke-virtual {v0, v2}, Lcom/google/common/io/BaseEncoding;->encode([B)Ljava/lang/String;
move-result-object v0
.line 137
:goto_16
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, " "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/wallet/h;->mnemonicCode:Ljava/util/List;
invoke-static {v1}, Lcom/cmcm/safewallet/data/coinprovider/bch/bitcoinj/core/aq;->join(Ljava/lang/Iterable;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 135
return-object v0
.line 1143
:cond_2f
const/4 v0, 0x0
goto :goto_16
.end method