AcsNative.smali
.class public Lcom/baidu/security/acs/AcsNative;
.super Ljava/lang/Object;
.source "AcsNative.java"
# static fields
.field private static final CERT_NAME:Ljava/lang/String; = "AvpGrantCert.avpcfg"
.field private static mCertBytes:[B
.field public static sIsInitFail:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 19
const/4 v0, 0x1
sput-boolean v0, Lcom/baidu/security/acs/AcsNative;->sIsInitFail:Z
.line 20
const/4 v0, 0x0
sput-object v0, Lcom/baidu/security/acs/AcsNative;->mCertBytes:[B
return-void
.end method
.method public constructor <init>()V
.registers 5
.prologue
.line 23
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 24
sget-boolean v0, Lcom/baidu/security/acs/AcsNative;->sIsInitFail:Z
if-eqz v0, :cond_a
.line 25
invoke-direct {p0}, Lcom/baidu/security/acs/AcsNative;->initAcsNative()V
.line 27
:cond_a
invoke-static {}, Lcom/baidu/security/b/b;->a()Lcom/baidu/security/b/b;
move-result-object v0
invoke-virtual {v0}, Lcom/baidu/security/b/b;->b()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/baidu/security/acs/AcsNative;->acsInitialize(Ljava/lang/String;)I
move-result v0
.line 28
invoke-virtual {p0}, Lcom/baidu/security/acs/AcsNative;->acsCertValidate()V
.line 30
sget-boolean v1, Lcom/baidu/security/engine/a/b/a;->c:Z
if-eqz v1, :cond_43
.line 31
sget-object v1, Lcom/baidu/security/engine/a/b/a;->b:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "localscan engine initialize acs version :"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {p0}, Lcom/baidu/security/acs/AcsNative;->acsVersion()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
const-string v3, " , initInt : "
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(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcom/baidu/security/f/m;->b(Ljava/lang/String;Ljava/lang/String;)V
.line 34
:cond_43
return-void
.end method
.method public static native bdeExtract([Ljava/lang/String;[Ljava/lang/String;[Z)[B
.end method
.method public static native bdeVersionCode()I
.end method
.method public static native dfcGetOperations(Ljava/lang/String;)[Ljava/lang/String;
.end method
.method private initAcsNative()V
.registers 6
.prologue
const/4 v4, 0x1
.line 38
:try_start_1
sget-object v0, Lcom/baidu/security/engine/a/b/a;->b:Ljava/lang/String;
const-string v1, " load acs so from lib "
invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V
.line 39
const-string v0, "acs"
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
.line 40
const/4 v0, 0x0
sput-boolean v0, Lcom/baidu/security/acs/AcsNative;->sIsInitFail:Z
.line 41
sget-object v0, Lcom/baidu/security/engine/a/b/a;->b:Ljava/lang/String;
const-string v1, " load acs so from lib success "
invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V
:try_end_17
.catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_17} :catch_18
.line 69
:cond_17
:goto_17
return-void
.line 42
:catch_18
move-exception v0
.line 44
:try_start_19
new-instance v0, Ljava/io/File;
.line 45
invoke-static {}, Lcom/baidu/security/b/a;->a()Landroid/content/Context;
move-result-object v1
sget-object v2, Lcom/baidu/security/a/a;->a:Ljava/lang/String;
const/4 v3, 0x0
invoke-virtual {v1, v2, v3}, Landroid/content/Context;->getDir(Ljava/lang/String;I)Ljava/io/File;
move-result-object v1
const-string v2, "libacs.so"
invoke-direct {v0, v1, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 47
invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
.line 49
sget-object v1, Lcom/baidu/security/engine/a/b/a;->b:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, " load acs from lib fail, load from path : "
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 v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V
.line 50
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_94
new-instance v1, Ljava/io/File;
invoke-direct {v1, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v1
if-eqz v1, :cond_94
.line 51
invoke-static {v0}, Ljava/lang/System;->load(Ljava/lang/String;)V
.line 52
sget-object v1, Lcom/baidu/security/engine/a/b/a;->b:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "acs so load from files success, path : "
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, " , cache path : "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
.line 54
invoke-static {}, Lcom/baidu/security/b/b;->a()Lcom/baidu/security/b/b;
move-result-object v2
invoke-virtual {v2}, Lcom/baidu/security/b/b;->b()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, 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 52
invoke-static {v1, v0}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V
.line 55
const/4 v0, 0x0
sput-boolean v0, Lcom/baidu/security/acs/AcsNative;->sIsInitFail:Z
:try_end_88
.catch Ljava/lang/Throwable; {:try_start_19 .. :try_end_88} :catch_98
.line 65
:cond_88
:goto_88
sget-boolean v0, Lcom/baidu/security/acs/AcsNative;->sIsInitFail:Z
if-eqz v0, :cond_17
.line 66
sget-object v0, Lcom/baidu/security/engine/a/b/a;->b:Ljava/lang/String;
const-string v1, "acs so load fail finally "
invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_17
.line 57
:cond_94
const/4 v0, 0x1
:try_start_95
sput-boolean v0, Lcom/baidu/security/acs/AcsNative;->sIsInitFail:Z
:try_end_97
.catch Ljava/lang/Throwable; {:try_start_95 .. :try_end_97} :catch_98
goto :goto_88
.line 59
:catch_98
move-exception v0
.line 60
sput-boolean v4, Lcom/baidu/security/acs/AcsNative;->sIsInitFail:Z
.line 61
sget-boolean v1, Lcom/baidu/security/engine/a/b/a;->c:Z
if-eqz v1, :cond_88
.line 62
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
goto :goto_88
.end method
# virtual methods
.method public acsCertValidate()V
.registers 7
.prologue
const/4 v3, 0x0
const/4 v1, -0x1
.line 72
sget-object v2, Lcom/baidu/security/engine/a/b/a;->b:Ljava/lang/String;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "==============acsCertValidate begin, mCertBytes : "
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
sget-object v0, Lcom/baidu/security/acs/AcsNative;->mCertBytes:[B
if-nez v0, :cond_83
const-string v0, " null "
.line 73
:goto_15
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 72
invoke-static {v2, v0}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V
.line 75
sget-object v0, Lcom/baidu/security/acs/AcsNative;->mCertBytes:[B
if-eqz v0, :cond_29
sget-object v0, Lcom/baidu/security/acs/AcsNative;->mCertBytes:[B
array-length v0, v0
if-nez v0, :cond_a5
.line 76
:cond_29
sget-object v0, Lcom/baidu/security/engine/a/b/a;->b:Ljava/lang/String;
const-string v2, "==============acsCertValidate read cert from asset============"
invoke-static {v0, v2}, Lcom/baidu/security/f/m;->b(Ljava/lang/String;Ljava/lang/String;)V
.line 80
:try_start_30
invoke-static {}, Lcom/baidu/security/b/a;->a()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
move-result-object v0
const-string v2, "AvpGrantCert.avpcfg"
invoke-virtual {v0, v2}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
:try_end_3d
.catch Ljava/io/IOException; {:try_start_30 .. :try_end_3d} :catch_b5
.catchall {:try_start_30 .. :try_end_3d} :catchall_9b
move-result-object v4
.line 81
:try_start_3e
new-instance v2, Ljava/io/ByteArrayOutputStream;
invoke-direct {v2}, Ljava/io/ByteArrayOutputStream;-><init>()V
:try_end_43
.catch Ljava/io/IOException; {:try_start_3e .. :try_end_43} :catch_b8
.catchall {:try_start_3e .. :try_end_43} :catchall_ad
.line 82
const/16 v0, 0x400
:try_start_45
new-array v0, v0, [B
.line 84
:goto_47
const/4 v3, 0x0
const/16 v5, 0x64
invoke-virtual {v4, v0, v3, v5}, Ljava/io/InputStream;->read([BII)I
move-result v3
if-eq v3, v1, :cond_8b
.line 85
const/4 v5, 0x0
invoke-virtual {v2, v0, v5, v3}, Ljava/io/ByteArrayOutputStream;->write([BII)V
:try_end_54
.catch Ljava/io/IOException; {:try_start_45 .. :try_end_54} :catch_55
.catchall {:try_start_45 .. :try_end_54} :catchall_b0
goto :goto_47
.line 89
:catch_55
move-exception v0
move-object v3, v4
.line 90
:goto_57
:try_start_57
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
:try_end_5a
.catchall {:try_start_57 .. :try_end_5a} :catchall_b2
.line 92
invoke-static {v3}, Lcom/baidu/security/f/j;->a(Ljava/io/Closeable;)V
.line 93
invoke-static {v2}, Lcom/baidu/security/f/j;->a(Ljava/io/Closeable;)V
.line 98
:goto_60
sget-object v0, Lcom/baidu/security/acs/AcsNative;->mCertBytes:[B
if-eqz v0, :cond_bc
.line 99
sget-object v0, Lcom/baidu/security/acs/AcsNative;->mCertBytes:[B
invoke-virtual {p0, v0}, Lcom/baidu/security/acs/AcsNative;->cecAvpCertValid([B)I
move-result v0
.line 101
:goto_6a
sget-object v1, Lcom/baidu/security/engine/a/b/a;->b:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "==============acsCertValidate end result : "
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(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcom/baidu/security/f/m;->b(Ljava/lang/String;Ljava/lang/String;)V
.line 102
return-void
.line 72
:cond_83
sget-object v0, Lcom/baidu/security/acs/AcsNative;->mCertBytes:[B
array-length v0, v0
.line 73
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
goto :goto_15
.line 87
:cond_8b
:try_start_8b
invoke-virtual {v2}, Ljava/io/ByteArrayOutputStream;->flush()V
.line 88
invoke-virtual {v2}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v0
sput-object v0, Lcom/baidu/security/acs/AcsNative;->mCertBytes:[B
:try_end_94
.catch Ljava/io/IOException; {:try_start_8b .. :try_end_94} :catch_55
.catchall {:try_start_8b .. :try_end_94} :catchall_b0
.line 92
invoke-static {v4}, Lcom/baidu/security/f/j;->a(Ljava/io/Closeable;)V
.line 93
invoke-static {v2}, Lcom/baidu/security/f/j;->a(Ljava/io/Closeable;)V
goto :goto_60
.line 92
:catchall_9b
move-exception v0
move-object v2, v3
move-object v4, v3
:goto_9e
invoke-static {v4}, Lcom/baidu/security/f/j;->a(Ljava/io/Closeable;)V
.line 93
invoke-static {v2}, Lcom/baidu/security/f/j;->a(Ljava/io/Closeable;)V
throw v0
.line 96
:cond_a5
sget-object v0, Lcom/baidu/security/engine/a/b/a;->b:Ljava/lang/String;
const-string v2, "==============acsCertValidate reuse CertBytes ============"
invoke-static {v0, v2}, Lcom/baidu/security/f/m;->b(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_60
.line 92
:catchall_ad
move-exception v0
move-object v2, v3
goto :goto_9e
:catchall_b0
move-exception v0
goto :goto_9e
:catchall_b2
move-exception v0
move-object v4, v3
goto :goto_9e
.line 89
:catch_b5
move-exception v0
move-object v2, v3
goto :goto_57
:catch_b8
move-exception v0
move-object v2, v3
move-object v3, v4
goto :goto_57
:cond_bc
move v0, v1
goto :goto_6a
.end method
.method public native acsInitialize(Ljava/lang/String;)I
.end method
.method public native acsRelease()V
.end method
.method public native acsScan(Ljava/lang/String;)[Lcom/baidu/security/acs/ThreatInfo;
.end method
.method public native acsSetFilter(I)I
.end method
.method public native acsSetMode(I)I
.end method
.method public native acsUpdateDatabase(Ljava/lang/String;)I
.end method
.method public native acsVersion()Ljava/lang/String;
.end method
.method public native cecAvpCertValid([B)I
.end method
.method public native cecDecData([B)[B
.end method
.method public native cecEncData([B)[B
.end method
.method public native cecGet5Keys(Ljava/lang/String;)[Ljava/lang/String;
.end method
.method public native cecGetAvpKey()Ljava/lang/String;
.end method
.method public native cecGetHttpSign(Ljava/lang/String;)[B
.end method