b.smali
.class public Lbb/b;
.super Ljavax/net/ssl/SSLSocketFactory;
.source "SSLSocketFactoryCompat.java"
# static fields
.field public static b:[Ljava/lang/String;
.field public static c:[Ljava/lang/String;
# instance fields
.field public a:Ljavax/net/ssl/SSLSocketFactory;
# direct methods
.method public static constructor <clinit>()V
.registers 17
const/4 v1, 0x0
:try_start_1
invoke-static {}, Ljavax/net/ssl/SSLSocketFactory;->getDefault()Ljavax/net/SocketFactory;
move-result-object v0
invoke-virtual {v0}, Ljavax/net/SocketFactory;->createSocket()Ljava/net/Socket;
move-result-object v0
move-object v2, v0
check-cast v2, Ljavax/net/ssl/SSLSocket;
:try_end_c
.catchall {:try_start_1 .. :try_end_c} :catchall_9f
if-eqz v2, :cond_99
:try_start_e
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
invoke-virtual {v2}, Ljavax/net/ssl/SSLSocket;->getSupportedProtocols()[Ljava/lang/String;
move-result-object v1
array-length v3, v1
const/4 v4, 0x0
:goto_19
if-ge v4, v3, :cond_2f
aget-object v5, v1, v4
invoke-virtual {v5}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;
move-result-object v6
const-string v7, "SSL"
invoke-virtual {v6, v7}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v6
if-nez v6, :cond_2c
invoke-interface {v0, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:cond_2c
add-int/lit8 v4, v4, 0x1
goto :goto_19
:cond_2f
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
new-array v1, v1, [Ljava/lang/String;
invoke-interface {v0, v1}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/String;
sput-object v0, Lbb/b;->b:[Ljava/lang/String;
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x15
if-ge v0, v1, :cond_99
const-string v3, "TLS_RSA_WITH_AES_256_GCM_SHA384"
const-string v4, "TLS_RSA_WITH_AES_128_GCM_SHA256"
const-string v5, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"
const-string v6, "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
const-string v7, "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
const-string v8, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
const-string v9, "TLS_ECHDE_RSA_WITH_AES_128_GCM_SHA256"
const-string v10, "TLS_RSA_WITH_3DES_EDE_CBC_SHA"
const-string v11, "TLS_RSA_WITH_AES_128_CBC_SHA"
const-string v12, "TLS_RSA_WITH_AES_256_CBC_SHA"
const-string v13, "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA"
const-string v14, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA"
const-string v15, "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA"
const-string v16, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"
filled-new-array/range {v3 .. v16}, [Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v0
invoke-virtual {v2}, Ljavax/net/ssl/SSLSocket;->getSupportedCipherSuites()[Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
new-instance v3, Ljava/util/HashSet;
invoke-direct {v3, v0}, Ljava/util/HashSet;-><init>(Ljava/util/Collection;)V
invoke-virtual {v3, v1}, Ljava/util/HashSet;->retainAll(Ljava/util/Collection;)Z
new-instance v0, Ljava/util/HashSet;
invoke-virtual {v2}, Ljavax/net/ssl/SSLSocket;->getEnabledCipherSuites()[Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-direct {v0, v1}, Ljava/util/HashSet;-><init>(Ljava/util/Collection;)V
invoke-virtual {v3, v0}, Ljava/util/HashSet;->addAll(Ljava/util/Collection;)Z
invoke-virtual {v3}, Ljava/util/HashSet;->size()I
move-result v0
new-array v0, v0, [Ljava/lang/String;
invoke-virtual {v3, v0}, Ljava/util/HashSet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/String;
sput-object v0, Lbb/b;->c:[Ljava/lang/String;
:try_end_95
.catchall {:try_start_e .. :try_end_95} :catchall_96
goto :goto_99
:catchall_96
move-exception v0
move-object v1, v2
goto :goto_a0
:cond_99
:goto_99
if-eqz v2, :cond_a8
:try_start_9b
invoke-virtual {v2}, Ljavax/net/ssl/SSLSocket;->close()V
:try_end_9e
.catch Ljava/lang/Exception; {:try_start_9b .. :try_end_9e} :catch_a8
goto :goto_a8
:catchall_9f
move-exception v0
:goto_a0
:try_start_a0
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
:try_end_a3
.catchall {:try_start_a0 .. :try_end_a3} :catchall_a9
if-eqz v1, :cond_a8
:try_start_a5
invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;->close()V
:try_end_a8
.catch Ljava/lang/Exception; {:try_start_a5 .. :try_end_a8} :catch_a8
:catch_a8
:cond_a8
:goto_a8
return-void
:catchall_a9
move-exception v0
move-object v2, v0
if-eqz v1, :cond_b0
:try_start_ad
invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;->close()V
:try_end_b0
.catch Ljava/lang/Exception; {:try_start_ad .. :try_end_b0} :catch_b0
:catch_b0
:cond_b0
goto :goto_b2
:goto_b1
throw v2
:goto_b2
goto :goto_b1
.end method
.method public constructor <init>(Ljavax/net/ssl/SSLSocketFactory;)V
.registers 2
invoke-direct {p0}, Ljavax/net/ssl/SSLSocketFactory;-><init>()V
iput-object p1, p0, Lbb/b;->a:Ljavax/net/ssl/SSLSocketFactory;
return-void
.end method
# virtual methods
.method public final a(Ljavax/net/ssl/SSLSocket;)V
.registers 4
sget-object v0, Lbb/b;->b:[Ljava/lang/String;
if-eqz v0, :cond_7
invoke-virtual {p1, v0}, Ljavax/net/ssl/SSLSocket;->setEnabledProtocols([Ljava/lang/String;)V
:cond_7
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x15
if-ge v0, v1, :cond_14
sget-object v0, Lbb/b;->c:[Ljava/lang/String;
if-eqz v0, :cond_14
invoke-virtual {p1, v0}, Ljavax/net/ssl/SSLSocket;->setEnabledCipherSuites([Ljava/lang/String;)V
:cond_14
return-void
.end method
.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, Lbb/b;->a:Ljavax/net/ssl/SSLSocketFactory;
invoke-virtual {v0, p1, p2}, Ljavax/net/ssl/SSLSocketFactory;->createSocket(Ljava/lang/String;I)Ljava/net/Socket;
move-result-object p1
instance-of p2, p1, Ljavax/net/ssl/SSLSocket;
if-eqz p2, :cond_10
move-object p2, p1
check-cast p2, Ljavax/net/ssl/SSLSocket;
invoke-virtual {p0, p2}, Lbb/b;->a(Ljavax/net/ssl/SSLSocket;)V
:cond_10
return-object p1
.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
iget-object v0, p0, Lbb/b;->a:Ljavax/net/ssl/SSLSocketFactory;
invoke-virtual {v0, p1, p2, p3, p4}, Ljavax/net/ssl/SSLSocketFactory;->createSocket(Ljava/lang/String;ILjava/net/InetAddress;I)Ljava/net/Socket;
move-result-object p1
instance-of p2, p1, Ljavax/net/ssl/SSLSocket;
if-eqz p2, :cond_10
move-object p2, p1
check-cast p2, Ljavax/net/ssl/SSLSocket;
invoke-virtual {p0, p2}, Lbb/b;->a(Ljavax/net/ssl/SSLSocket;)V
:cond_10
return-object p1
.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
iget-object v0, p0, Lbb/b;->a:Ljavax/net/ssl/SSLSocketFactory;
invoke-virtual {v0, p1, p2}, Ljavax/net/ssl/SSLSocketFactory;->createSocket(Ljava/net/InetAddress;I)Ljava/net/Socket;
move-result-object p1
instance-of p2, p1, Ljavax/net/ssl/SSLSocket;
if-eqz p2, :cond_10
move-object p2, p1
check-cast p2, Ljavax/net/ssl/SSLSocket;
invoke-virtual {p0, p2}, Lbb/b;->a(Ljavax/net/ssl/SSLSocket;)V
:cond_10
return-object p1
.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
iget-object v0, p0, Lbb/b;->a:Ljavax/net/ssl/SSLSocketFactory;
invoke-virtual {v0, p1, p2, p3, p4}, Ljavax/net/ssl/SSLSocketFactory;->createSocket(Ljava/net/InetAddress;ILjava/net/InetAddress;I)Ljava/net/Socket;
move-result-object p1
instance-of p2, p1, Ljavax/net/ssl/SSLSocket;
if-eqz p2, :cond_10
move-object p2, p1
check-cast p2, Ljavax/net/ssl/SSLSocket;
invoke-virtual {p0, p2}, Lbb/b;->a(Ljavax/net/ssl/SSLSocket;)V
:cond_10
return-object p1
.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, Lbb/b;->a:Ljavax/net/ssl/SSLSocketFactory;
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 p1
instance-of p2, p1, Ljavax/net/ssl/SSLSocket;
if-eqz p2, :cond_10
move-object p2, p1
check-cast p2, Ljavax/net/ssl/SSLSocket;
invoke-virtual {p0, p2}, Lbb/b;->a(Ljavax/net/ssl/SSLSocket;)V
:cond_10
return-object p1
.end method
.method public getDefaultCipherSuites()[Ljava/lang/String;
.registers 2
sget-object v0, Lbb/b;->c:[Ljava/lang/String;
return-object v0
.end method
.method public getSupportedCipherSuites()[Ljava/lang/String;
.registers 2
sget-object v0, Lbb/b;->c:[Ljava/lang/String;
return-object v0
.end method