| | | | |
| 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 | } |