b.smali
.class public Lcom/huawei/updatesdk/sdk/a/b/b;
.super Ljavax/net/ssl/SSLSocketFactory;
# static fields
.field public static final a:Lorg/apache/http/conn/ssl/X509HostnameVerifier;
.field public static final b:Lorg/apache/http/conn/ssl/X509HostnameVerifier;
.field private static final c:[Ljava/lang/String;
.field private static volatile d:Lcom/huawei/updatesdk/sdk/a/b/b;
.field private static e:[Ljava/lang/String;
# instance fields
.field private f:Ljavax/net/ssl/SSLContext;
.field private g:Landroid/content/Context;
# direct methods
.method static constructor <clinit>()V
.registers 4
const/4 v3, 0x0
new-instance v0, Lorg/apache/http/conn/ssl/BrowserCompatHostnameVerifier;
invoke-direct {v0}, Lorg/apache/http/conn/ssl/BrowserCompatHostnameVerifier;-><init>()V
sput-object v0, Lcom/huawei/updatesdk/sdk/a/b/b;->a:Lorg/apache/http/conn/ssl/X509HostnameVerifier;
new-instance v0, Lorg/apache/http/conn/ssl/StrictHostnameVerifier;
invoke-direct {v0}, Lorg/apache/http/conn/ssl/StrictHostnameVerifier;-><init>()V
sput-object v0, Lcom/huawei/updatesdk/sdk/a/b/b;->b:Lorg/apache/http/conn/ssl/X509HostnameVerifier;
const/16 v0, 0xe
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, "TEA"
aput-object v2, v0, v1
const/4 v1, 0x1
const-string v2, "SHA0"
aput-object v2, v0, v1
const/4 v1, 0x2
const-string v2, "MD2"
aput-object v2, v0, v1
const/4 v1, 0x3
const-string v2, "MD4"
aput-object v2, v0, v1
const/4 v1, 0x4
const-string v2, "RIPEMD"
aput-object v2, v0, v1
const/4 v1, 0x5
const-string v2, "RC4"
aput-object v2, v0, v1
const/4 v1, 0x6
const-string v2, "DES"
aput-object v2, v0, v1
const/4 v1, 0x7
const-string v2, "DESX"
aput-object v2, v0, v1
const/16 v1, 0x8
const-string v2, "DES40"
aput-object v2, v0, v1
const/16 v1, 0x9
const-string v2, "RC2"
aput-object v2, v0, v1
const/16 v1, 0xa
const-string v2, "MD5"
aput-object v2, v0, v1
const/16 v1, 0xb
const-string v2, "ANON"
aput-object v2, v0, v1
const/16 v1, 0xc
const-string v2, "NULL"
aput-object v2, v0, v1
const/16 v1, 0xd
const-string v2, "TLS_EMPTY_RENEGOTIATION_INFO_SCSV"
aput-object v2, v0, v1
sput-object v0, Lcom/huawei/updatesdk/sdk/a/b/b;->c:[Ljava/lang/String;
sput-object v3, Lcom/huawei/updatesdk/sdk/a/b/b;->d:Lcom/huawei/updatesdk/sdk/a/b/b;
sput-object v3, Lcom/huawei/updatesdk/sdk/a/b/b;->e:[Ljava/lang/String;
return-void
.end method
.method private constructor <init>(Landroid/content/Context;)V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/security/NoSuchAlgorithmException;,
Ljava/security/cert/CertificateException;,
Ljava/security/KeyStoreException;,
Ljava/security/KeyManagementException;,
Ljava/lang/IllegalAccessException;
}
.end annotation
const/4 v4, 0x0
invoke-direct {p0}, Ljavax/net/ssl/SSLSocketFactory;-><init>()V
iput-object v4, p0, Lcom/huawei/updatesdk/sdk/a/b/b;->f:Ljavax/net/ssl/SSLContext;
iput-object p1, p0, Lcom/huawei/updatesdk/sdk/a/b/b;->g:Landroid/content/Context;
const-string v0, "TLS"
invoke-static {v0}, Ljavax/net/ssl/SSLContext;->getInstance(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
move-result-object v0
iput-object v0, p0, Lcom/huawei/updatesdk/sdk/a/b/b;->f:Ljavax/net/ssl/SSLContext;
new-instance v0, Lcom/huawei/updatesdk/sdk/a/b/c;
iget-object v1, p0, Lcom/huawei/updatesdk/sdk/a/b/b;->g:Landroid/content/Context;
invoke-direct {v0, v1}, Lcom/huawei/updatesdk/sdk/a/b/c;-><init>(Landroid/content/Context;)V
iget-object v1, p0, Lcom/huawei/updatesdk/sdk/a/b/b;->f:Ljavax/net/ssl/SSLContext;
const/4 v2, 0x1
new-array v2, v2, [Ljavax/net/ssl/X509TrustManager;
const/4 v3, 0x0
aput-object v0, v2, v3
invoke-virtual {v1, v4, v2, v4}, Ljavax/net/ssl/SSLContext;->init([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
return-void
.end method
.method public static a(Landroid/content/Context;)Lcom/huawei/updatesdk/sdk/a/b/b;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/security/NoSuchAlgorithmException;,
Ljava/security/cert/CertificateException;,
Ljava/security/KeyStoreException;,
Ljava/lang/IllegalAccessException;,
Ljava/security/KeyManagementException;
}
.end annotation
sget-object v0, Lcom/huawei/updatesdk/sdk/a/b/b;->d:Lcom/huawei/updatesdk/sdk/a/b/b;
if-nez v0, :cond_13
const-class v1, Lcom/huawei/updatesdk/sdk/a/b/b;
monitor-enter v1
:try_start_7
sget-object v0, Lcom/huawei/updatesdk/sdk/a/b/b;->d:Lcom/huawei/updatesdk/sdk/a/b/b;
if-nez v0, :cond_12
new-instance v0, Lcom/huawei/updatesdk/sdk/a/b/b;
invoke-direct {v0, p0}, Lcom/huawei/updatesdk/sdk/a/b/b;-><init>(Landroid/content/Context;)V
sput-object v0, Lcom/huawei/updatesdk/sdk/a/b/b;->d:Lcom/huawei/updatesdk/sdk/a/b/b;
:cond_12
monitor-exit v1
:try_end_13
.catchall {:try_start_7 .. :try_end_13} :catchall_16
:cond_13
sget-object v0, Lcom/huawei/updatesdk/sdk/a/b/b;->d:Lcom/huawei/updatesdk/sdk/a/b/b;
return-object v0
:catchall_16
move-exception v0
:try_start_17
monitor-exit v1
:try_end_18
.catchall {:try_start_17 .. :try_end_18} :catchall_16
throw v0
.end method
.method private a(Ljava/net/Socket;)V
.registers 3
if-eqz p1, :cond_11
instance-of v0, p1, Ljavax/net/ssl/SSLSocket;
if-eqz v0, :cond_11
move-object v0, p1
check-cast v0, Ljavax/net/ssl/SSLSocket;
invoke-direct {p0, v0}, Lcom/huawei/updatesdk/sdk/a/b/b;->b(Ljavax/net/ssl/SSLSocket;)V
check-cast p1, Ljavax/net/ssl/SSLSocket;
invoke-static {p1}, Lcom/huawei/updatesdk/sdk/a/b/b;->a(Ljavax/net/ssl/SSLSocket;)V
:cond_11
return-void
.end method
.method private static a(Ljavax/net/ssl/SSLSocket;)V
.registers 12
const/4 v1, 0x0
if-nez p0, :cond_4
:goto_3
return-void
:cond_4
invoke-virtual {p0}, Ljavax/net/ssl/SSLSocket;->getEnabledCipherSuites()[Ljava/lang/String;
move-result-object v3
new-instance v4, Ljava/util/ArrayList;
invoke-direct {v4}, Ljava/util/ArrayList;-><init>()V
array-length v5, v3
move v0, v1
:goto_f
if-ge v0, v5, :cond_33
aget-object v6, v3, v0
sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-virtual {v6, v2}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v7
sget-object v8, Lcom/huawei/updatesdk/sdk/a/b/b;->c:[Ljava/lang/String;
array-length v9, v8
move v2, v1
:goto_1d
if-ge v2, v9, :cond_47
aget-object v10, v8, v2
invoke-virtual {v7, v10}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v10
if-eqz v10, :cond_30
const/4 v2, 0x1
:goto_28
if-nez v2, :cond_2d
invoke-interface {v4, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:cond_2d
add-int/lit8 v0, v0, 0x1
goto :goto_f
:cond_30
add-int/lit8 v2, v2, 0x1
goto :goto_1d
:cond_33
invoke-interface {v4}, Ljava/util/List;->size()I
move-result v0
new-array v0, v0, [Ljava/lang/String;
invoke-interface {v4, v0}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/String;
sput-object v0, Lcom/huawei/updatesdk/sdk/a/b/b;->e:[Ljava/lang/String;
sget-object v0, Lcom/huawei/updatesdk/sdk/a/b/b;->e:[Ljava/lang/String;
invoke-virtual {p0, v0}, Ljavax/net/ssl/SSLSocket;->setEnabledCipherSuites([Ljava/lang/String;)V
goto :goto_3
:cond_47
move v2, v1
goto :goto_28
.end method
.method private b(Ljavax/net/ssl/SSLSocket;)V
.registers 5
if-eqz p1, :cond_18
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x10
if-lt v0, v1, :cond_18
const/4 v0, 0x2
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, "TLSv1.1"
aput-object v2, v0, v1
const/4 v1, 0x1
const-string v2, "TLSv1.2"
aput-object v2, v0, v1
invoke-virtual {p1, v0}, Ljavax/net/ssl/SSLSocket;->setEnabledProtocols([Ljava/lang/String;)V
:cond_18
return-void
.end method
# virtual methods
.method public createSocket(Ljava/lang/String;I)Ljava/net/Socket;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/net/UnknownHostException;
}
.end annotation
iget-object v0, p0, Lcom/huawei/updatesdk/sdk/a/b/b;->f:Ljavax/net/ssl/SSLContext;
invoke-virtual {v0}, Ljavax/net/ssl/SSLContext;->getSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
move-result-object v0
invoke-virtual {v0, p1, p2}, Ljavax/net/ssl/SSLSocketFactory;->createSocket(Ljava/lang/String;I)Ljava/net/Socket;
move-result-object v0
invoke-direct {p0, v0}, Lcom/huawei/updatesdk/sdk/a/b/b;->a(Ljava/net/Socket;)V
return-object v0
.end method
.method public createSocket(Ljava/lang/String;ILjava/net/InetAddress;I)Ljava/net/Socket;
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/net/UnknownHostException;
}
.end annotation
invoke-virtual {p0, p1, p2}, Lcom/huawei/updatesdk/sdk/a/b/b;->createSocket(Ljava/lang/String;I)Ljava/net/Socket;
move-result-object v0
return-object v0
.end method
.method public createSocket(Ljava/net/InetAddress;I)Ljava/net/Socket;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
invoke-virtual {p1}, Ljava/net/InetAddress;->getHostAddress()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0, p2}, Lcom/huawei/updatesdk/sdk/a/b/b;->createSocket(Ljava/lang/String;I)Ljava/net/Socket;
move-result-object v0
return-object v0
.end method
.method public createSocket(Ljava/net/InetAddress;ILjava/net/InetAddress;I)Ljava/net/Socket;
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
invoke-virtual {p1}, Ljava/net/InetAddress;->getHostAddress()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0, p2}, Lcom/huawei/updatesdk/sdk/a/b/b;->createSocket(Ljava/lang/String;I)Ljava/net/Socket;
move-result-object v0
return-object v0
.end method
.method public createSocket(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
iget-object v0, p0, Lcom/huawei/updatesdk/sdk/a/b/b;->f:Ljavax/net/ssl/SSLContext;
invoke-virtual {v0}, Ljavax/net/ssl/SSLContext;->getSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
move-result-object v0
invoke-virtual {v0, p1, p2, p3, p4}, Ljavax/net/ssl/SSLSocketFactory;->createSocket(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;
move-result-object v0
invoke-direct {p0, v0}, Lcom/huawei/updatesdk/sdk/a/b/b;->a(Ljava/net/Socket;)V
return-object v0
.end method
.method public getDefaultCipherSuites()[Ljava/lang/String;
.registers 2
sget-object v0, Lcom/huawei/updatesdk/sdk/a/b/b;->e:[Ljava/lang/String;
if-eqz v0, :cond_d
sget-object v0, Lcom/huawei/updatesdk/sdk/a/b/b;->e:[Ljava/lang/String;
invoke-virtual {v0}, [Ljava/lang/String;->clone()Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/String;
:goto_c
return-object v0
:cond_d
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/String;
goto :goto_c
.end method
.method public getSupportedCipherSuites()[Ljava/lang/String;
.registers 2
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/String;
return-object v0
.end method