.class Lcom/firemonkeys/cloudcellapi/TLSSocketFactory; .super Ljavax/net/ssl/SSLSocketFactory; .source "SourceFile" # instance fields .field private internalSSLSocketFactory:Ljavax/net/ssl/SSLSocketFactory; # direct methods .method public constructor (Ljavax/net/ssl/SSLSocketFactory;)V .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/security/KeyManagementException;, Ljava/security/NoSuchAlgorithmException; } .end annotation .line 268 invoke-direct {p0}, Ljavax/net/ssl/SSLSocketFactory;->()V iput-object p1, p0, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->internalSSLSocketFactory:Ljavax/net/ssl/SSLSocketFactory; return-void .end method .method private enableTLSOnSocket(Ljava/net/Socket;)Ljava/net/Socket; .locals 8 const-string v0, "TLSv1.2" const-string v1, "TLSv1.1" filled-new-array {v0, v1}, [Ljava/lang/String; move-result-object v0 if-eqz p1, :cond_2 .line 324 instance-of v1, p1, Ljavax/net/ssl/SSLSocket; if-eqz v1, :cond_2 .line 326 move-object v1, p1 check-cast v1, Ljavax/net/ssl/SSLSocket; .line 327 new-instance v2, Ljava/util/ArrayList; invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;->getEnabledProtocols()[Ljava/lang/String; move-result-object v3 invoke-static {v3}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; move-result-object v3 invoke-direct {v2, v3}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V .line 328 invoke-virtual {v1}, Ljavax/net/ssl/SSLSocket;->getSupportedProtocols()[Ljava/lang/String; move-result-object v3 invoke-static {v3}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; move-result-object v3 const/4 v4, 0x0 move v5, v4 :goto_0 const/4 v6, 0x2 if-ge v5, v6, :cond_1 .line 329 aget-object v6, v0, v5 .line 331 invoke-interface {v3, v6}, Ljava/util/List;->contains(Ljava/lang/Object;)Z move-result v7 if-eqz v7, :cond_0 invoke-virtual {v2, v6}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z move-result v7 if-nez v7, :cond_0 .line 333 invoke-virtual {v2, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z :cond_0 add-int/lit8 v5, v5, 0x1 goto :goto_0 :cond_1 new-array v0, v4, [Ljava/lang/String; .line 336 invoke-virtual {v2, v0}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; move-result-object v0 check-cast v0, [Ljava/lang/String; invoke-virtual {v1, v0}, Ljavax/net/ssl/SSLSocket;->setEnabledProtocols([Ljava/lang/String;)V :cond_2 return-object p1 .end method # virtual methods .method public createSocket()Ljava/net/Socket; .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation iget-object v0, p0, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->internalSSLSocketFactory:Ljavax/net/ssl/SSLSocketFactory; .line 287 invoke-virtual {v0}, Ljavax/net/SocketFactory;->createSocket()Ljava/net/Socket; move-result-object v0 invoke-direct {p0, v0}, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->enableTLSOnSocket(Ljava/net/Socket;)Ljava/net/Socket; move-result-object v0 return-object v0 .end method .method public createSocket(Ljava/lang/String;I)Ljava/net/Socket; .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException;, Ljava/net/UnknownHostException; } .end annotation iget-object v0, p0, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->internalSSLSocketFactory:Ljavax/net/ssl/SSLSocketFactory; .line 299 invoke-virtual {v0, p1, p2}, Ljavax/net/SocketFactory;->createSocket(Ljava/lang/String;I)Ljava/net/Socket; move-result-object p1 invoke-direct {p0, p1}, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->enableTLSOnSocket(Ljava/net/Socket;)Ljava/net/Socket; move-result-object p1 return-object p1 .end method .method public createSocket(Ljava/lang/String;ILjava/net/InetAddress;I)Ljava/net/Socket; .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException;, Ljava/net/UnknownHostException; } .end annotation iget-object v0, p0, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->internalSSLSocketFactory:Ljavax/net/ssl/SSLSocketFactory; .line 305 invoke-virtual {v0, p1, p2, p3, p4}, Ljavax/net/SocketFactory;->createSocket(Ljava/lang/String;ILjava/net/InetAddress;I)Ljava/net/Socket; move-result-object p1 invoke-direct {p0, p1}, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->enableTLSOnSocket(Ljava/net/Socket;)Ljava/net/Socket; move-result-object p1 return-object p1 .end method .method public createSocket(Ljava/net/InetAddress;I)Ljava/net/Socket; .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation iget-object v0, p0, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->internalSSLSocketFactory:Ljavax/net/ssl/SSLSocketFactory; .line 311 invoke-virtual {v0, p1, p2}, Ljavax/net/SocketFactory;->createSocket(Ljava/net/InetAddress;I)Ljava/net/Socket; move-result-object p1 invoke-direct {p0, p1}, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->enableTLSOnSocket(Ljava/net/Socket;)Ljava/net/Socket; move-result-object p1 return-object p1 .end method .method public createSocket(Ljava/net/InetAddress;ILjava/net/InetAddress;I)Ljava/net/Socket; .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation iget-object v0, p0, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->internalSSLSocketFactory:Ljavax/net/ssl/SSLSocketFactory; .line 318 invoke-virtual {v0, p1, p2, p3, p4}, Ljavax/net/SocketFactory;->createSocket(Ljava/net/InetAddress;ILjava/net/InetAddress;I)Ljava/net/Socket; move-result-object p1 invoke-direct {p0, p1}, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->enableTLSOnSocket(Ljava/net/Socket;)Ljava/net/Socket; move-result-object p1 return-object p1 .end method .method public createSocket(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket; .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation iget-object v0, p0, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->internalSSLSocketFactory:Ljavax/net/ssl/SSLSocketFactory; .line 293 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 invoke-direct {p0, p1}, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->enableTLSOnSocket(Ljava/net/Socket;)Ljava/net/Socket; move-result-object p1 return-object p1 .end method .method public getDefaultCipherSuites()[Ljava/lang/String; .locals 1 iget-object v0, p0, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->internalSSLSocketFactory:Ljavax/net/ssl/SSLSocketFactory; .line 275 invoke-virtual {v0}, Ljavax/net/ssl/SSLSocketFactory;->getDefaultCipherSuites()[Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public getSupportedCipherSuites()[Ljava/lang/String; .locals 1 iget-object v0, p0, Lcom/firemonkeys/cloudcellapi/TLSSocketFactory;->internalSSLSocketFactory:Ljavax/net/ssl/SSLSocketFactory; .line 281 invoke-virtual {v0}, Ljavax/net/ssl/SSLSocketFactory;->getSupportedCipherSuites()[Ljava/lang/String; move-result-object v0 return-object v0 .end method