EncryptUtils.smali
.class public final Lcom/blankj/utilcode/util/EncryptUtils;
.super Ljava/lang/Object;
.source "EncryptUtils.java"
# static fields
.field private static final HEX_DIGITS:[C
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 1197
const/16 v0, 0x10
new-array v0, v0, [C
fill-array-data v0, :array_a
sput-object v0, Lcom/blankj/utilcode/util/EncryptUtils;->HEX_DIGITS:[C
return-void
:array_a
.array-data 2
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x41s
0x42s
0x43s
0x44s
0x45s
0x46s
.end array-data
.end method
.method private constructor <init>()V
.registers 3
.line 40
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 41
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string/jumbo v1, "u can\'t instantiate me..."
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private static base64Decode([B)[B
.registers 2
.param p0, "input" # [B
.line 1242
const/4 v0, 0x2
invoke-static {p0, v0}, Landroid/util/Base64;->decode([BI)[B
move-result-object v0
return-object v0
.end method
.method private static base64Encode([B)[B
.registers 2
.param p0, "input" # [B
.line 1238
const/4 v0, 0x2
invoke-static {p0, v0}, Landroid/util/Base64;->encode([BI)[B
move-result-object v0
return-object v0
.end method
.method private static bytes2HexString([B)Ljava/lang/String;
.registers 8
.param p0, "bytes" # [B
.line 1201
const-string v0, ""
if-nez p0, :cond_5
return-object v0
.line 1202
:cond_5
array-length v1, p0
.line 1203
.local v1, "len":I
if-gtz v1, :cond_9
return-object v0
.line 1204
:cond_9
shl-int/lit8 v0, v1, 0x1
new-array v0, v0, [C
.line 1205
.local v0, "ret":[C
const/4 v2, 0x0
.local v2, "i":I
const/4 v3, 0x0
.local v3, "j":I
:goto_f
if-ge v2, v1, :cond_2c
.line 1206
add-int/lit8 v4, v3, 0x1
.end local v3 # "j":I
.local v4, "j":I
sget-object v5, Lcom/blankj/utilcode/util/EncryptUtils;->HEX_DIGITS:[C
aget-byte v6, p0, v2
shr-int/lit8 v6, v6, 0x4
and-int/lit8 v6, v6, 0xf
aget-char v6, v5, v6
aput-char v6, v0, v3
.line 1207
add-int/lit8 v3, v4, 0x1
.end local v4 # "j":I
.restart local v3 # "j":I
aget-byte v6, p0, v2
and-int/lit8 v6, v6, 0xf
aget-char v5, v5, v6
aput-char v5, v0, v4
.line 1205
add-int/lit8 v2, v2, 0x1
goto :goto_f
.line 1209
.end local v2 # "i":I
.end local v3 # "j":I
:cond_2c
new-instance v2, Ljava/lang/String;
invoke-direct {v2, v0}, Ljava/lang/String;-><init>([C)V
return-object v2
.end method
.method public static decrypt3DES([B[BLjava/lang/String;[B)[B
.registers 10
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 821
const-string v2, "DESede"
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move-object v3, p2
move-object v4, p3
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/EncryptUtils;->symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
move-result-object v0
return-object v0
.end method
.method public static decryptAES([B[BLjava/lang/String;[B)[B
.registers 10
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 927
const-string v2, "AES"
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move-object v3, p2
move-object v4, p3
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/EncryptUtils;->symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
move-result-object v0
return-object v0
.end method
.method public static decryptBase64AES([B[BLjava/lang/String;[B)[B
.registers 5
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 893
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->base64Decode([B)[B
move-result-object v0
invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decryptAES([B[BLjava/lang/String;[B)[B
move-result-object v0
return-object v0
.end method
.method public static decryptBase64DES([B[BLjava/lang/String;[B)[B
.registers 5
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 681
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->base64Decode([B)[B
move-result-object v0
invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decryptDES([B[BLjava/lang/String;[B)[B
move-result-object v0
return-object v0
.end method
.method public static decryptBase64RSA([B[BILjava/lang/String;)[B
.registers 5
.param p0, "data" # [B
.param p1, "privateKey" # [B
.param p2, "keySize" # I
.param p3, "transformation" # Ljava/lang/String;
.line 1035
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->base64Decode([B)[B
move-result-object v0
invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decryptRSA([B[BILjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static decryptBase64_3DES([B[BLjava/lang/String;[B)[B
.registers 5
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 787
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->base64Decode([B)[B
move-result-object v0
invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decrypt3DES([B[BLjava/lang/String;[B)[B
move-result-object v0
return-object v0
.end method
.method public static decryptDES([B[BLjava/lang/String;[B)[B
.registers 10
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 715
const-string v2, "DES"
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move-object v3, p2
move-object v4, p3
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/EncryptUtils;->symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
move-result-object v0
return-object v0
.end method
.method public static decryptHexString3DES(Ljava/lang/String;[BLjava/lang/String;[B)[B
.registers 5
.param p0, "data" # Ljava/lang/String;
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 804
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->hexString2Bytes(Ljava/lang/String;)[B
move-result-object v0
invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decrypt3DES([B[BLjava/lang/String;[B)[B
move-result-object v0
return-object v0
.end method
.method public static decryptHexStringAES(Ljava/lang/String;[BLjava/lang/String;[B)[B
.registers 5
.param p0, "data" # Ljava/lang/String;
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 910
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->hexString2Bytes(Ljava/lang/String;)[B
move-result-object v0
invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decryptAES([B[BLjava/lang/String;[B)[B
move-result-object v0
return-object v0
.end method
.method public static decryptHexStringDES(Ljava/lang/String;[BLjava/lang/String;[B)[B
.registers 5
.param p0, "data" # Ljava/lang/String;
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 698
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->hexString2Bytes(Ljava/lang/String;)[B
move-result-object v0
invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decryptDES([B[BLjava/lang/String;[B)[B
move-result-object v0
return-object v0
.end method
.method public static decryptHexStringRSA(Ljava/lang/String;[BILjava/lang/String;)[B
.registers 5
.param p0, "data" # Ljava/lang/String;
.param p1, "privateKey" # [B
.param p2, "keySize" # I
.param p3, "transformation" # Ljava/lang/String;
.line 1051
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->hexString2Bytes(Ljava/lang/String;)[B
move-result-object v0
invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decryptRSA([B[BILjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static decryptRSA([B[BILjava/lang/String;)[B
.registers 5
.param p0, "data" # [B
.param p1, "privateKey" # [B
.param p2, "keySize" # I
.param p3, "transformation" # Ljava/lang/String;
.line 1067
const/4 v0, 0x0
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->rsaTemplate([B[BILjava/lang/String;Z)[B
move-result-object v0
return-object v0
.end method
.method public static encrypt3DES([B[BLjava/lang/String;[B)[B
.registers 10
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 770
const-string v2, "DESede"
const/4 v5, 0x1
move-object v0, p0
move-object v1, p1
move-object v3, p2
move-object v4, p3
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/EncryptUtils;->symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
move-result-object v0
return-object v0
.end method
.method public static encrypt3DES2Base64([B[BLjava/lang/String;[B)[B
.registers 5
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 736
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encrypt3DES([B[BLjava/lang/String;[B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->base64Encode([B)[B
move-result-object v0
return-object v0
.end method
.method public static encrypt3DES2HexString([B[BLjava/lang/String;[B)Ljava/lang/String;
.registers 5
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 753
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encrypt3DES([B[BLjava/lang/String;[B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptAES([B[BLjava/lang/String;[B)[B
.registers 10
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 876
const-string v2, "AES"
const/4 v5, 0x1
move-object v0, p0
move-object v1, p1
move-object v3, p2
move-object v4, p3
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/EncryptUtils;->symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
move-result-object v0
return-object v0
.end method
.method public static encryptAES2Base64([B[BLjava/lang/String;[B)[B
.registers 5
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 842
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptAES([B[BLjava/lang/String;[B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->base64Encode([B)[B
move-result-object v0
return-object v0
.end method
.method public static encryptAES2HexString([B[BLjava/lang/String;[B)Ljava/lang/String;
.registers 5
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 859
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptAES([B[BLjava/lang/String;[B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptDES([B[BLjava/lang/String;[B)[B
.registers 10
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 664
const-string v2, "DES"
const/4 v5, 0x1
move-object v0, p0
move-object v1, p1
move-object v3, p2
move-object v4, p3
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/EncryptUtils;->symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
move-result-object v0
return-object v0
.end method
.method public static encryptDES2Base64([B[BLjava/lang/String;[B)[B
.registers 5
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 630
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptDES([B[BLjava/lang/String;[B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->base64Encode([B)[B
move-result-object v0
return-object v0
.end method
.method public static encryptDES2HexString([B[BLjava/lang/String;[B)Ljava/lang/String;
.registers 5
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "transformation" # Ljava/lang/String;
.param p3, "iv" # [B
.line 647
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptDES([B[BLjava/lang/String;[B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptHmacMD5([B[B)[B
.registers 3
.param p0, "data" # [B
.param p1, "key" # [B
.line 416
const-string v0, "HmacMD5"
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hmacTemplate([B[BLjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encryptHmacMD5ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 4
.param p0, "data" # Ljava/lang/String;
.param p1, "key" # Ljava/lang/String;
.line 393
if-eqz p0, :cond_1e
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_1e
if-eqz p1, :cond_1e
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_11
goto :goto_1e
.line 394
:cond_11
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object v1
invoke-static {v0, v1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacMD5ToString([B[B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 393
:cond_1e
:goto_1e
const-string v0, ""
return-object v0
.end method
.method public static encryptHmacMD5ToString([B[B)Ljava/lang/String;
.registers 3
.param p0, "data" # [B
.param p1, "key" # [B
.line 405
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacMD5([B[B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptHmacSHA1([B[B)[B
.registers 3
.param p0, "data" # [B
.param p1, "key" # [B
.line 450
const-string v0, "HmacSHA1"
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hmacTemplate([B[BLjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encryptHmacSHA1ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 4
.param p0, "data" # Ljava/lang/String;
.param p1, "key" # Ljava/lang/String;
.line 427
if-eqz p0, :cond_1e
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_1e
if-eqz p1, :cond_1e
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_11
goto :goto_1e
.line 428
:cond_11
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object v1
invoke-static {v0, v1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA1ToString([B[B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 427
:cond_1e
:goto_1e
const-string v0, ""
return-object v0
.end method
.method public static encryptHmacSHA1ToString([B[B)Ljava/lang/String;
.registers 3
.param p0, "data" # [B
.param p1, "key" # [B
.line 439
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA1([B[B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptHmacSHA224([B[B)[B
.registers 3
.param p0, "data" # [B
.param p1, "key" # [B
.line 484
const-string v0, "HmacSHA224"
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hmacTemplate([B[BLjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encryptHmacSHA224ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 4
.param p0, "data" # Ljava/lang/String;
.param p1, "key" # Ljava/lang/String;
.line 461
if-eqz p0, :cond_1e
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_1e
if-eqz p1, :cond_1e
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_11
goto :goto_1e
.line 462
:cond_11
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object v1
invoke-static {v0, v1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA224ToString([B[B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 461
:cond_1e
:goto_1e
const-string v0, ""
return-object v0
.end method
.method public static encryptHmacSHA224ToString([B[B)Ljava/lang/String;
.registers 3
.param p0, "data" # [B
.param p1, "key" # [B
.line 473
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA224([B[B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptHmacSHA256([B[B)[B
.registers 3
.param p0, "data" # [B
.param p1, "key" # [B
.line 518
const-string v0, "HmacSHA256"
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hmacTemplate([B[BLjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encryptHmacSHA256ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 4
.param p0, "data" # Ljava/lang/String;
.param p1, "key" # Ljava/lang/String;
.line 495
if-eqz p0, :cond_1e
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_1e
if-eqz p1, :cond_1e
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_11
goto :goto_1e
.line 496
:cond_11
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object v1
invoke-static {v0, v1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA256ToString([B[B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 495
:cond_1e
:goto_1e
const-string v0, ""
return-object v0
.end method
.method public static encryptHmacSHA256ToString([B[B)Ljava/lang/String;
.registers 3
.param p0, "data" # [B
.param p1, "key" # [B
.line 507
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA256([B[B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptHmacSHA384([B[B)[B
.registers 3
.param p0, "data" # [B
.param p1, "key" # [B
.line 552
const-string v0, "HmacSHA384"
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hmacTemplate([B[BLjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encryptHmacSHA384ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 4
.param p0, "data" # Ljava/lang/String;
.param p1, "key" # Ljava/lang/String;
.line 529
if-eqz p0, :cond_1e
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_1e
if-eqz p1, :cond_1e
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_11
goto :goto_1e
.line 530
:cond_11
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object v1
invoke-static {v0, v1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA384ToString([B[B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 529
:cond_1e
:goto_1e
const-string v0, ""
return-object v0
.end method
.method public static encryptHmacSHA384ToString([B[B)Ljava/lang/String;
.registers 3
.param p0, "data" # [B
.param p1, "key" # [B
.line 541
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA384([B[B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptHmacSHA512([B[B)[B
.registers 3
.param p0, "data" # [B
.param p1, "key" # [B
.line 586
const-string v0, "HmacSHA512"
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hmacTemplate([B[BLjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encryptHmacSHA512ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 4
.param p0, "data" # Ljava/lang/String;
.param p1, "key" # Ljava/lang/String;
.line 563
if-eqz p0, :cond_1e
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_1e
if-eqz p1, :cond_1e
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_11
goto :goto_1e
.line 564
:cond_11
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object v1
invoke-static {v0, v1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA512ToString([B[B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 563
:cond_1e
:goto_1e
const-string v0, ""
return-object v0
.end method
.method public static encryptHmacSHA512ToString([B[B)Ljava/lang/String;
.registers 3
.param p0, "data" # [B
.param p1, "key" # [B
.line 575
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA512([B[B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptMD2([B)[B
.registers 2
.param p0, "data" # [B
.line 76
const-string v0, "MD2"
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encryptMD2ToString(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.param p0, "data" # Ljava/lang/String;
.line 55
if-eqz p0, :cond_12
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_9
goto :goto_12
.line 56
:cond_9
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD2ToString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 55
:cond_12
:goto_12
const-string v0, ""
return-object v0
.end method
.method public static encryptMD2ToString([B)Ljava/lang/String;
.registers 2
.param p0, "data" # [B
.line 66
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD2([B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptMD5([B)[B
.registers 2
.param p0, "data" # [B
.line 138
const-string v0, "MD5"
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encryptMD5File(Ljava/io/File;)[B
.registers 7
.param p0, "file" # Ljava/io/File;
.line 180
const/4 v0, 0x0
if-nez p0, :cond_4
return-object v0
.line 181
:cond_4
const/4 v1, 0x0
.line 184
.local v1, "fis":Ljava/io/FileInputStream;
:try_start_5
new-instance v2, Ljava/io/FileInputStream;
invoke-direct {v2, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
move-object v1, v2
.line 185
const-string v2, "MD5"
invoke-static {v2}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
move-result-object v2
.line 186
.local v2, "md":Ljava/security/MessageDigest;
new-instance v3, Ljava/security/DigestInputStream;
invoke-direct {v3, v1, v2}, Ljava/security/DigestInputStream;-><init>(Ljava/io/InputStream;Ljava/security/MessageDigest;)V
.line 187
.local v3, "digestInputStream":Ljava/security/DigestInputStream;
const/high16 v4, 0x40000
new-array v4, v4, [B
.line 189
.local v4, "buffer":[B
:cond_1a
invoke-virtual {v3, v4}, Ljava/security/DigestInputStream;->read([B)I
move-result v5
if-gtz v5, :cond_1a
.line 191
invoke-virtual {v3}, Ljava/security/DigestInputStream;->getMessageDigest()Ljava/security/MessageDigest;
move-result-object v5
move-object v2, v5
.line 192
invoke-virtual {v2}, Ljava/security/MessageDigest;->digest()[B
move-result-object v0
:try_end_29
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_5 .. :try_end_29} :catch_37
.catch Ljava/io/IOException; {:try_start_5 .. :try_end_29} :catch_35
.catchall {:try_start_5 .. :try_end_29} :catchall_33
.line 198
nop
.line 199
:try_start_2a
invoke-virtual {v1}, Ljava/io/FileInputStream;->close()V
:try_end_2d
.catch Ljava/io/IOException; {:try_start_2a .. :try_end_2d} :catch_2e
.line 203
goto :goto_32
.line 201
:catch_2e
move-exception v5
.line 202
.local v5, "e":Ljava/io/IOException;
invoke-virtual {v5}, Ljava/io/IOException;->printStackTrace()V
.line 192
.end local v5 # "e":Ljava/io/IOException;
:goto_32
return-object v0
.line 197
.end local v2 # "md":Ljava/security/MessageDigest;
.end local v3 # "digestInputStream":Ljava/security/DigestInputStream;
.end local v4 # "buffer":[B
:catchall_33
move-exception v0
goto :goto_49
.line 193
:catch_35
move-exception v2
goto :goto_38
:catch_37
move-exception v2
.line 194
.local v2, "e":Ljava/lang/Exception;
:goto_38
:try_start_38
invoke-virtual {v2}, Ljava/lang/Exception;->printStackTrace()V
:try_end_3b
.catchall {:try_start_38 .. :try_end_3b} :catchall_33
.line 195
nop
.line 198
if-eqz v1, :cond_47
.line 199
:try_start_3e
invoke-virtual {v1}, Ljava/io/FileInputStream;->close()V
:try_end_41
.catch Ljava/io/IOException; {:try_start_3e .. :try_end_41} :catch_42
goto :goto_47
.line 201
:catch_42
move-exception v3
.line 202
.local v3, "e":Ljava/io/IOException;
invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V
goto :goto_48
.line 203
.end local v3 # "e":Ljava/io/IOException;
:cond_47
:goto_47
nop
.line 195
:goto_48
return-object v0
.line 198
.end local v2 # "e":Ljava/lang/Exception;
:goto_49
if-eqz v1, :cond_54
.line 199
:try_start_4b
invoke-virtual {v1}, Ljava/io/FileInputStream;->close()V
:try_end_4e
.catch Ljava/io/IOException; {:try_start_4b .. :try_end_4e} :catch_4f
goto :goto_54
.line 201
:catch_4f
move-exception v2
.line 202
.local v2, "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
goto :goto_55
.line 203
.end local v2 # "e":Ljava/io/IOException;
:cond_54
:goto_54
nop
.line 204
:goto_55
goto :goto_57
:goto_56
throw v0
:goto_57
goto :goto_56
.end method
.method public static encryptMD5File(Ljava/lang/String;)[B
.registers 3
.param p0, "filePath" # Ljava/lang/String;
.line 159
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
goto :goto_d
:cond_8
new-instance v0, Ljava/io/File;
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 160
.local v0, "file":Ljava/io/File;
:goto_d
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5File(Ljava/io/File;)[B
move-result-object v1
return-object v1
.end method
.method public static encryptMD5File2String(Ljava/io/File;)Ljava/lang/String;
.registers 2
.param p0, "file" # Ljava/io/File;
.line 170
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5File(Ljava/io/File;)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptMD5File2String(Ljava/lang/String;)Ljava/lang/String;
.registers 3
.param p0, "filePath" # Ljava/lang/String;
.line 148
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
goto :goto_d
:cond_8
new-instance v0, Ljava/io/File;
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 149
.local v0, "file":Ljava/io/File;
:goto_d
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5File2String(Ljava/io/File;)Ljava/lang/String;
move-result-object v1
return-object v1
.end method
.method public static encryptMD5ToString(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.param p0, "data" # Ljava/lang/String;
.line 86
if-eqz p0, :cond_12
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_9
goto :goto_12
.line 87
:cond_9
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5ToString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 86
:cond_12
:goto_12
const-string v0, ""
return-object v0
.end method
.method public static encryptMD5ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 3
.param p0, "data" # Ljava/lang/String;
.param p1, "salt" # Ljava/lang/String;
.line 98
if-nez p0, :cond_7
if-nez p1, :cond_7
const-string v0, ""
return-object v0
.line 99
:cond_7
if-nez p1, :cond_16
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 100
:cond_16
if-nez p0, :cond_25
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 101
:cond_25
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptMD5ToString([B)Ljava/lang/String;
.registers 2
.param p0, "data" # [B
.line 111
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptMD5ToString([B[B)Ljava/lang/String;
.registers 6
.param p0, "data" # [B
.param p1, "salt" # [B
.line 122
if-nez p0, :cond_7
if-nez p1, :cond_7
const-string v0, ""
return-object v0
.line 123
:cond_7
if-nez p1, :cond_12
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 124
:cond_12
if-nez p0, :cond_1d
invoke-static {p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 125
:cond_1d
array-length v0, p0
array-length v1, p1
add-int/2addr v0, v1
new-array v0, v0, [B
.line 126
.local v0, "dataSalt":[B
array-length v1, p0
const/4 v2, 0x0
invoke-static {p0, v2, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 127
array-length v1, p0
array-length v3, p1
invoke-static {p1, v2, v0, v1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 128
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object v1
invoke-static {v1}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v1
return-object v1
.end method
.method public static encryptRSA([B[BILjava/lang/String;)[B
.registers 5
.param p0, "data" # [B
.param p1, "publicKey" # [B
.param p2, "keySize" # I
.param p3, "transformation" # Ljava/lang/String;
.line 1019
const/4 v0, 0x1
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->rsaTemplate([B[BILjava/lang/String;Z)[B
move-result-object v0
return-object v0
.end method
.method public static encryptRSA2Base64([B[BILjava/lang/String;)[B
.registers 5
.param p0, "data" # [B
.param p1, "publicKey" # [B
.param p2, "keySize" # I
.param p3, "transformation" # Ljava/lang/String;
.line 987
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptRSA([B[BILjava/lang/String;)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->base64Encode([B)[B
move-result-object v0
return-object v0
.end method
.method public static encryptRSA2HexString([B[BILjava/lang/String;)Ljava/lang/String;
.registers 5
.param p0, "data" # [B
.param p1, "publicKey" # [B
.param p2, "keySize" # I
.param p3, "transformation" # Ljava/lang/String;
.line 1003
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptRSA([B[BILjava/lang/String;)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptSHA1([B)[B
.registers 2
.param p0, "data" # [B
.line 235
const-string v0, "SHA-1"
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encryptSHA1ToString(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.param p0, "data" # Ljava/lang/String;
.line 214
if-eqz p0, :cond_12
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_9
goto :goto_12
.line 215
:cond_9
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA1ToString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 214
:cond_12
:goto_12
const-string v0, ""
return-object v0
.end method
.method public static encryptSHA1ToString([B)Ljava/lang/String;
.registers 2
.param p0, "data" # [B
.line 225
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA1([B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptSHA224([B)[B
.registers 2
.param p0, "data" # [B
.line 266
const-string v0, "SHA224"
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encryptSHA224ToString(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.param p0, "data" # Ljava/lang/String;
.line 245
if-eqz p0, :cond_12
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_9
goto :goto_12
.line 246
:cond_9
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA224ToString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 245
:cond_12
:goto_12
const-string v0, ""
return-object v0
.end method
.method public static encryptSHA224ToString([B)Ljava/lang/String;
.registers 2
.param p0, "data" # [B
.line 256
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA224([B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptSHA256([B)[B
.registers 2
.param p0, "data" # [B
.line 297
const-string v0, "SHA-256"
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encryptSHA256ToString(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.param p0, "data" # Ljava/lang/String;
.line 276
if-eqz p0, :cond_12
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_9
goto :goto_12
.line 277
:cond_9
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA256ToString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 276
:cond_12
:goto_12
const-string v0, ""
return-object v0
.end method
.method public static encryptSHA256ToString([B)Ljava/lang/String;
.registers 2
.param p0, "data" # [B
.line 287
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA256([B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptSHA384([B)[B
.registers 2
.param p0, "data" # [B
.line 328
const-string v0, "SHA-384"
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encryptSHA384ToString(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.param p0, "data" # Ljava/lang/String;
.line 307
if-eqz p0, :cond_12
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_9
goto :goto_12
.line 308
:cond_9
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA384ToString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 307
:cond_12
:goto_12
const-string v0, ""
return-object v0
.end method
.method public static encryptSHA384ToString([B)Ljava/lang/String;
.registers 2
.param p0, "data" # [B
.line 318
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA384([B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static encryptSHA512([B)[B
.registers 2
.param p0, "data" # [B
.line 359
const-string v0, "SHA-512"
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object v0
return-object v0
.end method
.method public static encryptSHA512ToString(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.param p0, "data" # Ljava/lang/String;
.line 338
if-eqz p0, :cond_12
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_9
goto :goto_12
.line 339
:cond_9
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA512ToString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 338
:cond_12
:goto_12
const-string v0, ""
return-object v0
.end method
.method public static encryptSHA512ToString([B)Ljava/lang/String;
.registers 2
.param p0, "data" # [B
.line 349
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA512([B)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method private static hashTemplate([BLjava/lang/String;)[B
.registers 4
.param p0, "data" # [B
.param p1, "algorithm" # Ljava/lang/String;
.line 370
const/4 v0, 0x0
if-eqz p0, :cond_18
array-length v1, p0
if-gtz v1, :cond_7
goto :goto_18
.line 372
:cond_7
:try_start_7
invoke-static {p1}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
move-result-object v1
.line 373
.local v1, "md":Ljava/security/MessageDigest;
invoke-virtual {v1, p0}, Ljava/security/MessageDigest;->update([B)V
.line 374
invoke-virtual {v1}, Ljava/security/MessageDigest;->digest()[B
move-result-object v0
:try_end_12
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_7 .. :try_end_12} :catch_13
return-object v0
.line 375
.end local v1 # "md":Ljava/security/MessageDigest;
:catch_13
move-exception v1
.line 376
.local v1, "e":Ljava/security/NoSuchAlgorithmException;
invoke-virtual {v1}, Ljava/security/NoSuchAlgorithmException;->printStackTrace()V
.line 377
return-object v0
.line 370
.end local v1 # "e":Ljava/security/NoSuchAlgorithmException;
:cond_18
:goto_18
return-object v0
.end method
.method private static hex2Dec(C)I
.registers 2
.param p0, "hexChar" # C
.line 1228
const/16 v0, 0x30
if-lt p0, v0, :cond_b
const/16 v0, 0x39
if-gt p0, v0, :cond_b
.line 1229
add-int/lit8 v0, p0, -0x30
return v0
.line 1230
:cond_b
const/16 v0, 0x41
if-lt p0, v0, :cond_18
const/16 v0, 0x46
if-gt p0, v0, :cond_18
.line 1231
add-int/lit8 v0, p0, -0x41
add-int/lit8 v0, v0, 0xa
return v0
.line 1233
:cond_18
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v0
.end method
.method private static hexString2Bytes(Ljava/lang/String;)[B
.registers 8
.param p0, "hexString" # Ljava/lang/String;
.line 1213
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
return-object v0
.line 1214
:cond_8
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
.line 1215
.local v0, "len":I
rem-int/lit8 v1, v0, 0x2
if-eqz v1, :cond_23
.line 1216
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "0"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
.line 1217
add-int/lit8 v0, v0, 0x1
.line 1219
:cond_23
invoke-virtual {p0}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/String;->toCharArray()[C
move-result-object v1
.line 1220
.local v1, "hexBytes":[C
shr-int/lit8 v2, v0, 0x1
new-array v2, v2, [B
.line 1221
.local v2, "ret":[B
const/4 v3, 0x0
.local v3, "i":I
:goto_30
if-ge v3, v0, :cond_4b
.line 1222
shr-int/lit8 v4, v3, 0x1
aget-char v5, v1, v3
invoke-static {v5}, Lcom/blankj/utilcode/util/EncryptUtils;->hex2Dec(C)I
move-result v5
shl-int/lit8 v5, v5, 0x4
add-int/lit8 v6, v3, 0x1
aget-char v6, v1, v6
invoke-static {v6}, Lcom/blankj/utilcode/util/EncryptUtils;->hex2Dec(C)I
move-result v6
or-int/2addr v5, v6
int-to-byte v5, v5
aput-byte v5, v2, v4
.line 1221
add-int/lit8 v3, v3, 0x2
goto :goto_30
.line 1224
.end local v3 # "i":I
:cond_4b
return-object v2
.end method
.method private static hmacTemplate([B[BLjava/lang/String;)[B
.registers 6
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "algorithm" # Ljava/lang/String;
.line 600
const/4 v0, 0x0
if-eqz p0, :cond_24
array-length v1, p0
if-eqz v1, :cond_24
if-eqz p1, :cond_24
array-length v1, p1
if-nez v1, :cond_c
goto :goto_24
.line 602
:cond_c
:try_start_c
new-instance v1, Ljavax/crypto/spec/SecretKeySpec;
invoke-direct {v1, p1, p2}, Ljavax/crypto/spec/SecretKeySpec;-><init>([BLjava/lang/String;)V
.line 603
.local v1, "secretKey":Ljavax/crypto/spec/SecretKeySpec;
invoke-static {p2}, Ljavax/crypto/Mac;->getInstance(Ljava/lang/String;)Ljavax/crypto/Mac;
move-result-object v2
.line 604
.local v2, "mac":Ljavax/crypto/Mac;
invoke-virtual {v2, v1}, Ljavax/crypto/Mac;->init(Ljava/security/Key;)V
.line 605
invoke-virtual {v2, p0}, Ljavax/crypto/Mac;->doFinal([B)[B
move-result-object v0
:try_end_1c
.catch Ljava/security/InvalidKeyException; {:try_start_c .. :try_end_1c} :catch_1f
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_c .. :try_end_1c} :catch_1d
return-object v0
.line 606
.end local v1 # "secretKey":Ljavax/crypto/spec/SecretKeySpec;
.end local v2 # "mac":Ljavax/crypto/Mac;
:catch_1d
move-exception v1
goto :goto_20
:catch_1f
move-exception v1
.line 607
.local v1, "e":Ljava/security/GeneralSecurityException;
:goto_20
invoke-virtual {v1}, Ljava/security/GeneralSecurityException;->printStackTrace()V
.line 608
return-object v0
.line 600
.end local v1 # "e":Ljava/security/GeneralSecurityException;
:cond_24
:goto_24
return-object v0
.end method
.method private static isSpace(Ljava/lang/String;)Z
.registers 5
.param p0, "s" # Ljava/lang/String;
.line 1246
const/4 v0, 0x1
if-nez p0, :cond_4
return v0
.line 1247
:cond_4
const/4 v1, 0x0
.local v1, "i":I
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v2
.local v2, "len":I
:goto_9
if-ge v1, v2, :cond_1a
.line 1248
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v3
invoke-static {v3}, Ljava/lang/Character;->isWhitespace(C)Z
move-result v3
if-nez v3, :cond_17
.line 1249
const/4 v0, 0x0
return v0
.line 1247
:cond_17
add-int/lit8 v1, v1, 0x1
goto :goto_9
.line 1252
.end local v1 # "i":I
.end local v2 # "len":I
:cond_1a
return v0
.end method
.method private static joins([B[B)[B
.registers 6
.param p0, "prefix" # [B
.param p1, "suffix" # [B
.line 1191
array-length v0, p0
array-length v1, p1
add-int/2addr v0, v1
new-array v0, v0, [B
.line 1192
.local v0, "ret":[B
array-length v1, p0
const/4 v2, 0x0
invoke-static {p0, v2, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1193
array-length v1, p0
array-length v3, p1
invoke-static {p1, v2, v0, v1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1194
return-object v0
.end method
.method public static rc4([B[B)[B
.registers 13
.param p0, "data" # [B
.param p1, "key" # [B
.line 1151
if-eqz p0, :cond_70
array-length v0, p0
if-eqz v0, :cond_70
if-nez p1, :cond_8
goto :goto_70
.line 1152
:cond_8
array-length v0, p1
const/4 v1, 0x1
if-lt v0, v1, :cond_68
array-length v0, p1
const/16 v1, 0x100
if-gt v0, v1, :cond_68
.line 1155
new-array v0, v1, [B
.line 1156
.local v0, "iS":[B
new-array v2, v1, [B
.line 1157
.local v2, "iK":[B
array-length v3, p1
.line 1158
.local v3, "keyLen":I
const/4 v4, 0x0
.local v4, "i":I
:goto_17
if-ge v4, v1, :cond_25
.line 1159
int-to-byte v5, v4
aput-byte v5, v0, v4
.line 1160
rem-int v5, v4, v3
aget-byte v5, p1, v5
aput-byte v5, v2, v4
.line 1158
add-int/lit8 v4, v4, 0x1
goto :goto_17
.line 1162
.end local v4 # "i":I
:cond_25
const/4 v4, 0x0
.line 1164
.local v4, "j":I
const/4 v5, 0x0
.local v5, "i":I
:goto_27
if-ge v5, v1, :cond_3c
.line 1165
aget-byte v6, v0, v5
add-int/2addr v6, v4
aget-byte v7, v2, v5
add-int/2addr v6, v7
and-int/lit16 v4, v6, 0xff
.line 1166
aget-byte v6, v0, v4
.line 1167
.local v6, "tmp":B
aget-byte v7, v0, v5
aput-byte v7, v0, v4
.line 1168
aput-byte v6, v0, v5
.line 1164
add-int/lit8 v5, v5, 0x1
goto :goto_27
.line 1171
.end local v5 # "i":I
.end local v6 # "tmp":B
:cond_3c
array-length v1, p0
new-array v1, v1, [B
.line 1172
.local v1, "ret":[B
const/4 v5, 0x0
.line 1173
.restart local v5 # "i":I
const/4 v6, 0x0
.local v6, "counter":I
:goto_41
array-length v7, p0
if-ge v6, v7, :cond_67
.line 1174
add-int/lit8 v7, v5, 0x1
and-int/lit16 v5, v7, 0xff
.line 1175
aget-byte v7, v0, v5
add-int/2addr v7, v4
and-int/lit16 v4, v7, 0xff
.line 1176
aget-byte v7, v0, v4
.line 1177
.local v7, "tmp":B
aget-byte v8, v0, v5
aput-byte v8, v0, v4
.line 1178
aput-byte v7, v0, v5
.line 1179
aget-byte v8, v0, v5
aget-byte v9, v0, v4
add-int/2addr v8, v9
and-int/lit16 v8, v8, 0xff
.line 1180
.local v8, "t":I
aget-byte v9, v0, v8
.line 1181
.local v9, "k":I
aget-byte v10, p0, v6
xor-int/2addr v10, v9
int-to-byte v10, v10
aput-byte v10, v1, v6
.line 1173
add-int/lit8 v6, v6, 0x1
goto :goto_41
.line 1183
.end local v6 # "counter":I
.end local v7 # "tmp":B
.end local v8 # "t":I
.end local v9 # "k":I
:cond_67
return-object v1
.line 1153
.end local v0 # "iS":[B
.end local v1 # "ret":[B
.end local v2 # "iK":[B
.end local v3 # "keyLen":I
.end local v4 # "j":I
.end local v5 # "i":I
:cond_68
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "key must be between 1 and 256 bytes"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 1151
:cond_70
:goto_70
const/4 v0, 0x0
return-object v0
.end method
.method private static rsaTemplate([B[BILjava/lang/String;Z)[B
.registers 19
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "keySize" # I
.param p3, "transformation" # Ljava/lang/String;
.param p4, "isEncrypt" # Z
.line 1085
move-object v1, p0
move-object v2, p1
const/4 v3, 0x0
if-eqz v1, :cond_a5
array-length v0, v1
if-eqz v0, :cond_a5
if-eqz v2, :cond_a5
array-length v0, v2
if-nez v0, :cond_f
goto/16 :goto_a5
.line 1090
:cond_f
const-string v0, "RSA"
if-eqz p4, :cond_21
.line 1091
:try_start_13
new-instance v4, Ljava/security/spec/X509EncodedKeySpec;
invoke-direct {v4, p1}, Ljava/security/spec/X509EncodedKeySpec;-><init>([B)V
.line 1092
.local v4, "keySpec":Ljava/security/spec/X509EncodedKeySpec;
invoke-static {v0}, Ljava/security/KeyFactory;->getInstance(Ljava/lang/String;)Ljava/security/KeyFactory;
move-result-object v0
invoke-virtual {v0, v4}, Ljava/security/KeyFactory;->generatePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
move-result-object v0
.line 1093
.end local v4 # "keySpec":Ljava/security/spec/X509EncodedKeySpec;
.local v0, "rsaKey":Ljava/security/Key;
goto :goto_2e
.line 1094
.end local v0 # "rsaKey":Ljava/security/Key;
:cond_21
new-instance v4, Ljava/security/spec/PKCS8EncodedKeySpec;
invoke-direct {v4, p1}, Ljava/security/spec/PKCS8EncodedKeySpec;-><init>([B)V
.line 1095
.local v4, "keySpec":Ljava/security/spec/PKCS8EncodedKeySpec;
invoke-static {v0}, Ljava/security/KeyFactory;->getInstance(Ljava/lang/String;)Ljava/security/KeyFactory;
move-result-object v0
invoke-virtual {v0, v4}, Ljava/security/KeyFactory;->generatePrivate(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
move-result-object v0
.line 1097
.end local v4 # "keySpec":Ljava/security/spec/PKCS8EncodedKeySpec;
.restart local v0 # "rsaKey":Ljava/security/Key;
:goto_2e
if-nez v0, :cond_31
return-object v3
.line 1098
:cond_31
invoke-static/range {p3 .. p3}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
move-result-object v4
.line 1099
.local v4, "cipher":Ljavax/crypto/Cipher;
if-eqz p4, :cond_39
const/4 v5, 0x1
goto :goto_3a
:cond_39
const/4 v5, 0x2
:goto_3a
invoke-virtual {v4, v5, v0}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V
.line 1100
array-length v5, v1
.line 1101
.local v5, "len":I
div-int/lit8 v6, p2, 0x8
.line 1102
.local v6, "maxLen":I
if-eqz p4, :cond_50
.line 1103
invoke-virtual/range {p3 .. p3}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v7
.line 1104
.local v7, "lowerTrans":Ljava/lang/String;
const-string v8, "pkcs1padding"
invoke-virtual {v7, v8}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v8
if-eqz v8, :cond_50
.line 1105
add-int/lit8 v6, v6, -0xb
.line 1108
.end local v7 # "lowerTrans":Ljava/lang/String;
:cond_50
div-int v7, v5, v6
.line 1109
.local v7, "count":I
if-lez v7, :cond_81
.line 1110
const/4 v8, 0x0
new-array v9, v8, [B
.line 1111
.local v9, "ret":[B
new-array v10, v6, [B
.line 1112
.local v10, "buff":[B
const/4 v11, 0x0
.line 1113
.local v11, "index":I
const/4 v12, 0x0
.local v12, "i":I
:goto_5b
if-ge v12, v7, :cond_6d
.line 1114
invoke-static {p0, v11, v10, v8, v6}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1115
invoke-virtual {v4, v10}, Ljavax/crypto/Cipher;->doFinal([B)[B
move-result-object v13
invoke-static {v9, v13}, Lcom/blankj/utilcode/util/EncryptUtils;->joins([B[B)[B
move-result-object v13
move-object v9, v13
.line 1116
add-int/2addr v11, v6
.line 1113
add-int/lit8 v12, v12, 0x1
goto :goto_5b
.line 1118
.end local v12 # "i":I
:cond_6d
if-eq v11, v5, :cond_80
.line 1119
sub-int v12, v5, v11
.line 1120
.local v12, "restLen":I
new-array v13, v12, [B
move-object v10, v13
.line 1121
invoke-static {p0, v11, v10, v8, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1122
invoke-virtual {v4, v10}, Ljavax/crypto/Cipher;->doFinal([B)[B
move-result-object v8
invoke-static {v9, v8}, Lcom/blankj/utilcode/util/EncryptUtils;->joins([B[B)[B
move-result-object v3
move-object v9, v3
.line 1124
.end local v12 # "restLen":I
:cond_80
return-object v9
.line 1126
.end local v9 # "ret":[B
.end local v10 # "buff":[B
.end local v11 # "index":I
:cond_81
invoke-virtual {v4, p0}, Ljavax/crypto/Cipher;->doFinal([B)[B
move-result-object v3
:try_end_85
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_13 .. :try_end_85} :catch_9f
.catch Ljavax/crypto/NoSuchPaddingException; {:try_start_13 .. :try_end_85} :catch_9a
.catch Ljava/security/InvalidKeyException; {:try_start_13 .. :try_end_85} :catch_95
.catch Ljavax/crypto/BadPaddingException; {:try_start_13 .. :try_end_85} :catch_90
.catch Ljavax/crypto/IllegalBlockSizeException; {:try_start_13 .. :try_end_85} :catch_8b
.catch Ljava/security/spec/InvalidKeySpecException; {:try_start_13 .. :try_end_85} :catch_86
return-object v3
.line 1138
.end local v0 # "rsaKey":Ljava/security/Key;
.end local v4 # "cipher":Ljavax/crypto/Cipher;
.end local v5 # "len":I
.end local v6 # "maxLen":I
.end local v7 # "count":I
:catch_86
move-exception v0
.line 1139
.local v0, "e":Ljava/security/spec/InvalidKeySpecException;
invoke-virtual {v0}, Ljava/security/spec/InvalidKeySpecException;->printStackTrace()V
goto :goto_a4
.line 1136
.end local v0 # "e":Ljava/security/spec/InvalidKeySpecException;
:catch_8b
move-exception v0
.line 1137
.local v0, "e":Ljavax/crypto/IllegalBlockSizeException;
invoke-virtual {v0}, Ljavax/crypto/IllegalBlockSizeException;->printStackTrace()V
.end local v0 # "e":Ljavax/crypto/IllegalBlockSizeException;
goto :goto_a3
.line 1134
:catch_90
move-exception v0
.line 1135
.local v0, "e":Ljavax/crypto/BadPaddingException;
invoke-virtual {v0}, Ljavax/crypto/BadPaddingException;->printStackTrace()V
.end local v0 # "e":Ljavax/crypto/BadPaddingException;
goto :goto_a3
.line 1132
:catch_95
move-exception v0
.line 1133
.local v0, "e":Ljava/security/InvalidKeyException;
invoke-virtual {v0}, Ljava/security/InvalidKeyException;->printStackTrace()V
.end local v0 # "e":Ljava/security/InvalidKeyException;
goto :goto_a3
.line 1130
:catch_9a
move-exception v0
.line 1131
.local v0, "e":Ljavax/crypto/NoSuchPaddingException;
invoke-virtual {v0}, Ljavax/crypto/NoSuchPaddingException;->printStackTrace()V
.end local v0 # "e":Ljavax/crypto/NoSuchPaddingException;
goto :goto_a3
.line 1128
:catch_9f
move-exception v0
.line 1129
.local v0, "e":Ljava/security/NoSuchAlgorithmException;
invoke-virtual {v0}, Ljava/security/NoSuchAlgorithmException;->printStackTrace()V
.line 1140
.end local v0 # "e":Ljava/security/NoSuchAlgorithmException;
:goto_a3
nop
.line 1141
:goto_a4
return-object v3
.line 1086
:cond_a5
:goto_a5
return-object v3
.end method
.method private static symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
.registers 12
.param p0, "data" # [B
.param p1, "key" # [B
.param p2, "algorithm" # Ljava/lang/String;
.param p3, "transformation" # Ljava/lang/String;
.param p4, "iv" # [B
.param p5, "isEncrypt" # Z
.line 946
const/4 v0, 0x0
if-eqz p0, :cond_52
array-length v1, p0
if-eqz v1, :cond_52
if-eqz p1, :cond_52
array-length v1, p1
if-nez v1, :cond_c
goto :goto_52
.line 949
:cond_c
:try_start_c
const-string v1, "DES"
invoke-virtual {v1, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_23
.line 950
new-instance v1, Ljavax/crypto/spec/DESKeySpec;
invoke-direct {v1, p1}, Ljavax/crypto/spec/DESKeySpec;-><init>([B)V
.line 951
.local v1, "desKey":Ljavax/crypto/spec/DESKeySpec;
invoke-static {p2}, Ljavax/crypto/SecretKeyFactory;->getInstance(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
move-result-object v2
.line 952
.local v2, "keyFactory":Ljavax/crypto/SecretKeyFactory;
invoke-virtual {v2, v1}, Ljavax/crypto/SecretKeyFactory;->generateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
move-result-object v3
move-object v1, v3
.line 953
.end local v2 # "keyFactory":Ljavax/crypto/SecretKeyFactory;
.local v1, "secretKey":Ljavax/crypto/SecretKey;
goto :goto_28
.line 954
.end local v1 # "secretKey":Ljavax/crypto/SecretKey;
:cond_23
new-instance v1, Ljavax/crypto/spec/SecretKeySpec;
invoke-direct {v1, p1, p2}, Ljavax/crypto/spec/SecretKeySpec;-><init>([BLjava/lang/String;)V
.line 956
.restart local v1 # "secretKey":Ljavax/crypto/SecretKey;
:goto_28
invoke-static {p3}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
move-result-object v2
.line 957
.local v2, "cipher":Ljavax/crypto/Cipher;
const/4 v3, 0x1
const/4 v4, 0x2
if-eqz p4, :cond_41
array-length v5, p4
if-nez v5, :cond_34
goto :goto_41
.line 960
:cond_34
new-instance v5, Ljavax/crypto/spec/IvParameterSpec;
invoke-direct {v5, p4}, Ljavax/crypto/spec/IvParameterSpec;-><init>([B)V
.line 961
.local v5, "params":Ljava/security/spec/AlgorithmParameterSpec;
if-eqz p5, :cond_3c
goto :goto_3d
:cond_3c
const/4 v3, 0x2
:goto_3d
invoke-virtual {v2, v3, v1, v5}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
goto :goto_48
.line 958
.end local v5 # "params":Ljava/security/spec/AlgorithmParameterSpec;
:cond_41
:goto_41
if-eqz p5, :cond_44
goto :goto_45
:cond_44
const/4 v3, 0x2
:goto_45
invoke-virtual {v2, v3, v1}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V
.line 963
:goto_48
invoke-virtual {v2, p0}, Ljavax/crypto/Cipher;->doFinal([B)[B
move-result-object v0
:try_end_4c
.catchall {:try_start_c .. :try_end_4c} :catchall_4d
return-object v0
.line 964
.end local v1 # "secretKey":Ljavax/crypto/SecretKey;
.end local v2 # "cipher":Ljavax/crypto/Cipher;
:catchall_4d
move-exception v1
.line 965
.local v1, "e":Ljava/lang/Throwable;
invoke-virtual {v1}, Ljava/lang/Throwable;->printStackTrace()V
.line 966
return-object v0
.line 946
.end local v1 # "e":Ljava/lang/Throwable;
:cond_52
:goto_52
return-object v0
.end method