Offset 1, 28 lines modifiedOffset 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·WifiKeyStore22 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 modifiedOffset 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 modifiedOffset 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 }