.class public final Lc0/g0/k/d; .super Lc0/g0/k/h; .source "ConscryptPlatform.kt" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lc0/g0/k/d$a; } .end annotation # static fields .field public static final e:Z .field public static final f:Lc0/g0/k/d$a; # instance fields .field public final d:Ljava/security/Provider; # direct methods .method public static constructor ()V .locals 4 new-instance v0, Lc0/g0/k/d$a; const/4 v1, 0x0 invoke-direct {v0, v1}, Lc0/g0/k/d$a;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V sput-object v0, Lc0/g0/k/d;->f:Lc0/g0/k/d$a; const/4 v1, 0x0 :try_start_0 const-string v2, "org.conscrypt.Conscrypt$Version" invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v3 invoke-virtual {v3}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object v3 invoke-static {v2, v1, v3}, Ljava/lang/Class;->forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class; invoke-static {}, Lorg/conscrypt/Conscrypt;->isAvailable()Z move-result v2 const/4 v3, 0x1 if-eqz v2, :cond_0 const/4 v2, 0x2 invoke-virtual {v0, v2, v3, v1}, Lc0/g0/k/d$a;->a(III)Z move-result v0 :try_end_0 .catch Ljava/lang/NoClassDefFoundError; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 if-eqz v0, :cond_0 const/4 v1, 0x1 :catch_0 :cond_0 sput-boolean v1, Lc0/g0/k/d;->e:Z return-void .end method .method public constructor ()V .locals 2 invoke-direct {p0}, Lc0/g0/k/h;->()V invoke-static {}, Lorg/conscrypt/Conscrypt;->newProviderBuilder()Lorg/conscrypt/Conscrypt$ProviderBuilder; move-result-object v0 const/4 v1, 0x1 invoke-virtual {v0, v1}, Lorg/conscrypt/Conscrypt$ProviderBuilder;->provideTrustManager(Z)Lorg/conscrypt/Conscrypt$ProviderBuilder; move-result-object v0 invoke-virtual {v0}, Lorg/conscrypt/Conscrypt$ProviderBuilder;->build()Ljava/security/Provider; move-result-object v0 const-string v1, "Conscrypt.newProviderBui\u2026rustManager(true).build()" invoke-static {v0, v1}, Ly/m/c/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V iput-object v0, p0, Lc0/g0/k/d;->d:Ljava/security/Provider; return-void .end method # virtual methods .method public d(Ljavax/net/ssl/SSLSocket;Ljava/lang/String;Ljava/util/List;)V .locals 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljavax/net/ssl/SSLSocket;", "Ljava/lang/String;", "Ljava/util/List<", "Lc0/z;", ">;)V" } .end annotation const-string p2, "sslSocket" invoke-static {p1, p2}, Ly/m/c/j;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "protocols" invoke-static {p3, v0}, Ly/m/c/j;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V invoke-static {p1}, Lorg/conscrypt/Conscrypt;->isConscrypt(Ljavax/net/ssl/SSLSocket;)Z move-result v1 if-eqz v1, :cond_5 const/4 p2, 0x1 invoke-static {p1, p2}, Lorg/conscrypt/Conscrypt;->setUseSessionTickets(Ljavax/net/ssl/SSLSocket;Z)V invoke-static {p3, v0}, Ly/m/c/j;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()V invoke-interface {p3}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; move-result-object p3 :cond_0 :goto_0 invoke-interface {p3}, Ljava/util/Iterator;->hasNext()Z move-result v1 const/4 v2, 0x0 if-eqz v1, :cond_2 invoke-interface {p3}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 move-object v3, v1 check-cast v3, Lc0/z; sget-object v4, Lc0/z;->d:Lc0/z; if-eq v3, v4, :cond_1 const/4 v2, 0x1 :cond_1 if-eqz v2, :cond_0 invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z goto :goto_0 :cond_2 new-instance p2, Ljava/util/ArrayList; const/16 p3, 0xa invoke-static {v0, p3}, Lf/h/a/f/f/n/f;->collectionSizeOrDefault(Ljava/lang/Iterable;I)I move-result p3 invoke-direct {p2, p3}, Ljava/util/ArrayList;->(I)V invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; move-result-object p3 :goto_1 invoke-interface {p3}, Ljava/util/Iterator;->hasNext()Z move-result v0 if-eqz v0, :cond_3 invoke-interface {p3}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 check-cast v0, Lc0/z; invoke-virtual {v0}, Lc0/z;->toString()Ljava/lang/String; move-result-object v0 invoke-virtual {p2, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z goto :goto_1 :cond_3 new-array p3, v2, [Ljava/lang/String; invoke-virtual {p2, p3}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; move-result-object p2 if-eqz p2, :cond_4 check-cast p2, [Ljava/lang/String; invoke-static {p1, p2}, Lorg/conscrypt/Conscrypt;->setApplicationProtocols(Ljavax/net/ssl/SSLSocket;[Ljava/lang/String;)V goto :goto_2 :cond_4 new-instance p1, Lkotlin/TypeCastException; const-string p2, "null cannot be cast to non-null type kotlin.Array" invoke-direct {p1, p2}, Lkotlin/TypeCastException;->(Ljava/lang/String;)V throw p1 :cond_5 invoke-static {p1, p2}, Ly/m/c/j;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V invoke-static {p3, v0}, Ly/m/c/j;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V :goto_2 return-void .end method .method public f(Ljavax/net/ssl/SSLSocket;)Ljava/lang/String; .locals 1 const-string v0, "sslSocket" invoke-static {p1, v0}, Ly/m/c/j;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V invoke-static {p1}, Lorg/conscrypt/Conscrypt;->isConscrypt(Ljavax/net/ssl/SSLSocket;)Z move-result v0 if-eqz v0, :cond_0 invoke-static {p1}, Lorg/conscrypt/Conscrypt;->getApplicationProtocol(Ljavax/net/ssl/SSLSocket;)Ljava/lang/String; move-result-object p1 goto :goto_0 :cond_0 invoke-super {p0, p1}, Lc0/g0/k/h;->f(Ljavax/net/ssl/SSLSocket;)Ljava/lang/String; const/4 p1, 0x0 :goto_0 return-object p1 .end method .method public l()Ljavax/net/ssl/SSLContext; .locals 2 iget-object v0, p0, Lc0/g0/k/d;->d:Ljava/security/Provider; const-string v1, "TLS" invoke-static {v1, v0}, Ljavax/net/ssl/SSLContext;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/net/ssl/SSLContext; move-result-object v0 const-string v1, "SSLContext.getInstance(\"TLS\", provider)" invoke-static {v0, v1}, Ly/m/c/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V return-object v0 .end method .method public m(Ljavax/net/ssl/X509TrustManager;)Ljavax/net/ssl/SSLSocketFactory; .locals 4 const-string/jumbo v0, "trustManager" invoke-static {p1, v0}, Ly/m/c/j;->checkParameterIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V iget-object v0, p0, Lc0/g0/k/d;->d:Ljava/security/Provider; const-string v1, "TLS" invoke-static {v1, v0}, Ljavax/net/ssl/SSLContext;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/net/ssl/SSLContext; move-result-object v0 const-string v1, "SSLContext.getInstance(\"TLS\", provider)" invoke-static {v0, v1}, Ly/m/c/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V const/4 v1, 0x1 new-array v2, v1, [Ljavax/net/ssl/TrustManager; const/4 v3, 0x0 aput-object p1, v2, v3 const/4 p1, 0x0 invoke-virtual {v0, p1, v2, p1}, Ljavax/net/ssl/SSLContext;->init([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V invoke-virtual {v0}, Ljavax/net/ssl/SSLContext;->getSocketFactory()Ljavax/net/ssl/SSLSocketFactory; move-result-object p1 invoke-static {p1, v1}, Lorg/conscrypt/Conscrypt;->setUseEngineSocket(Ljavax/net/ssl/SSLSocketFactory;Z)V const-string v0, "newSSLContext().apply {\n\u2026ineSocket(it, true)\n }" invoke-static {p1, v0}, Ly/m/c/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V return-object p1 .end method .method public n()Ljavax/net/ssl/X509TrustManager; .locals 4 invoke-static {}, Ljavax/net/ssl/TrustManagerFactory;->getDefaultAlgorithm()Ljava/lang/String; move-result-object v0 invoke-static {v0}, Ljavax/net/ssl/TrustManagerFactory;->getInstance(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory; move-result-object v0 const/4 v1, 0x0 invoke-virtual {v0, v1}, Ljavax/net/ssl/TrustManagerFactory;->init(Ljava/security/KeyStore;)V const-string v2, "TrustManagerFactory.getI\u2026(null as KeyStore?)\n }" invoke-static {v0, v2}, Ly/m/c/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V invoke-virtual {v0}, Ljavax/net/ssl/TrustManagerFactory;->getTrustManagers()[Ljavax/net/ssl/TrustManager; move-result-object v0 if-eqz v0, :cond_3 array-length v1, v0 const/4 v2, 0x1 const/4 v3, 0x0 if-ne v1, v2, :cond_0 aget-object v1, v0, v3 instance-of v1, v1, Ljavax/net/ssl/X509TrustManager; if-eqz v1, :cond_0 goto :goto_0 :cond_0 const/4 v2, 0x0 :goto_0 if-eqz v2, :cond_2 aget-object v0, v0, v3 if-eqz v0, :cond_1 check-cast v0, Ljavax/net/ssl/X509TrustManager; sget-object v1, Lc0/g0/k/d$b;->a:Lc0/g0/k/d$b; check-cast v1, Lorg/conscrypt/ConscryptHostnameVerifier; invoke-static {v0, v1}, Lorg/conscrypt/Conscrypt;->setHostnameVerifier(Ljavax/net/ssl/TrustManager;Lorg/conscrypt/ConscryptHostnameVerifier;)V return-object v0 :cond_1 new-instance v0, Lkotlin/TypeCastException; const-string v1, "null cannot be cast to non-null type javax.net.ssl.X509TrustManager" invoke-direct {v0, v1}, Lkotlin/TypeCastException;->(Ljava/lang/String;)V throw v0 :cond_2 const-string v1, "Unexpected default trust managers: " invoke-static {v1}, Lf/e/c/a/a;->F(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-static {v0}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String; move-result-object v0 const-string v2, "java.util.Arrays.toString(this)" invoke-static {v0, v2}, Ly/m/c/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 new-instance v1, Ljava/lang/IllegalStateException; invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {v1, v0}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v1 :cond_3 invoke-static {}, Ly/m/c/j;->throwNpe()V throw v1 .end method