| | | |
Offset 1, 28 lines modified | Offset 1, 28 lines modified |
| |
1 | package·com.android.server.wifi; | 1 | package·com.android.server.wifi; |
| |
2 | import·java.util.BitSet; | |
3 | import·java.util.Set; | 2 | import·java.util.Set; |
4 | import·android.net.wifi.WifiConfiguration; | 3 | import·android.net.wifi.WifiConfiguration; |
5 | import·android.text.TextUtils; | |
6 | import·java.security.KeyStoreException; | 4 | import·java.security.KeyStoreException; |
7 | import·android.security.KeyChain; | 5 | import·android.security.KeyChain; |
8 | import·java.util.Iterator; | 6 | import·java.util.Iterator; |
9 | import·java.util.List; | 7 | import·java.util.List; |
10 | import·java.security.cert.X509Certificate; | |
11 | import·java.util.ArrayList; | 8 | import·java.util.ArrayList; |
12 | import·java.util.Collection; | 9 | import·java.util.Collection; |
13 | import·java.util.Arrays; | 10 | import·java.util.Arrays; |
14 | import·android.util.ArraySet; | 11 | import·android.util.ArraySet; |
15 | import·com.android.server.wifi.util.ArrayUtils; | 12 | import·com.android.server.wifi.util.ArrayUtils; |
16 | import·com.android.wifi.x.com.android.internal.util.Preconditions; | 13 | import·com.android.wifi.x.com.android.internal.util.Preconditions; |
17 | import·android.net.wifi.WifiEnterpriseConfig; | 14 | import·android.net.wifi.WifiEnterpriseConfig; |
18 | import·java.security.Key; | 15 | import·java.security.Key; |
19 | import·java.security.cert.Certificate; | 16 | import·java.security.cert.Certificate; |
| 17 | import·javax.security.auth.x500.X500Principal; |
| 18 | import·android.text.TextUtils; |
| 19 | import·java.security.cert.X509Certificate; |
20 | import·android.util.Log; | 20 | import·android.util.Log; |
21 | import·java.security.KeyStore; | 21 | import·java.security.KeyStore; |
| |
22 | public·class·WifiKeyStore | 22 | public·class·WifiKeyStore |
23 | { | 23 | { |
24 | ····private·static·final·String·TAG·=·"WifiKeyStore"; | 24 | ····private·static·final·String·TAG·=·"WifiKeyStore"; |
25 | ····private·final·KeyStore·mKeyStore; | 25 | ····private·final·KeyStore·mKeyStore; |
Offset 32, 14 lines modified | Offset 32, 46 lines modified |
32 | ········this.mVerboseLoggingEnabled·=·false; | 32 | ········this.mVerboseLoggingEnabled·=·false; |
33 | ········this.mKeyStore·=·mKeyStore; | 33 | ········this.mKeyStore·=·mKeyStore; |
34 | ········if·(mKeyStore·==·null)·{ | 34 | ········if·(mKeyStore·==·null)·{ |
35 | ············Log.e("WifiKeyStore",·"Unable·to·retrieve·keystore,·all·key·operations·will·fail"); | 35 | ············Log.e("WifiKeyStore",·"Unable·to·retrieve·keystore,·all·key·operations·will·fail"); |
36 | ········} | 36 | ········} |
37 | ····} | 37 | ····} |
38 | ···· | 38 | ···· |
| 39 | ····private·int·getSuiteBCipherFromCert(final·X509Certificate·x509Certificate)·{ |
| 40 | ········final·String·sigAlgOID·=·x509Certificate.getSigAlgOID(); |
| 41 | ········final·boolean·mVerboseLoggingEnabled·=·this.mVerboseLoggingEnabled; |
| 42 | ········final·String·s·=·"WifiKeyStore"; |
| 43 | ········if·(mVerboseLoggingEnabled)·{ |
| 44 | ············final·X500Principal·subjectX500Principal·=·x509Certificate.getSubjectX500Principal(); |
| 45 | ············if·(subjectX500Principal·!=·null·&&·!TextUtils.isEmpty((CharSequence)subjectX500Principal.getName()))·{ |
| 46 | ················final·StringBuilder·sb·=·new·StringBuilder(); |
| 47 | ················sb.append("Checking·cert·"); |
| 48 | ················sb.append(subjectX500Principal.getName()); |
| 49 | ················Log.d(s,·sb.toString()); |
| 50 | ············} |
| 51 | ········} |
| 52 | ········if·(sigAlgOID.equals("1.2.840.113549.1.1.12"))·{ |
| 53 | ············if·(this.mVerboseLoggingEnabled)·{ |
| 54 | ················Log.d(s,·"Found·Suite-B·RSA·certificate"); |
| 55 | ············} |
| 56 | ············return·1; |
| 57 | ········} |
| 58 | ········if·(sigAlgOID.equals("1.2.840.10045.4.3.3"))·{ |
| 59 | ············if·(this.mVerboseLoggingEnabled)·{ |
| 60 | ················Log.d(s,·"Found·Suite-B·ECDSA·certificate"); |
| 61 | ············} |
| 62 | ············return·0; |
| 63 | ········} |
| 64 | ········final·StringBuilder·sb2·=·new·StringBuilder(); |
| 65 | ········sb2.append("Invalid·certificate·type·for·Suite-B:·"); |
| 66 | ········sb2.append(sigAlgOID); |
| 67 | ········Log.e(s,·sb2.toString()); |
| 68 | ········return·-1; |
| 69 | ····} |
| 70 | ···· |
39 | ····private·static·boolean·hasHardwareBackedKey(final·Certificate·certificate)·{ | 71 | ····private·static·boolean·hasHardwareBackedKey(final·Certificate·certificate)·{ |
40 | ········return·isHardwareBackedKey(certificate.getPublicKey()); | 72 | ········return·isHardwareBackedKey(certificate.getPublicKey()); |
41 | ····} | 73 | ····} |
42 | ···· | 74 | ···· |
43 | ····private·boolean·installKeys(final·WifiEnterpriseConfig·wifiEnterpriseConfig,·final·WifiEnterpriseConfig·wifiEnterpriseConfig2,·final·String·s,·final·String·clientCertificateAlias)·{ | 75 | ····private·boolean·installKeys(final·WifiEnterpriseConfig·wifiEnterpriseConfig,·final·WifiEnterpriseConfig·wifiEnterpriseConfig2,·final·String·s,·final·String·clientCertificateAlias)·{ |
44 | ········Preconditions.checkNotNull((Object)this.mKeyStore); | 76 | ········Preconditions.checkNotNull((Object)this.mKeyStore); |
45 | ········final·X509Certificate[]·clientCertificateChain·=·wifiEnterpriseConfig2.getClientCertificateChain(); | 77 | ········final·X509Certificate[]·clientCertificateChain·=·wifiEnterpriseConfig2.getClientCertificateChain(); |
Offset 170, 132 lines modified | Offset 202, 358 lines modified |
170 | ························} | 202 | ························} |
171 | ····················} | 203 | ····················} |
172 | ················} | 204 | ················} |
173 | ············} | 205 | ············} |
174 | ········} | 206 | ········} |
175 | ····} | 207 | ····} |
176 | ···· | 208 | ···· |
177 | ····public·boolean·updateNetworkKeys(WifiConfiguration·wifiConfiguration,·final·WifiConfiguration·wifiConfiguration2)·{ | 209 | ····public·boolean·updateNetworkKeys(final·WifiConfiguration·p0,·final·WifiConfiguration·p1)·{ |
178 | ········final·String·s·=·"WifiKeyStore"; | 210 | ········//· |
179 | ········Preconditions.checkNotNull((Object)this.mKeyStore); | 211 | ········//·This·method·could·not·be·decompiled. |
180 | ········Preconditions.checkNotNull((Object)wifiConfiguration.enterpriseConfig); | 212 | ········//· |
181 | ········final·WifiEnterpriseConfig·enterpriseConfig·=·wifiConfiguration.enterpriseConfig; | 213 | ········//·Original·Bytecode: |
182 | ········final·String·keyIdForCredentials·=·wifiConfiguration.getKeyIdForCredentials(wifiConfiguration2); | 214 | ········//· |
183 | ········Certificate·certificate·=·null; | 215 | ········//·····2:·astore_3······· |
184 | ········WifiEnterpriseConfig·enterpriseConfig2; | 216 | ········//·····3:·aload_0········ |
185 | ········String·keyIdForCredentials2; | 217 | ········//·····4:·getfield········com/android/server/wifi/WifiKeyStore.mKeyStore:Ljava/security/KeyStore; |
186 | ········if·(wifiConfiguration2·!=·null)·{ | 218 | ········//·····7:·invokestatic····com/android/wifi/x/com/android/internal/util/Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object; |
187 | ············Preconditions.checkNotNull((Object)wifiConfiguration2.enterpriseConfig); | 219 | ········//····10:·pop············ |
188 | ············enterpriseConfig2·=·wifiConfiguration2.enterpriseConfig; | 220 | ········//····11:·aload_1········ |
189 | ············keyIdForCredentials2·=·wifiConfiguration2.getKeyIdForCredentials(wifiConfiguration2); | 221 | ········//····12:·getfield········android/net/wifi/WifiConfiguration.enterpriseConfig:Landroid/net/wifi/WifiEnterpriseConfig; |
190 | ········} | 222 | ········//····15:·invokestatic····com/android/wifi/x/com/android/internal/util/Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object; |
191 | ········else·{ | 223 | ········//····18:·pop············ |
192 | ············keyIdForCredentials2·=·null; | 224 | ········//····19:·aload_1········ |
193 | ············enterpriseConfig2·=·null; | 225 | ········//····20:·getfield········android/net/wifi/WifiConfiguration.enterpriseConfig:Landroid/net/wifi/WifiEnterpriseConfig; |
194 | ········} | 226 | ········//····23:·astore··········4 |
195 | ········final·boolean·needsKeyStore·=·needsKeyStore(enterpriseConfig); | 227 | ········//····25:·aload_1········ |
196 | ········final·int·n·=·1; | 228 | ········//····26:·aload_2········ |
197 | ········if·(!needsKeyStore)·{ | 229 | ········//····27:·invokevirtual···android/net/wifi/WifiConfiguration.getKeyIdForCredentials:(Landroid/net/wifi/WifiConfiguration;)Ljava/lang/String; |
198 | ············return·n·!=·0; | 230 | ········//····30:·astore··········5 |
199 | ········} | 231 | ········//····32:·aconst_null···· |
200 | ········final·WifiEnterpriseConfig·wifiEnterpriseConfig·=·enterpriseConfig2; | 232 | ········//····33:·astore··········6 |
201 | ········final·WifiEnterpriseConfig·wifiEnterpriseConfig2·=·enterpriseConfig; | 233 | ········//····35:·aload_2········ |
202 | ········final·String·s2·=·keyIdForCredentials2; | 234 | ········//····36:·ifnull··········62 |
203 | ········try·{ | 235 | ········//····39:·aload_2········ |
204 | ············Label_0151:·{ | 236 | ········//····40:·getfield········android/net/wifi/WifiConfiguration.enterpriseConfig:Landroid/net/wifi/WifiEnterpriseConfig; |
205 | ················if·(this.installKeys(wifiEnterpriseConfig,·wifiEnterpriseConfig2,·s2,·keyIdForCredentials))·{ | 237 | ········//····43:·invokestatic····com/android/wifi/x/com/android/internal/util/Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object; |
206 | ····················break·Label_0151; | 238 | ········//····46:·pop············ |
207 | ················} | 239 | ········//····47:·aload_2········ |
208 | ················try·{ | 240 | ········//····48:·getfield········android/net/wifi/WifiConfiguration.enterpriseConfig:Landroid/net/wifi/WifiEnterpriseConfig; |
209 | ····················final·StringBuilder·sb·=·new·StringBuilder(); | 241 | ········//····51:·astore··········7 |
210 | ····················sb.append(wifiConfiguration.SSID); | 242 | ········//····53:·aload_2········ |
211 | ····················sb.append(":·failed·to·install·keys"); | 243 | ········//····54:·aload_2········ |
212 | ····················Log.e(s,·sb.toString()); | 244 | ········//····55:·invokevirtual···android/net/wifi/WifiConfiguration.getKeyIdForCredentials:(Landroid/net/wifi/WifiConfiguration;)Ljava/lang/String; |
213 | ····················return·false; | 245 | ········//····58:·astore_2······· |
214 | ····················//·iftrue(Label_0364:,·!sigAlgOID.equals((Object)"1.2.840.113549.1.1.12")) | 246 | ········//····59:·goto············73 |
215 | ····················//·iftrue(Label_0461:,·!this.mVerboseLoggingEnabled) | 247 | ········//····62:·iconst_0······· |
216 | ····················//·iftrue(Label_0461:,·!this.mVerboseLoggingEnabled) | 248 | ········//····63:·istore··········8 |
217 | ····················//·iftrue(Label_0304:,·!this.mVerboseLoggingEnabled) | 249 | ········//····65:·aconst_null···· |
218 | ····················//·iftrue(Label_0416:,·!sigAlgOID.equals((Object)"1.2.840.10045.4.3.3")) | 250 | ········//····66:·astore_2······· |
219 | ····················//·iftrue(Label_0451:,·certificate·==·null·||·!certificate·instanceof·X509Certificate) | 251 | ········//····67:·iconst_0······· |
220 | ····················//·iftrue(Label_0461:,·!wifiConfiguration.allowedKeyManagement.get(10)) | 252 | ········//····68:·istore··········9 |
221 | ····················while·(true)·{ | 253 | ········//····70:·aconst_null···· |
222 | ························while·(true)·{ | 254 | ········//····71:·astore··········7 |
223 | ························Block_15: | 255 | ········//····73:·aload···········4 |
224 | ····························while·(true)·{ | 256 | ········//····75:·invokestatic····com/android/server/wifi/WifiKeyStore.needsKeyStore:(Landroid/net/wifi/WifiEnterpriseConfig;)Z |
225 | ····························Block_13_Outer: | 257 | ········//····78:·istore··········10 |
226 | ································while·(true)·{ | 258 | ········//····80:·iconst_1······· |
227 | ····································final·StringBuilder·sb2·=·new·StringBuilder(); | 259 | ········//····81:·istore··········11 |
228 | ····································sb2.append("Signature·algorithm:·"); | 260 | ········//····83:·iload···········10 |
229 | ····································final·String·sigAlgOID; | 261 | ········//····85:·ifne············91 |
230 | ····································sb2.append(sigAlgOID); | 262 | ········//····88:·iload···········11 |
231 | ····································Log.d(s,·sb2.toString()); | 263 | ········//····90:·ireturn········ |
232 | ····································Label_0304:·{ | 264 | ········//····91:·iconst_0······· |
233 | ········································wifiConfiguration.allowedSuiteBCiphers.clear(); | 265 | ········//····92:·istore··········10 |
234 | ····································} | 266 | ········//····94:·aload_0········ |
235 | ····································while·(true)·{ | 267 | ········//····95:·aload···········7 |
236 | ········································Block_12:·{ | 268 | ········//····97:·aload···········4 |
237 | ············································break·Block_12; | 269 | ········//····99:·aload_2········ |
238 | ············································wifiConfiguration·=·(WifiConfiguration)wifiConfiguration.allowedSuiteBCiphers; | 270 | ········//···100:·aload···········5 |
239 | ············································((BitSet)wifiConfiguration).set(0); | 271 | ········//···102:·invokespecial···com/android/server/wifi/WifiKeyStore.installKeys:(Landroid/net/wifi/WifiEnterpriseConfig;Landroid/net/wifi/WifiEnterpriseConfig;Ljava/lang/String;Ljava/lang/String;)Z |
240 | ············································break·Block_15; | 272 | ········//···105:·istore··········8 |
241 | ············································Label_0416: | 273 | ········//···107:·iload···········8 |
242 | ············································final·StringBuilder·sb3·=·new·StringBuilder(); | 274 | ········//···109:·ifne············154 |
243 | ············································sb3.append("Invalid·CA·certificate·type·for·Suite-B:·"); | 275 | ········//···112:·new·············Ljava/lang/StringBuilder; |
244 | ············································sb3.append(sigAlgOID); | 276 | ········//···115:·astore_0······· |
245 | ············································Log.e(s,·sb3.toString()); | 277 | ········//···116:·aload_0········ |
246 | ············································return·false; | 278 | ········//···117:·invokespecial···java/lang/StringBuilder.<init>:()V |
247 | ············································Log.d(s,·"Selecting·Suite-B·RSA"); | 279 | ········//···120:·aload_1········ |
248 | ············································return·n·!=·0; | 280 | ········//···121:·getfield········android/net/wifi/WifiConfiguration.SSID:Ljava/lang/String; |
249 | ········································} | 281 | ········//···124:·astore_2······· |
250 | ········································wifiConfiguration·=·(WifiConfiguration)wifiConfiguration.allowedSuiteBCiphers; | 282 | ········//···125:·aload_0········ |
251 | ········································((BitSet)wifiConfiguration).set(n); | 283 | ········//···126:·aload_2········ |
252 | ········································continue; | 284 | ········//···127:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; |
253 | ····································} | 285 | ········//···130:·pop············ |
254 | ····································sigAlgOID·=·((X509Certificate)certificate).getSigAlgOID(); | 286 | ········//···131:·ldc_w···········":·failed·to·install·keys" |
255 | ····································continue·Block_13_Outer; | 287 | ········//···134:·astore_2······· |
256 | ································} | 288 | ········//···135:·aload_0········ |
257 | ································Label_0364:·{ | 289 | ········//···136:·aload_2········ |
258 | ····································continue; | 290 | ········//···137:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; |
259 | ································} | 291 | ········//···140:·pop············ |
260 | ····························} | 292 | ········//···141:·aload_0········ |
261 | ····························Log.d(s,·"Selecting·Suite-B·ECDSA"); | 293 | ········//···142:·invokevirtual···java/lang/StringBuilder.toString:()Ljava/lang/String; |
262 | ····························return·n·!=·0; | 294 | ········//···145:·astore_0······· |
263 | ····························try·{ | 295 | ········//···146:·aload_3········ |
264 | ································final·KeyStore·mKeyStore·=·this.mKeyStore; | 296 | ········//···147:·aload_0········ |
265 | ································try·{ | 297 | ········//···148:·invokestatic····android/util/Log.e:(Ljava/lang/String;Ljava/lang/String;)I |
266 | ····································final·WifiEnterpriseConfig·enterpriseConfig3·=·wifiConfiguration.enterpriseConfig; | 298 | ········//···151:·pop············ |
267 | ····································try·{ | 299 | ········//···152:·iconst_0······· |
268 | ········································certificate·=·mKeyStore.getCertificate(enterpriseConfig3.getCaCertificateAlias()); | 300 | ········//···153:·ireturn········ |
269 | ····································} | 301 | ········//···154:·aload_1········ |
270 | ····································catch·(KeyStoreException·ex)·{ | 302 | ········//···155:·getfield········android/net/wifi/WifiConfiguration.allowedKeyManagement:Ljava/util/BitSet; |
271 | ········································Log.e(s,·"Failed·to·get·Suite-B·certificate",·(Throwable)ex); | 303 | ········//···158:·astore_2······· |
272 | ····································} | 304 | ········//···159:·bipush··········10 |
273 | ································} | 305 | ········//···161:·istore··········12 |
274 | ································catch·(KeyStoreException·ex3)·{} | 306 | ········//···163:·aload_2········ |
275 | ····························} | 307 | ········//···164:·iload···········12 |
276 | ····························catch·(KeyStoreException·ex4)·{} | 308 | ········//···166:·invokevirtual···java/util/BitSet.get:(I)Z |
277 | ····························continue; | 309 | ········//···169:·istore··········8 |
278 | ························} | 310 | ········//···171:·iload···········8 |
279 | ························Label_0461:·{ | 311 | ········//···173:·ifeq············508 |
280 | ····························return·n·!=·0; | 312 | ········//···176:·aload_1········ |
281 | ························} | 313 | ········//···177:·getfield········android/net/wifi/WifiConfiguration.enterpriseConfig:Landroid/net/wifi/WifiEnterpriseConfig; |
282 | ························continue; | 314 | ········//···180:·invokevirtual···android/net/wifi/WifiEnterpriseConfig.getCaCertificateAliases:()[Ljava/lang/String; |
283 | ····················} | 315 | ········//···183:·astore_2······· |
284 | ····················Label_0451:·{ | 316 | ········//···184:·aload_2········ |
285 | ························Log.e(s,·"Failed·reading·CA·certificate·for·Suite-B"); | 317 | ········//···185:·ifnull··········498 |
286 | ····················} | 318 | ········//···188:·aload_2········ |
287 | ····················return·false; | 319 | ········//···189:·arraylength···· |
288 | ················} | 320 | ········//···190:·istore··········12 |
289 | ················catch·(IllegalStateException·ex2)·{ | 321 | ········//···192:·iload···········12 |
290 | ····················final·StringBuilder·sb4·=·new·StringBuilder(); | 322 | ········//···194:·ifne············200 |
291 | ····················sb4.append(wifiConfiguration.SSID); | 323 | ········//···197:·goto············498 |
292 | ····················sb4.append("·invalid·config·for·key·installation:·"); | 324 | ········//···200:·aload_2········ |
293 | ····················sb4.append(ex2.getMessage()); | 325 | ········//···201:·arraylength···· |
294 | ····················Log.e(s,·sb4.toString()); | 326 | ········//···202:·istore··········12 |
295 | ····················return·false; | 327 | ········//···204:·iconst_m1······ |
296 | ················} | 328 | ········//···205:·istore··········13 |
297 | ············} | 329 | ········//···207:·iload···········13 |
298 | ········} | 330 | ········//···209:·istore··········14 |
299 | ········catch·(IllegalStateException·ex5)·{} | 331 | ········//···211:·iload···········13 |
| 332 | ········//···213:·istore··········15 |
| 333 | ········//···215:·iconst_0······· |
| 334 | ········//···216:·istore··········9 |
| 335 | ········//···218:·aconst_null···· |
| 336 | ········//···219:·astore··········7 |
| 337 | ········//···221:·iload···········9 |
| 338 | ········//···223:·iload···········12 |
| 339 | ········//···225:·if_icmpge·······363 |
| 340 | ········//···228:·aload_2········ |
| 341 | ········//···229:·iload···········9 |
| 342 | ········//···231:·aaload········· |
| 343 | ········//···232:·astore··········16 |
| 344 | ········//···234:·aload_0········ |
| 345 | ········//···235:·getfield········com/android/server/wifi/WifiKeyStore.mKeyStore:Ljava/security/KeyStore; |
| 346 | ········//···238:·astore··········17 |
| 347 | ········//···240:·aload···········17 |
| 348 | ········//···242:·aload···········16 |
| 349 | ········//···244:·invokevirtual···java/security/KeyStore.getCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate; |
| 350 | ········//···247:·astore··········16 |
| 351 | ········//···249:·goto············274 |
| 352 | ········//···252:·astore··········16 |
| 353 | ········//···254:·ldc_w···········"Failed·to·get·Suite-B·certificate" |
| 354 | ········//···257:·astore··········17 |
| 355 | ········//···259:·aload_3········ |
| 356 | ········//···260:·aload···········17 |
| 357 | ········//···262:·aload···········16 |
| 358 | ········//···264:·invokestatic····android/util/Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I |
| 359 | ········//···267:·pop············ |
| 360 | ········//···268:·iconst_0······· |
| 361 | ········//···269:·istore··········14 |
| 362 | ········//···271:·aconst_null···· |
| 363 | ········//···272:·astore··········16 |
| 364 | ········//···274:·aload···········16 |
| 365 | ········//···276:·ifnull··········353 |
| 366 | ········//···279:·aload···········16 |
| 367 | ········//···281:·instanceof······Ljava/security/cert/X509Certificate; |
| 368 | ········//···284:·istore··········18 |
| 369 | ········//···286:·iload···········18 |
| 370 | ········//···288:·ifne············294 |
| 371 | ········//···291:·goto············353 |
| 372 | ········//···294:·aload···········16 |
| 373 | ········//···296:·checkcast·······Ljava/security/cert/X509Certificate; |
| 374 | ········//···299:·astore··········16 |
| 375 | ········//···301:·aload_0········ |
| 376 | ········//···302:·aload···········16 |
| 377 | ········//···304:·invokespecial···com/android/server/wifi/WifiKeyStore.getSuiteBCipherFromCert:(Ljava/security/cert/X509Certificate;)I |
| 378 | ········//···307:·istore··········14 |
| 379 | ········//···309:·iload···········14 |
| 380 | ········//···311:·ifge············316 |
| 381 | ········//···314:·iconst_0······· |
| 382 | ········//···315:·ireturn········ |
| 383 | ········//···316:·iload···········15 |
| 384 | ········//···318:·iload···········13 |
| 385 | ········//···320:·if_icmpeq·······340 |
| 386 | ········//···323:·iload···········15 |
| 387 | ········//···325:·iload···········14 |
| 388 | ········//···327:·if_icmpeq·······340 |
| 389 | ········//···330:·aload_3········ |
| 390 | ········//···331:·ldc_w···········"Incompatible·CA·certificates" |
| 391 | ········//···334:·invokestatic····android/util/Log.e:(Ljava/lang/String;Ljava/lang/String;)I |
| 392 | ········//···337:·pop············ |
| 393 | ········//···338:·iconst_0······· |
| 394 | ········//···339:·ireturn········ |
| 395 | ········//···340:·iload···········9 |
| 396 | ········//···342:·iconst_1······· |
| 397 | ········//···343:·iadd··········· |
| 398 | ········//···344:·istore··········9 |
| 399 | ········//···346:·iload···········14 |
| 400 | ········//···348:·istore··········15 |
| 401 | ········//···350:·goto············221 |
| 402 | ········//···353:·aload_3········ |
| 403 | ········//···354:·ldc_w···········"Failed·reading·CA·certificate·for·Suite-B" |
| 404 | ········//···357:·invokestatic····android/util/Log.e:(Ljava/lang/String;Ljava/lang/String;)I |
| 405 | ········//···360:·pop············ |
| 406 | ········//···361:·iconst_0······· |
| 407 | ········//···362:·ireturn········ |
| 408 | ········//···363:·aload_0········ |
| 409 | ········//···364:·getfield········com/android/server/wifi/WifiKeyStore.mKeyStore:Ljava/security/KeyStore; |
| 410 | ········//···367:·astore_2······· |
| 411 | ········//···368:·aload_1········ |
| 412 | ········//···369:·getfield········android/net/wifi/WifiConfiguration.enterpriseConfig:Landroid/net/wifi/WifiEnterpriseConfig; |
| 413 | ········//···372:·astore··········4 |
| 414 | ········//···374:·aload···········4 |
| 415 | ········//···376:·invokevirtual···android/net/wifi/WifiEnterpriseConfig.getClientCertificateAlias:()Ljava/lang/String; |
| 416 | ········//···379:·astore··········4 |
| 417 | ········//···381:·aload_2········ |
| 418 | ········//···382:·aload···········4 |
| 419 | ········//···384:·invokevirtual···java/security/KeyStore.getCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate; |
| 420 | ········//···387:·astore··········6 |
| 421 | ········//···389:·goto············406 |
| 422 | ········//···392:·astore_2······· |
| 423 | ········//···393:·ldc_w···········"Failed·to·get·Suite-B·client·certificate" |
| 424 | ········//···396:·astore··········4 |
| 425 | ········//···398:·aload_3········ |
| 426 | ········//···399:·aload···········4 |
| 427 | ········//···401:·aload_2········ |
| 428 | ········//···402:·invokestatic····android/util/Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I |
| 429 | ········//···405:·pop············ |
| 430 | ········//···406:·aload···········6 |
| 431 | ········//···408:·ifnull··········488 |
| 432 | ········//···411:·aload···········6 |
| 433 | ········//···413:·instanceof······Ljava/security/cert/X509Certificate; |
| 434 | ········//···416:·istore··········8 |
| 435 | ········//···418:·iload···········8 |
| 436 | ········//···420:·ifne············426 |
| 437 | ········//···423:·goto············488 |
| 438 | ········//···426:·aload···········6 |
| 439 | ········//···428:·checkcast·······Ljava/security/cert/X509Certificate; |
| 440 | ········//···431:·astore··········6 |
| 441 | ········//···433:·aload_0········ |
| 442 | ········//···434:·aload···········6 |
| 443 | ········//···436:·invokespecial···com/android/server/wifi/WifiKeyStore.getSuiteBCipherFromCert:(Ljava/security/cert/X509Certificate;)I |
| 444 | ········//···439:·istore··········19 |
| 445 | ········//···441:·iload···········19 |
| 446 | ········//···443:·ifge············448 |
| 447 | ········//···446:·iconst_0······· |
| 448 | ········//···447:·ireturn········ |
| 449 | ········//···448:·iload···········19 |
| 450 | ········//···450:·iload···········14 |
| 451 | ········//···452:·if_icmpne·······478 |
| 452 | ········//···455:·aload_1········ |
| 453 | ········//···456:·getfield········android/net/wifi/WifiConfiguration.allowedSuiteBCiphers:Ljava/util/BitSet; |
| 454 | ········//···459:·astore_2······· |
| 455 | ········//···460:·aload_2········ |
| 456 | ········//···461:·invokevirtual···java/util/BitSet.clear:()V |
| 457 | ········//···464:·aload_1········ |
| 458 | ········//···465:·getfield········android/net/wifi/WifiConfiguration.allowedSuiteBCiphers:Ljava/util/BitSet; |
| 459 | ········//···468:·astore_1······· |
| 460 | ········//···469:·aload_1········ |
| 461 | ········//···470:·iload···········19 |
| 462 | ········//···472:·invokevirtual···java/util/BitSet.set:(I)V |
| 463 | ········//···475:·goto············508 |
| 464 | ········//···478:·aload_3········ |
| 465 | ········//···479:·ldc_w···········"Client·certificate·for·Suite-B·is·incompatible·with·the·CA·certificate" |
| 466 | ········//···482:·invokestatic····android/util/Log.e:(Ljava/lang/String;Ljava/lang/String;)I |
| 467 | ········//···485:·pop············ |
| 468 | ········//···486:·iconst_0······· |
| 469 | ········//···487:·ireturn········ |
| 470 | ········//···488:·aload_3········ |
| 471 | ········//···489:·ldc_w···········"Failed·reading·client·certificate·for·Suite-B" |
| 472 | ········//···492:·invokestatic····android/util/Log.e:(Ljava/lang/String;Ljava/lang/String;)I |
| 473 | ········//···495:·pop············ |
| 474 | ········//···496:·iconst_0······· |
| 475 | ········//···497:·ireturn········ |
| 476 | ········//···498:·aload_3········ |
| 477 | ········//···499:·ldc_w···········"No·CA·aliases·in·profile" |
| 478 | ········//···502:·invokestatic····android/util/Log.e:(Ljava/lang/String;Ljava/lang/String;)I |
| 479 | ········//···505:·pop············ |
| 480 | ········//···506:·iconst_0······· |
| 481 | ········//···507:·ireturn········ |
| 482 | ········//···508:·iload···········11 |
| 483 | ········//···510:·ireturn········ |
| 484 | ········//···511:·astore_0······· |
| 485 | ········//···512:·new·············Ljava/lang/StringBuilder; |
| 486 | ········//···515:·astore_2······· |
| 487 | ········//···516:·aload_2········ |
| 488 | ········//···517:·invokespecial···java/lang/StringBuilder.<init>:()V |
| 489 | ········//···520:·aload_1········ |
| 490 | ········//···521:·getfield········android/net/wifi/WifiConfiguration.SSID:Ljava/lang/String; |
| 491 | ········//···524:·astore_1······· |
| 492 | ········//···525:·aload_2········ |
| 493 | ········//···526:·aload_1········ |
| 494 | ········//···527:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| 495 | ········//···530:·pop············ |
| 496 | ········//···531:·aload_2········ |
| 497 | ········//···532:·ldc_w···········"·invalid·config·for·key·installation:·" |
| 498 | ········//···535:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| 499 | ········//···538:·pop············ |
| 500 | ········//···539:·aload_0········ |
| 501 | ········//···540:·invokevirtual···java/lang/IllegalStateException.getMessage:()Ljava/lang/String; |
| 502 | ········//···543:·astore_0······· |
| 503 | ········//···544:·aload_2········ |
| 504 | ········//···545:·aload_0········ |
| 505 | ········//···546:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; |
| 506 | ········//···549:·pop············ |
| 507 | ········//···550:·aload_2········ |
| 508 | ········//···551:·invokevirtual···java/lang/StringBuilder.toString:()Ljava/lang/String; |
| 509 | ········//···554:·astore_0······· |
| 510 | ········//···555:·aload_3········ |
| 511 | ········//···556:·aload_0········ |
| 512 | ········//···557:·invokestatic····android/util/Log.e:(Ljava/lang/String;Ljava/lang/String;)I |
| 513 | ········//···560:·pop············ |
| 514 | ········//···561:·iconst_0······· |
| 515 | ········//···562:·ireturn········ |
| 516 | ········//····Exceptions: |
| 517 | ········//··Try···········Handler |
| 518 | ········//··Start··End····Start··End····Type····························· |
| 519 | ········//··-----··-----··-----··-----··--------------------------------- |
| 520 | ········//··100····105····511····563····Ljava/lang/IllegalStateException; |
| 521 | ········//··112····115····511····563····Ljava/lang/IllegalStateException; |
| 522 | ········//··116····120····511····563····Ljava/lang/IllegalStateException; |
| 523 | ········//··120····124····511····563····Ljava/lang/IllegalStateException; |
| 524 | ········//··126····131····511····563····Ljava/lang/IllegalStateException; |
| 525 | ········//··136····141····511····563····Ljava/lang/IllegalStateException; |
| 526 | ········//··141····145····511····563····Ljava/lang/IllegalStateException; |
| 527 | ········//··147····152····511····563····Ljava/lang/IllegalStateException; |
| 528 | ········//··234····238····252····274····Ljava/security/KeyStoreException; |
| 529 | ········//··242····247····252····274····Ljava/security/KeyStoreException; |
| 530 | ········//··363····367····392····406····Ljava/security/KeyStoreException; |
| 531 | ········//··368····372····392····406····Ljava/security/KeyStoreException; |
| 532 | ········//··374····379····392····406····Ljava/security/KeyStoreException; |
| 533 | ········//··382····387····392····406····Ljava/security/KeyStoreException; |
| 534 | ········//· |
| 535 | ········//·The·error·that·occurred·was: |
| 536 | ········//· |
| 537 | ········//·java.lang.NullPointerException |
| 538 | ········//·····at·com.strobel.assembler.ir.StackMappingVisitor.push(StackMappingVisitor.java:290) |
| 539 | ········//·····at·com.strobel.assembler.ir.StackMappingVisitor$InstructionAnalyzer.execute(StackMappingVisitor.java:833) |
| 540 | ········//·····at·com.strobel.assembler.ir.StackMappingVisitor$InstructionAnalyzer.visit(StackMappingVisitor.java:398) |
| 541 | ········//·····at·com.strobel.decompiler.ast.AstBuilder.performStackAnalysis(AstBuilder.java:2030) |
| 542 | ········//·····at·com.strobel.decompiler.ast.AstBuilder.build(AstBuilder.java:108) |
| 543 | ········//·····at·com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:211) |
| 544 | ········//·····at·com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:99) |
| 545 | ········//·····at·com.strobel.decompiler.languages.java.ast.AstBuilder.createMethodBody(AstBuilder.java:757) |
| 546 | ········//·····at·com.strobel.decompiler.languages.java.ast.AstBuilder.createMethod(AstBuilder.java:655) |
| 547 | ········//·····at·com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:532) |
| 548 | ········//·····at·com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:499) |
| 549 | ········//·····at·com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:141) |
| 550 | ········//·····at·com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:130) |
| 551 | ········//·····at·com.strobel.decompiler.languages.java.ast.AstBuilder.addType(AstBuilder.java:105) |
| 552 | ········//·····at·com.strobel.decompiler.languages.java.JavaLanguage.buildAst(JavaLanguage.java:71) |
| 553 | ········//·····at·com.strobel.decompiler.languages.java.JavaLanguage.decompileType(JavaLanguage.java:59) |
| 554 | ········//·····at·com.strobel.decompiler.DecompilerDriver.decompileType(DecompilerDriver.java:336) |
| 555 | ········//·····at·com.strobel.decompiler.DecompilerDriver.main(DecompilerDriver.java:144) |
| 556 | ········//· |
| 557 | ········throw·new·IllegalStateException("An·error·occurred·while·decompiling·this·method."); |
300 | ····} | 558 | ····} |
301 | } | 559 | } |