Merge "[Passpoint] Fix credential unique ID calculation" into rvc-dev
This commit is contained in:
@@ -1037,18 +1037,7 @@ public final class Credential implements Parcelable {
|
||||
* @return a Unique identifier for a Credential object
|
||||
*/
|
||||
public int getUniqueId() {
|
||||
int usedCredential;
|
||||
|
||||
// Initialize usedCredential based on the credential type of the profile
|
||||
if (mUserCredential != null) {
|
||||
usedCredential = 0;
|
||||
} else if (mCertCredential != null) {
|
||||
usedCredential = 1;
|
||||
} else {
|
||||
usedCredential = 2;
|
||||
}
|
||||
|
||||
return Objects.hash(usedCredential, mRealm);
|
||||
return Objects.hash(mUserCredential, mCertCredential, mSimCredential, mRealm);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -18,6 +18,7 @@ package android.net.wifi.hotspot2.pps;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import android.net.wifi.EAPConstants;
|
||||
@@ -551,4 +552,68 @@ public class CredentialTest {
|
||||
public void validateTwoCertificateDifferent() {
|
||||
assertFalse(Credential.isX509CertificateEquals(FakeKeys.CA_CERT0, FakeKeys.CA_CERT1));
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify that unique identifiers are the same for objects with the same credentials
|
||||
*/
|
||||
@Test
|
||||
public void testUniqueIdSameCredentialTypes() throws Exception {
|
||||
assertEquals(createCredentialWithSimCredential().getUniqueId(),
|
||||
createCredentialWithSimCredential().getUniqueId());
|
||||
assertEquals(createCredentialWithCertificateCredential().getUniqueId(),
|
||||
createCredentialWithCertificateCredential().getUniqueId());
|
||||
assertEquals(createCredentialWithUserCredential().getUniqueId(),
|
||||
createCredentialWithUserCredential().getUniqueId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify that unique identifiers are different for each credential
|
||||
*/
|
||||
@Test
|
||||
public void testUniqueIdDifferentForDifferentCredentialTypes() throws Exception {
|
||||
Credential simCred = createCredentialWithSimCredential();
|
||||
Credential certCred = createCredentialWithCertificateCredential();
|
||||
Credential userCred = createCredentialWithUserCredential();
|
||||
|
||||
assertNotEquals(simCred.getUniqueId(), userCred.getUniqueId());
|
||||
assertNotEquals(simCred.getUniqueId(), certCred.getUniqueId());
|
||||
assertNotEquals(certCred.getUniqueId(), userCred.getUniqueId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify that unique identifiers are different for a credential with different values
|
||||
*/
|
||||
@Test
|
||||
public void testUniqueIdDifferentForSimCredentialsWithDifferentValues() throws Exception {
|
||||
Credential simCred1 = createCredentialWithSimCredential();
|
||||
Credential simCred2 = createCredentialWithSimCredential();
|
||||
simCred2.getSimCredential().setImsi("567890*");
|
||||
|
||||
assertNotEquals(simCred1.getUniqueId(), simCred2.getUniqueId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify that unique identifiers are different for a credential with different values
|
||||
*/
|
||||
@Test
|
||||
public void testUniqueIdDifferentForUserCredentialsWithDifferentValues() throws Exception {
|
||||
Credential userCred1 = createCredentialWithUserCredential();
|
||||
Credential userCred2 = createCredentialWithUserCredential();
|
||||
userCred2.getUserCredential().setUsername("anotheruser");
|
||||
|
||||
assertNotEquals(userCred1.getUniqueId(), userCred2.getUniqueId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify that unique identifiers are different for a credential with different values
|
||||
*/
|
||||
@Test
|
||||
public void testUniqueIdDifferentForCertCredentialsWithDifferentValues() throws Exception {
|
||||
Credential certCred1 = createCredentialWithCertificateCredential();
|
||||
Credential certCred2 = createCredentialWithCertificateCredential();
|
||||
certCred2.getCertCredential().setCertSha256Fingerprint(
|
||||
MessageDigest.getInstance("SHA-256").digest(FakeKeys.CA_CERT0.getEncoded()));
|
||||
|
||||
assertNotEquals(certCred1.getUniqueId(), certCred2.getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user