v.smali
.class Lcom/alibaba/mtl/log/d/v;
.super Ljavax/net/ssl/X509ExtendedTrustManager;
.source "UtExtendTrustManager.java"
# annotations
.annotation build Landroid/annotation/TargetApi;
value = 0x18
.end annotation
# static fields
.field private static a:[Ljavax/net/ssl/TrustManager;
# direct methods
.method static constructor <clinit>()V
.registers 0
return-void
.end method
.method constructor <init>()V
.registers 1
.line 1
invoke-direct {p0}, Ljavax/net/ssl/X509ExtendedTrustManager;-><init>()V
return-void
.end method
.method static declared-synchronized getTrustManagers()[Ljavax/net/ssl/TrustManager;
.registers 4
const-class v0, Lcom/alibaba/mtl/log/d/v;
monitor-enter v0
.line 1
:try_start_3
sget-object v1, Lcom/alibaba/mtl/log/d/v;->a:[Ljavax/net/ssl/TrustManager;
if-nez v1, :cond_14
const/4 v1, 0x1
.line 2
new-array v1, v1, [Ljavax/net/ssl/TrustManager;
const/4 v2, 0x0
new-instance v3, Lcom/alibaba/mtl/log/d/v;
invoke-direct {v3}, Lcom/alibaba/mtl/log/d/v;-><init>()V
aput-object v3, v1, v2
sput-object v1, Lcom/alibaba/mtl/log/d/v;->a:[Ljavax/net/ssl/TrustManager;
.line 3
:cond_14
sget-object v1, Lcom/alibaba/mtl/log/d/v;->a:[Ljavax/net/ssl/TrustManager;
:try_end_16
.catchall {:try_start_3 .. :try_end_16} :catchall_18
monitor-exit v0
return-object v1
:catchall_18
move-exception v1
monitor-exit v0
throw v1
.end method
# virtual methods
.method public checkClientTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/security/cert/CertificateException;
}
.end annotation
const/4 p1, 0x1
.line 1
new-array p1, p1, [Ljava/lang/Object;
const/4 p2, 0x0
const-string v0, "checkClientTrusted1"
aput-object v0, p1, p2
const-string p2, "UtExtendTrustManager"
invoke-static {p2, p1}, Lcom/alibaba/mtl/log/d/i;->a(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
.method public checkClientTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/security/cert/CertificateException;
}
.end annotation
const/4 p3, 0x1
.line 2
new-array p3, p3, [Ljava/lang/Object;
const/4 v0, 0x0
const-string v1, "checkClientTrusted2"
aput-object v1, p3, v0
const-string v1, "UtExtendTrustManager"
invoke-static {v1, p3}, Lcom/alibaba/mtl/log/d/i;->a(Ljava/lang/String;[Ljava/lang/Object;)V
const-string p3, "parameter is not used"
if-eqz p1, :cond_30
.line 3
array-length v1, p1
if-eqz v1, :cond_30
if-eqz p2, :cond_2a
.line 4
invoke-virtual {p2}, Ljava/lang/String;->length()I
move-result p2
if-eqz p2, :cond_2a
.line 5
:try_start_1c
aget-object p1, p1, v0
invoke-virtual {p1}, Ljava/security/cert/X509Certificate;->checkValidity()V
:try_end_21
.catch Ljava/lang/Exception; {:try_start_1c .. :try_end_21} :catch_22
return-void
.line 6
:catch_22
new-instance p1, Ljava/security/cert/CertificateException;
const-string p2, "Certificate not valid or trusted."
invoke-direct {p1, p2}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/String;)V
throw p1
.line 7
:cond_2a
new-instance p1, Ljava/lang/IllegalArgumentException;
invoke-direct {p1, p3}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.line 8
:cond_30
new-instance p1, Ljava/lang/IllegalArgumentException;
invoke-direct {p1, p3}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public checkClientTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLEngine;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/security/cert/CertificateException;
}
.end annotation
const/4 p1, 0x1
.line 9
new-array p1, p1, [Ljava/lang/Object;
const/4 p2, 0x0
const-string p3, "checkClientTrusted3"
aput-object p3, p1, p2
const-string p2, "UtExtendTrustManager"
invoke-static {p2, p1}, Lcom/alibaba/mtl/log/d/i;->a(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
.method public checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/security/cert/CertificateException;
}
.end annotation
const/4 v0, 0x1
.line 1
new-array v0, v0, [Ljava/lang/Object;
const/4 v1, 0x0
const-string v2, "checkServerTrusted1"
aput-object v2, v0, v1
const-string v2, "UtExtendTrustManager"
invoke-static {v2, v0}, Lcom/alibaba/mtl/log/d/i;->a(Ljava/lang/String;[Ljava/lang/Object;)V
if-eqz p1, :cond_58
.line 2
array-length v0, p1
if-lez v0, :cond_58
:try_start_12
const-string v0, "X509"
.line 3
invoke-static {v0}, Ljavax/net/ssl/TrustManagerFactory;->getInstance(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
move-result-object v0
const/4 v2, 0x0
.line 4
invoke-virtual {v0, v2}, Ljavax/net/ssl/TrustManagerFactory;->init(Ljava/security/KeyStore;)V
:try_end_1c
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_12 .. :try_end_1c} :catch_51
.catch Ljava/security/KeyStoreException; {:try_start_12 .. :try_end_1c} :catch_4a
if-eqz v0, :cond_49
.line 5
invoke-virtual {v0}, Ljavax/net/ssl/TrustManagerFactory;->getTrustManagers()[Ljavax/net/ssl/TrustManager;
move-result-object v2
if-eqz v2, :cond_49
.line 6
invoke-virtual {v0}, Ljavax/net/ssl/TrustManagerFactory;->getTrustManagers()[Ljavax/net/ssl/TrustManager;
move-result-object v0
array-length v2, v0
:goto_29
if-ge v1, v2, :cond_49
aget-object v3, v0, v1
.line 7
:try_start_2d
check-cast v3, Ljavax/net/ssl/X509TrustManager;
invoke-interface {v3, p1, p2}, Ljavax/net/ssl/X509TrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
:try_end_32
.catch Ljava/security/cert/CertificateException; {:try_start_2d .. :try_end_32} :catch_35
add-int/lit8 v1, v1, 0x1
goto :goto_29
:catch_35
move-exception p1
move-object p2, p1
:goto_37
if-eqz p2, :cond_48
.line 8
instance-of v0, p2, Ljava/security/cert/CertificateExpiredException;
if-nez v0, :cond_47
instance-of v0, p2, Ljava/security/cert/CertificateNotYetValidException;
if-eqz v0, :cond_42
goto :goto_47
.line 9
:cond_42
invoke-virtual {p2}, Ljava/lang/Throwable;->getCause()Ljava/lang/Throwable;
move-result-object p2
goto :goto_37
:cond_47
:goto_47
return-void
.line 10
:cond_48
throw p1
:cond_49
return-void
:catch_4a
move-exception p1
.line 11
new-instance p2, Ljava/security/cert/CertificateException;
invoke-direct {p2, p1}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/Throwable;)V
throw p2
:catch_51
move-exception p1
.line 12
new-instance p2, Ljava/security/cert/CertificateException;
invoke-direct {p2, p1}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/Throwable;)V
throw p2
.line 13
:cond_58
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "checkServerTrusted: X509Certificate array is null"
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
goto :goto_61
:goto_60
throw p1
:goto_61
goto :goto_60
.end method
.method public checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/security/cert/CertificateException;
}
.end annotation
const/4 p1, 0x1
.line 14
new-array p1, p1, [Ljava/lang/Object;
const/4 p2, 0x0
const-string p3, "checkServerTrusted2"
aput-object p3, p1, p2
const-string p2, "UtExtendTrustManager"
invoke-static {p2, p1}, Lcom/alibaba/mtl/log/d/i;->a(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
.method public checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLEngine;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/security/cert/CertificateException;
}
.end annotation
const/4 p1, 0x1
.line 15
new-array p1, p1, [Ljava/lang/Object;
const/4 p2, 0x0
const-string p3, "checkServerTrusted3"
aput-object p3, p1, p2
const-string p2, "UtExtendTrustManager"
invoke-static {p2, p1}, Lcom/alibaba/mtl/log/d/i;->a(Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method
.method public getAcceptedIssuers()[Ljava/security/cert/X509Certificate;
.registers 2
const/4 v0, 0x0
.line 1
new-array v0, v0, [Ljava/security/cert/X509Certificate;
return-object v0
.end method