h.smali
.class public Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/h;
.super Ljava/lang/Object;
.source "MD5Utils.java"
# static fields
.field static final a:[C
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 9
const/16 v0, 0x10
new-array v0, v0, [C
fill-array-data v0, :array_a
sput-object v0, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/h;->a:[C
return-void
:array_a
.array-data 2
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x61s
0x62s
0x63s
0x64s
0x65s
0x66s
.end array-data
.end method
.method private static a([BII)Ljava/lang/String;
.registers 11
.prologue
const/4 v1, 0x0
.line 90
if-nez p0, :cond_b
.line 91
new-instance v0, Ljava/lang/NullPointerException;
const-string v1, "bytes is null"
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw v0
.line 93
:cond_b
if-ltz p1, :cond_12
add-int v0, p1, p2
array-length v2, p0
if-le v0, v2, :cond_18
.line 94
:cond_12
new-instance v0, Ljava/lang/IndexOutOfBoundsException;
invoke-direct {v0}, Ljava/lang/IndexOutOfBoundsException;-><init>()V
throw v0
.line 96
:cond_18
mul-int/lit8 v0, p2, 0x2
new-array v3, v0, [C
move v0, v1
move v2, v1
.line 99
:goto_1e
if-ge v0, p2, :cond_3d
.line 100
add-int v4, v0, p1
aget-byte v4, p0, v4
and-int/lit16 v4, v4, 0xff
.line 101
add-int/lit8 v5, v2, 0x1
sget-object v6, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/h;->a:[C
shr-int/lit8 v7, v4, 0x4
aget-char v6, v6, v7
aput-char v6, v3, v2
.line 102
add-int/lit8 v2, v5, 0x1
sget-object v6, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/h;->a:[C
and-int/lit8 v4, v4, 0xf
aget-char v4, v6, v4
aput-char v4, v3, v5
.line 99
add-int/lit8 v0, v0, 0x1
goto :goto_1e
.line 104
:cond_3d
new-instance v0, Ljava/lang/String;
mul-int/lit8 v2, p2, 0x2
invoke-direct {v0, v3, v1, v2}, Ljava/lang/String;-><init>([CII)V
return-object v0
.end method
.method public static a(Ljava/io/InputStream;Ljava/lang/String;)V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.line 15
if-nez p1, :cond_a
.line 16
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "md5 check failed: md5 == null"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.line 20
:cond_a
:try_start_a
const-string v0, "MD5"
invoke-static {v0}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
:try_end_f
.catch Ljava/lang/Exception; {:try_start_a .. :try_end_f} :catch_45
move-result-object v0
.line 27
const/16 v1, 0x1000
:try_start_12
new-array v1, v1, [B
.line 29
:goto_14
const/4 v2, 0x0
array-length v3, v1
invoke-virtual {p0, v1, v2, v3}, Ljava/io/InputStream;->read([BII)I
move-result v2
const/4 v3, -0x1
if-eq v2, v3, :cond_63
.line 30
const/4 v3, 0x0
invoke-virtual {v0, v1, v3, v2}, Ljava/security/MessageDigest;->update([BII)V
:try_end_21
.catch Ljava/lang/Exception; {:try_start_12 .. :try_end_21} :catch_22
.catchall {:try_start_12 .. :try_end_21} :catchall_40
goto :goto_14
.line 32
:catch_22
move-exception v0
.line 33
:try_start_23
new-instance v1, Ljava/lang/RuntimeException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "md5 check failed:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
:try_end_40
.catchall {:try_start_23 .. :try_end_40} :catchall_40
.line 35
:catchall_40
move-exception v0
invoke-static {p0}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/b;->a(Ljava/io/Closeable;)Z
throw v0
.line 21
:catch_45
move-exception v0
.line 22
new-instance v1, Ljava/lang/RuntimeException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "md5 check failed:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
.line 35
:cond_63
invoke-static {p0}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/b;->a(Ljava/io/Closeable;)Z
.line 39
:try_start_66
invoke-virtual {v0}, Ljava/security/MessageDigest;->digest()[B
move-result-object v0
.line 40
const/4 v1, 0x0
array-length v2, v0
invoke-static {v0, v1, v2}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/h;->a([BII)Ljava/lang/String;
:try_end_6f
.catch Ljava/lang/Exception; {:try_start_66 .. :try_end_6f} :catch_99
move-result-object v0
.line 44
invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_b7
.line 45
new-instance v1, Ljava/lang/RuntimeException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "md5 check failed file: local md5:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, " expect md5:"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p1}, 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
invoke-direct {v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v1
.line 41
:catch_99
move-exception v0
.line 42
new-instance v1, Ljava/lang/RuntimeException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "md5 check failed:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
.line 48
:cond_b7
return-void
.end method