cx.smali
.class public Lcom/baidu/mobstat/cx;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static a([B)Ljava/lang/String;
.registers 3
.prologue
.line 35
const/4 v0, 0x0
:try_start_1
invoke-static {}, Lcom/baidu/mobstat/cq;->a()[B
move-result-object v1
invoke-static {v0, v1, p0}, Lcom/baidu/mobstat/cx;->a(Z[B[B)[B
move-result-object v0
invoke-static {v0}, Lcom/baidu/mobstat/cp;->b([B)Ljava/lang/String;
:try_end_c
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_c} :catch_e
move-result-object v0
.line 40
:goto_d
return-object v0
.line 36
:catch_e
move-exception v0
.line 37
invoke-static {v0}, Lcom/baidu/mobstat/cw;->b(Ljava/lang/Throwable;)V
.line 40
const-string v0, ""
goto :goto_d
.end method
.method private static a(Z[B)Ljava/security/interfaces/RSAKey;
.registers 4
.prologue
.line 61
const-string v0, "RSA"
invoke-static {v0}, Ljava/security/KeyFactory;->getInstance(Ljava/lang/String;)Ljava/security/KeyFactory;
move-result-object v0
.line 62
if-eqz p0, :cond_14
.line 63
new-instance v1, Ljava/security/spec/PKCS8EncodedKeySpec;
invoke-direct {v1, p1}, Ljava/security/spec/PKCS8EncodedKeySpec;-><init>([B)V
invoke-virtual {v0, v1}, Ljava/security/KeyFactory;->generatePrivate(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
move-result-object v0
check-cast v0, Ljava/security/interfaces/RSAPrivateKey;
.line 65
:goto_13
return-object v0
:cond_14
new-instance v1, Ljava/security/spec/X509EncodedKeySpec;
invoke-direct {v1, p1}, Ljava/security/spec/X509EncodedKeySpec;-><init>([B)V
invoke-virtual {v0, v1}, Ljava/security/KeyFactory;->generatePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
move-result-object v0
check-cast v0, Ljava/security/interfaces/RSAPublicKey;
goto :goto_13
.end method
.method private static a(ILjava/security/Key;I[B)[B
.registers 8
.prologue
.line 70
const-string v0, "RSA/ECB/PKCS1Padding"
invoke-static {v0}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
move-result-object v2
.line 71
invoke-virtual {v2, p0, p1}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V
.line 73
new-instance v3, Ljava/io/ByteArrayOutputStream;
invoke-direct {v3}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 74
const/4 v0, 0x0
:goto_f
array-length v1, p3
if-ge v0, v1, :cond_20
.line 75
array-length v1, p3
sub-int/2addr v1, v0
.line 76
if-le v1, p2, :cond_17
move v1, p2
:cond_17
invoke-virtual {v2, p3, v0, v1}, Ljavax/crypto/Cipher;->doFinal([BII)[B
move-result-object v1
.line 78
invoke-virtual {v3, v1}, Ljava/io/ByteArrayOutputStream;->write([B)V
.line 74
add-int/2addr v0, p2
goto :goto_f
.line 81
:cond_20
invoke-virtual {v3}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v0
return-object v0
.end method
.method public static a(Z[B[B)[B
.registers 6
.prologue
.line 45
invoke-static {p0, p1}, Lcom/baidu/mobstat/cx;->a(Z[B)Ljava/security/interfaces/RSAKey;
move-result-object v0
.line 47
invoke-interface {v0}, Ljava/security/interfaces/RSAKey;->getModulus()Ljava/math/BigInteger;
move-result-object v1
invoke-virtual {v1}, Ljava/math/BigInteger;->bitLength()I
move-result v1
add-int/lit8 v1, v1, 0x1
div-int/lit8 v1, v1, 0x8
add-int/lit8 v1, v1, -0xb
.line 49
const/4 v2, 0x1
check-cast v0, Ljava/security/Key;
invoke-static {v2, v0, v1, p2}, Lcom/baidu/mobstat/cx;->a(ILjava/security/Key;I[B)[B
move-result-object v0
return-object v0
.end method
.method public static b(Z[B[B)[B
.registers 6
.prologue
.line 53
invoke-static {p0, p1}, Lcom/baidu/mobstat/cx;->a(Z[B)Ljava/security/interfaces/RSAKey;
move-result-object v0
.line 55
invoke-interface {v0}, Ljava/security/interfaces/RSAKey;->getModulus()Ljava/math/BigInteger;
move-result-object v1
invoke-virtual {v1}, Ljava/math/BigInteger;->bitLength()I
move-result v1
add-int/lit8 v1, v1, 0x1
div-int/lit8 v1, v1, 0x8
.line 57
const/4 v2, 0x2
check-cast v0, Ljava/security/Key;
invoke-static {v2, v0, v1, p2}, Lcom/baidu/mobstat/cx;->a(ILjava/security/Key;I[B)[B
move-result-object v0
return-object v0
.end method