Weather/smali_classes4/com/zk/drivermonitor/utils/AESUtils.smali
2021-05-10 10:13:34 +02:00

256 lines
5.2 KiB
Smali

.class public Lcom/zk/drivermonitor/utils/AESUtils;
.super Ljava/lang/Object;
.source "AESUtils.java"
# direct methods
.method public constructor <init>()V
.locals 0
.line 16
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static a(Ljava/lang/String;)Ljava/lang/String;
.locals 2
.line 45
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
const/16 v1, 0x10
if-le v0, v1, :cond_0
const/4 v0, 0x0
.line 47
invoke-virtual {p0, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
goto :goto_1
:cond_0
:goto_0
if-lt v0, v1, :cond_1
:goto_1
return-object p0
.line 50
:cond_1
new-instance v0, Ljava/lang/StringBuffer;
invoke-direct {v0}, Ljava/lang/StringBuffer;-><init>()V
.line 51
invoke-virtual {v0, p0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
const-string p0, "0"
invoke-virtual {v0, p0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 52
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object p0
.line 53
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
goto :goto_0
.end method
.method public static a([B)Ljava/lang/String;
.locals 4
const-string v0, "0123456789ABCDEF"
if-nez p0, :cond_0
const-string p0, ""
return-object p0
.line 172
:cond_0
new-instance v1, Ljava/lang/StringBuffer;
array-length v2, p0
mul-int/lit8 v2, v2, 0x2
invoke-direct {v1, v2}, Ljava/lang/StringBuffer;-><init>(I)V
const/4 v2, 0x0
.line 173
:goto_0
array-length v3, p0
if-lt v2, v3, :cond_1
.line 177
invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.line 175
:cond_1
aget-byte v3, p0, v2
shr-int/lit8 v3, v3, 0x4
and-int/lit8 v3, v3, 0xf
invoke-virtual {v0, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
invoke-virtual {v1, v3}, Ljava/lang/StringBuffer;->append(C)Ljava/lang/StringBuffer;
aget-byte v3, p0, v2
and-int/lit8 v3, v3, 0xf
invoke-virtual {v0, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
invoke-virtual {v1, v3}, Ljava/lang/StringBuffer;->append(C)Ljava/lang/StringBuffer;
add-int/lit8 v2, v2, 0x1
goto :goto_0
.end method
.method public static a([B[B)[B
.locals 2
.annotation build Landroid/annotation/SuppressLint;
value = {
"TrulyRandom"
}
.end annotation
.line 101
:try_start_0
invoke-static {p1}, Lcom/zk/drivermonitor/utils/AESUtils;->b([B)[B
.line 103
new-instance v0, Ljavax/crypto/spec/SecretKeySpec;
const-string v1, "AES"
invoke-direct {v0, p1, v1}, Ljavax/crypto/spec/SecretKeySpec;-><init>([BLjava/lang/String;)V
const-string p1, "AES/ECB/PKCS5Padding"
.line 105
invoke-static {p1}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
move-result-object p1
const/4 v1, 0x1
.line 106
invoke-virtual {p1, v1, v0}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V
.line 108
invoke-virtual {p1, p0}, Ljavax/crypto/Cipher;->doFinal([B)[B
move-result-object p0
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
return-object p0
:catch_0
move-exception p0
.line 111
invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V
const/4 p0, 0x0
return-object p0
.end method
.method private static b([B)[B
.locals 3
:try_start_0
const-string v0, "AES"
.line 191
invoke-static {v0}, Ljavax/crypto/KeyGenerator;->getInstance(Ljava/lang/String;)Ljavax/crypto/KeyGenerator;
move-result-object v0
.line 193
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x11
if-lt v1, v2, :cond_0
const-string v1, "SHA1PRNG"
const-string v2, "Crypto"
.line 194
invoke-static {v1, v2}, Ljava/security/SecureRandom;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/SecureRandom;
move-result-object v1
goto :goto_0
:cond_0
const-string v1, "SHA1PRNG"
.line 196
invoke-static {v1}, Ljava/security/SecureRandom;->getInstance(Ljava/lang/String;)Ljava/security/SecureRandom;
move-result-object v1
.line 199
:goto_0
invoke-virtual {v1, p0}, Ljava/security/SecureRandom;->setSeed([B)V
const/16 p0, 0x80
.line 201
invoke-virtual {v0, p0, v1}, Ljavax/crypto/KeyGenerator;->init(ILjava/security/SecureRandom;)V
.line 203
invoke-virtual {v0}, Ljavax/crypto/KeyGenerator;->generateKey()Ljavax/crypto/SecretKey;
move-result-object p0
.line 204
invoke-interface {p0}, Ljavax/crypto/SecretKey;->getEncoded()[B
move-result-object p0
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
return-object p0
:catch_0
move-exception p0
.line 209
invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V
const/4 p0, 0x0
return-object p0
.end method