use of android.net.wifi.hotspot2.pps.UpdateParameter in project platform_frameworks_base by android.
the class PasspointConfigurationTest method createSubscriptionUpdate.
private static UpdateParameter createSubscriptionUpdate() {
UpdateParameter subUpdate = new UpdateParameter();
subUpdate.setUpdateIntervalInMinutes(9021);
subUpdate.setUpdateMethod(UpdateParameter.UPDATE_METHOD_SSP);
subUpdate.setRestriction(UpdateParameter.UPDATE_RESTRICTION_ROAMING_PARTNER);
subUpdate.setServerUri("subscription.update.com");
subUpdate.setUsername("subUsername");
subUpdate.setBase64EncodedPassword(Base64.encodeToString("subPassword".getBytes(), Base64.DEFAULT));
subUpdate.setTrustRootCertUrl("subscription.trust.cert.com");
subUpdate.setTrustRootCertSha256Fingerprint(new byte[CERTIFICATE_FINGERPRINT_BYTES]);
return subUpdate;
}
use of android.net.wifi.hotspot2.pps.UpdateParameter in project platform_frameworks_base by android.
the class PasspointConfigurationTest method createPolicy.
/**
* Helper function for creating a {@link Policy} for testing.
*
* @return {@link Policy}
*/
private static Policy createPolicy() {
Policy policy = new Policy();
policy.setMinHomeDownlinkBandwidth(123);
policy.setMinHomeUplinkBandwidth(345);
policy.setMinRoamingDownlinkBandwidth(567);
policy.setMinRoamingUplinkBandwidth(789);
policy.setMaximumBssLoadValue(12);
policy.setExcludedSsidList(new String[] { "ssid1", "ssid2" });
HashMap<Integer, String> requiredProtoPortMap = new HashMap<>();
requiredProtoPortMap.put(12, "23,342,123");
requiredProtoPortMap.put(23, "789,372,1235");
policy.setRequiredProtoPortMap(requiredProtoPortMap);
List<Policy.RoamingPartner> preferredRoamingPartnerList = new ArrayList<>();
Policy.RoamingPartner partner1 = new Policy.RoamingPartner();
partner1.setFqdn("partner1.com");
partner1.setFqdnExactMatch(true);
partner1.setPriority(12);
partner1.setCountries("us,jp");
Policy.RoamingPartner partner2 = new Policy.RoamingPartner();
partner2.setFqdn("partner2.com");
partner2.setFqdnExactMatch(false);
partner2.setPriority(42);
partner2.setCountries("ca,fr");
preferredRoamingPartnerList.add(partner1);
preferredRoamingPartnerList.add(partner2);
policy.setPreferredRoamingPartnerList(preferredRoamingPartnerList);
UpdateParameter policyUpdate = new UpdateParameter();
policyUpdate.setUpdateIntervalInMinutes(1712);
policyUpdate.setUpdateMethod(UpdateParameter.UPDATE_METHOD_OMADM);
policyUpdate.setRestriction(UpdateParameter.UPDATE_RESTRICTION_HOMESP);
policyUpdate.setServerUri("policy.update.com");
policyUpdate.setUsername("username");
policyUpdate.setBase64EncodedPassword(Base64.encodeToString("password".getBytes(), Base64.DEFAULT));
policyUpdate.setTrustRootCertUrl("trust.cert.com");
policyUpdate.setTrustRootCertSha256Fingerprint(new byte[CERTIFICATE_FINGERPRINT_BYTES]);
policy.setPolicyUpdate(policyUpdate);
return policy;
}
use of android.net.wifi.hotspot2.pps.UpdateParameter in project platform_frameworks_base by android.
the class PpsMoParserTest method generateConfigurationFromPPSMOTree.
/**
* Generate a {@link PasspointConfiguration} that matches the configuration specified in the
* XML file {@link #VALID_PPS_MO_XML_FILE}.
*
* @return {@link PasspointConfiguration}
*/
private PasspointConfiguration generateConfigurationFromPPSMOTree() throws Exception {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
byte[] certFingerprint = new byte[32];
Arrays.fill(certFingerprint, (byte) 0x1f);
PasspointConfiguration config = new PasspointConfiguration();
config.setUpdateIdentifier(12);
config.setCredentialPriority(99);
// AAA Server trust root.
Map<String, byte[]> trustRootCertList = new HashMap<>();
trustRootCertList.put("server1.trust.root.com", certFingerprint);
config.setTrustRootCertList(trustRootCertList);
// Subscription update.
UpdateParameter subscriptionUpdate = new UpdateParameter();
subscriptionUpdate.setUpdateIntervalInMinutes(120);
subscriptionUpdate.setUpdateMethod(UpdateParameter.UPDATE_METHOD_SSP);
subscriptionUpdate.setRestriction(UpdateParameter.UPDATE_RESTRICTION_ROAMING_PARTNER);
subscriptionUpdate.setServerUri("subscription.update.com");
subscriptionUpdate.setUsername("subscriptionUser");
subscriptionUpdate.setBase64EncodedPassword("subscriptionPass");
subscriptionUpdate.setTrustRootCertUrl("subscription.update.cert.com");
subscriptionUpdate.setTrustRootCertSha256Fingerprint(certFingerprint);
config.setSubscriptionUpdate(subscriptionUpdate);
// Subscription parameters.
config.setSubscriptionCreationTimeInMs(format.parse("2016-02-01T10:00:00Z").getTime());
config.setSubscriptionExpirationTimeInMs(format.parse("2016-03-01T10:00:00Z").getTime());
config.setSubscriptionType("Gold");
config.setUsageLimitDataLimit(921890);
config.setUsageLimitStartTimeInMs(format.parse("2016-12-01T10:00:00Z").getTime());
config.setUsageLimitTimeLimitInMinutes(120);
config.setUsageLimitUsageTimePeriodInMinutes(99910);
// HomeSP configuration.
HomeSp homeSp = new HomeSp();
homeSp.setFriendlyName("Century House");
homeSp.setFqdn("mi6.co.uk");
homeSp.setRoamingConsortiumOis(new long[] { 0x112233L, 0x445566L });
homeSp.setIconUrl("icon.test.com");
Map<String, Long> homeNetworkIds = new HashMap<>();
homeNetworkIds.put("TestSSID", 0x12345678L);
homeNetworkIds.put("NullHESSID", null);
homeSp.setHomeNetworkIds(homeNetworkIds);
homeSp.setMatchAllOis(new long[] { 0x11223344 });
homeSp.setMatchAnyOis(new long[] { 0x55667788 });
homeSp.setOtherHomePartners(new String[] { "other.fqdn.com" });
config.setHomeSp(homeSp);
// Credential configuration.
Credential credential = new Credential();
credential.setCreationTimeInMs(format.parse("2016-01-01T10:00:00Z").getTime());
credential.setExpirationTimeInMs(format.parse("2016-02-01T10:00:00Z").getTime());
credential.setRealm("shaken.stirred.com");
credential.setCheckAaaServerCertStatus(true);
Credential.UserCredential userCredential = new Credential.UserCredential();
userCredential.setUsername("james");
userCredential.setPassword("Ym9uZDAwNw==");
userCredential.setMachineManaged(true);
userCredential.setSoftTokenApp("TestApp");
userCredential.setAbleToShare(true);
userCredential.setEapType(21);
userCredential.setNonEapInnerMethod("MS-CHAP-V2");
credential.setUserCredential(userCredential);
Credential.CertificateCredential certCredential = new Credential.CertificateCredential();
certCredential.setCertType("x509v3");
certCredential.setCertSha256Fingerprint(certFingerprint);
credential.setCertCredential(certCredential);
Credential.SimCredential simCredential = new Credential.SimCredential();
simCredential.setImsi("imsi");
simCredential.setEapType(24);
credential.setSimCredential(simCredential);
config.setCredential(credential);
// Policy configuration.
Policy policy = new Policy();
List<Policy.RoamingPartner> preferredRoamingPartnerList = new ArrayList<>();
Policy.RoamingPartner partner1 = new Policy.RoamingPartner();
partner1.setFqdn("test1.fqdn.com");
partner1.setFqdnExactMatch(true);
partner1.setPriority(127);
partner1.setCountries("us,fr");
Policy.RoamingPartner partner2 = new Policy.RoamingPartner();
partner2.setFqdn("test2.fqdn.com");
partner2.setFqdnExactMatch(false);
partner2.setPriority(200);
partner2.setCountries("*");
preferredRoamingPartnerList.add(partner1);
preferredRoamingPartnerList.add(partner2);
policy.setPreferredRoamingPartnerList(preferredRoamingPartnerList);
policy.setMinHomeDownlinkBandwidth(23412);
policy.setMinHomeUplinkBandwidth(9823);
policy.setMinRoamingDownlinkBandwidth(9271);
policy.setMinRoamingUplinkBandwidth(2315);
policy.setExcludedSsidList(new String[] { "excludeSSID" });
Map<Integer, String> requiredProtoPortMap = new HashMap<>();
requiredProtoPortMap.put(12, "34,92,234");
policy.setRequiredProtoPortMap(requiredProtoPortMap);
policy.setMaximumBssLoadValue(23);
UpdateParameter policyUpdate = new UpdateParameter();
policyUpdate.setUpdateIntervalInMinutes(120);
policyUpdate.setUpdateMethod(UpdateParameter.UPDATE_METHOD_OMADM);
policyUpdate.setRestriction(UpdateParameter.UPDATE_RESTRICTION_HOMESP);
policyUpdate.setServerUri("policy.update.com");
policyUpdate.setUsername("updateUser");
policyUpdate.setBase64EncodedPassword("updatePass");
policyUpdate.setTrustRootCertUrl("update.cert.com");
policyUpdate.setTrustRootCertSha256Fingerprint(certFingerprint);
policy.setPolicyUpdate(policyUpdate);
config.setPolicy(policy);
return config;
}
use of android.net.wifi.hotspot2.pps.UpdateParameter in project platform_frameworks_base by android.
the class PpsMoParser method parseUpdateParameter.
/**
* Parse update parameters. This contained configurations from either
* PerProviderSubscription/Policy/PolicyUpdate or PerProviderSubscription/SubscriptionUpdate
* subtree.
*
* @param node PPSNode representing the root of the PerProviderSubscription/Policy/PolicyUpdate
* or PerProviderSubscription/SubscriptionUpdate subtree
* @return {@link UpdateParameter}
* @throws ParsingException
*/
private static UpdateParameter parseUpdateParameter(PPSNode node) throws ParsingException {
if (node.isLeaf()) {
throw new ParsingException("Leaf node not expected for Update Parameters");
}
UpdateParameter updateParam = new UpdateParameter();
for (PPSNode child : node.getChildren()) {
switch(child.getName()) {
case NODE_UPDATE_INTERVAL:
updateParam.setUpdateIntervalInMinutes(parseLong(getPpsNodeValue(child), 10));
break;
case NODE_UPDATE_METHOD:
updateParam.setUpdateMethod(getPpsNodeValue(child));
break;
case NODE_RESTRICTION:
updateParam.setRestriction(getPpsNodeValue(child));
break;
case NODE_URI:
updateParam.setServerUri(getPpsNodeValue(child));
break;
case NODE_USERNAME_PASSWORD:
Pair<String, String> usernamePassword = parseUpdateUserCredential(child);
updateParam.setUsername(usernamePassword.first);
updateParam.setBase64EncodedPassword(usernamePassword.second);
break;
case NODE_TRUST_ROOT:
Pair<String, byte[]> trustRoot = parseTrustRoot(child);
updateParam.setTrustRootCertUrl(trustRoot.first);
updateParam.setTrustRootCertSha256Fingerprint(trustRoot.second);
break;
case NODE_OTHER:
Log.d(TAG, "Ignore unsupported paramter: " + child.getName());
break;
default:
throw new ParsingException("Unknown node under Update Parameters: " + child.getName());
}
}
return updateParam;
}
Aggregations