b.smali
.class public final Lsg/bigo/opensdk/rtm/b/a/b;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field private static d:Lsg/bigo/opensdk/rtm/b/a/b;
# instance fields
.field public a:Ljava/security/interfaces/RSAPublicKey;
.field private b:Ljava/security/interfaces/RSAPrivateKey;
.field private c:Ljavax/crypto/Cipher;
# direct methods
.method static constructor <clinit>()V
.registers 0
return-void
.end method
.method private constructor <init>()V
.registers 2
.line 31
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
.line 23
iput-object v0, p0, Lsg/bigo/opensdk/rtm/b/a/b;->a:Ljava/security/interfaces/RSAPublicKey;
.line 25
iput-object v0, p0, Lsg/bigo/opensdk/rtm/b/a/b;->b:Ljava/security/interfaces/RSAPrivateKey;
.line 27
iput-object v0, p0, Lsg/bigo/opensdk/rtm/b/a/b;->c:Ljavax/crypto/Cipher;
return-void
.end method
.method public static declared-synchronized a()Lsg/bigo/opensdk/rtm/b/a/b;
.registers 6
const-class v0, Lsg/bigo/opensdk/rtm/b/a/b;
monitor-enter v0
.line 35
:try_start_3
sget-object v1, Lsg/bigo/opensdk/rtm/b/a/b;->d:Lsg/bigo/opensdk/rtm/b/a/b;
if-nez v1, :cond_6e
.line 36
new-instance v1, Lsg/bigo/opensdk/rtm/b/a/b;
invoke-direct {v1}, Lsg/bigo/opensdk/rtm/b/a/b;-><init>()V
:try_end_c
.catchall {:try_start_3 .. :try_end_c} :catchall_72
:try_start_c
const-string v2, "RSA"
.line 38
invoke-static {v2}, Ljava/security/KeyPairGenerator;->getInstance(Ljava/lang/String;)Ljava/security/KeyPairGenerator;
move-result-object v2
.line 39
new-instance v3, Ljava/security/spec/RSAKeyGenParameterSpec;
const/16 v4, 0x200
sget-object v5, Ljava/security/spec/RSAKeyGenParameterSpec;->F4:Ljava/math/BigInteger;
invoke-direct {v3, v4, v5}, Ljava/security/spec/RSAKeyGenParameterSpec;-><init>(ILjava/math/BigInteger;)V
.line 40
invoke-virtual {v2, v3}, Ljava/security/KeyPairGenerator;->initialize(Ljava/security/spec/AlgorithmParameterSpec;)V
.line 41
invoke-virtual {v2}, Ljava/security/KeyPairGenerator;->generateKeyPair()Ljava/security/KeyPair;
move-result-object v2
.line 42
invoke-virtual {v2}, Ljava/security/KeyPair;->getPublic()Ljava/security/PublicKey;
move-result-object v3
check-cast v3, Ljava/security/interfaces/RSAPublicKey;
iput-object v3, v1, Lsg/bigo/opensdk/rtm/b/a/b;->a:Ljava/security/interfaces/RSAPublicKey;
.line 43
invoke-virtual {v2}, Ljava/security/KeyPair;->getPrivate()Ljava/security/PrivateKey;
move-result-object v2
check-cast v2, Ljava/security/interfaces/RSAPrivateKey;
iput-object v2, v1, Lsg/bigo/opensdk/rtm/b/a/b;->b:Ljava/security/interfaces/RSAPrivateKey;
const-string v2, "RSA/None/PKCS1Padding"
.line 44
invoke-static {v2}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
move-result-object v2
iput-object v2, v1, Lsg/bigo/opensdk/rtm/b/a/b;->c:Ljavax/crypto/Cipher;
const/4 v3, 0x2
.line 45
iget-object v4, v1, Lsg/bigo/opensdk/rtm/b/a/b;->b:Ljava/security/interfaces/RSAPrivateKey;
invoke-virtual {v2, v3, v4}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V
.line 46
sput-object v1, Lsg/bigo/opensdk/rtm/b/a/b;->d:Lsg/bigo/opensdk/rtm/b/a/b;
:try_end_42
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_c .. :try_end_42} :catch_64
.catch Ljava/security/InvalidAlgorithmParameterException; {:try_start_c .. :try_end_42} :catch_59
.catch Ljavax/crypto/NoSuchPaddingException; {:try_start_c .. :try_end_42} :catch_4e
.catch Ljava/security/InvalidKeyException; {:try_start_c .. :try_end_42} :catch_43
.catchall {:try_start_c .. :try_end_42} :catchall_72
goto :goto_6e
:catch_43
move-exception v1
:try_start_44
const-string v2, "ProtoRSA"
.line 54
invoke-virtual {v1}, Ljava/security/InvalidKeyException;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lsg/bigo/opensdk/d/d;->c(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_6e
:catch_4e
move-exception v1
const-string v2, "ProtoRSA"
.line 52
invoke-virtual {v1}, Ljavax/crypto/NoSuchPaddingException;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lsg/bigo/opensdk/d/d;->c(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_6e
:catch_59
move-exception v1
const-string v2, "ProtoRSA"
.line 50
invoke-virtual {v1}, Ljava/security/InvalidAlgorithmParameterException;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lsg/bigo/opensdk/d/d;->c(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_6e
:catch_64
move-exception v1
const-string v2, "ProtoRSA"
.line 48
invoke-virtual {v1}, Ljava/security/NoSuchAlgorithmException;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lsg/bigo/opensdk/d/d;->c(Ljava/lang/String;Ljava/lang/String;)V
.line 57
:cond_6e
:goto_6e
sget-object v1, Lsg/bigo/opensdk/rtm/b/a/b;->d:Lsg/bigo/opensdk/rtm/b/a/b;
:try_end_70
.catchall {:try_start_44 .. :try_end_70} :catchall_72
monitor-exit v0
return-object v1
:catchall_72
move-exception v1
monitor-exit v0
throw v1
.end method
# virtual methods
.method public final declared-synchronized a([B)[B
.registers 3
monitor-enter p0
.line 66
:try_start_1
iget-object v0, p0, Lsg/bigo/opensdk/rtm/b/a/b;->c:Ljavax/crypto/Cipher;
invoke-virtual {v0, p1}, Ljavax/crypto/Cipher;->doFinal([B)[B
move-result-object p1
:try_end_7
.catch Ljavax/crypto/IllegalBlockSizeException; {:try_start_1 .. :try_end_7} :catch_16
.catch Ljavax/crypto/BadPaddingException; {:try_start_1 .. :try_end_7} :catch_b
.catchall {:try_start_1 .. :try_end_7} :catchall_9
monitor-exit p0
return-object p1
:catchall_9
move-exception p1
goto :goto_23
:catch_b
move-exception p1
:try_start_c
const-string v0, "ProtoRSA"
.line 70
invoke-virtual {p1}, Ljavax/crypto/BadPaddingException;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Lsg/bigo/opensdk/d/d;->c(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_20
:catch_16
move-exception p1
const-string v0, "ProtoRSA"
.line 68
invoke-virtual {p1}, Ljavax/crypto/IllegalBlockSizeException;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Lsg/bigo/opensdk/d/d;->c(Ljava/lang/String;Ljava/lang/String;)V
:try_end_20
.catchall {:try_start_c .. :try_end_20} :catchall_9
:goto_20
const/4 p1, 0x0
.line 72
monitor-exit p0
return-object p1
:goto_23
monitor-exit p0
throw p1
.end method