d.smali
3.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
.class public final Lb/h0/j/d;
.super Lb/h0/j/g;
# instance fields
.field public final c:Ljava/lang/reflect/Method;
.field public final d:Ljava/lang/reflect/Method;
# direct methods
.method public constructor <init>(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
.locals 0
invoke-direct {p0}, Lb/h0/j/g;-><init>()V
iput-object p1, p0, Lb/h0/j/d;->c:Ljava/lang/reflect/Method;
iput-object p2, p0, Lb/h0/j/d;->d:Ljava/lang/reflect/Method;
return-void
.end method
# virtual methods
.method public a(Ljavax/net/ssl/SSLSocket;Ljava/lang/String;Ljava/util/List;)V
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljavax/net/ssl/SSLSocket;",
"Ljava/lang/String;",
"Ljava/util/List<",
"Lb/x;",
">;)V"
}
.end annotation
:try_start_0
invoke-virtual {p1}, Ljavax/net/ssl/SSLSocket;->getSSLParameters()Ljavax/net/ssl/SSLParameters;
move-result-object p2
invoke-static {p3}, Lb/h0/j/g;->a(Ljava/util/List;)Ljava/util/List;
move-result-object p3
iget-object v0, p0, Lb/h0/j/d;->c:Ljava/lang/reflect/Method;
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/Object;
const/4 v2, 0x0
check-cast p3, Ljava/util/ArrayList;
invoke-virtual {p3}, Ljava/util/ArrayList;->size()I
move-result v3
new-array v3, v3, [Ljava/lang/String;
invoke-virtual {p3, v3}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object p3
aput-object p3, v1, v2
invoke-virtual {v0, p2, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
invoke-virtual {p1, p2}, Ljavax/net/ssl/SSLSocket;->setSSLParameters(Ljavax/net/ssl/SSLParameters;)V
:try_end_0
.catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_1
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_0
return-void
:catch_0
move-exception p1
goto :goto_0
:catch_1
move-exception p1
:goto_0
const-string p2, "unable to set ssl parameters"
invoke-static {p2, p1}, Lb/h0/c;->a(Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/AssertionError;
move-result-object p1
throw p1
.end method
.method public b(Ljavax/net/ssl/SSLSocket;)Ljava/lang/String;
.locals 4
.annotation runtime Ljavax/annotation/Nullable;
.end annotation
const-string v0, "failed to get ALPN selected protocol"
const/4 v1, 0x0
:try_start_0
iget-object v2, p0, Lb/h0/j/d;->d:Ljava/lang/reflect/Method;
const/4 v3, 0x0
new-array v3, v3, [Ljava/lang/Object;
invoke-virtual {v2, p1, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/String;
if-eqz p1, :cond_1
const-string v2, ""
invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
:try_end_0
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_1
.catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_0
if-eqz v0, :cond_0
goto :goto_0
:cond_0
return-object p1
:cond_1
:goto_0
return-object v1
:catch_0
move-exception p1
invoke-static {v0, p1}, Lb/h0/c;->a(Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/AssertionError;
move-result-object p1
throw p1
:catch_1
move-exception p1
invoke-virtual {p1}, Ljava/lang/reflect/InvocationTargetException;->getCause()Ljava/lang/Throwable;
move-result-object v2
instance-of v2, v2, Ljava/lang/UnsupportedOperationException;
if-eqz v2, :cond_2
return-object v1
:cond_2
invoke-static {v0, p1}, Lb/h0/c;->a(Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/AssertionError;
move-result-object p1
throw p1
.end method