Merge "Keystore 2.0 SPI: Fix contract between equals and hashCode" am: efc036801c am: f3da868dad

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1794807

Change-Id: I07e4d69f44b939dc49b02f14e0db2863556a8467
This commit is contained in:
Treehugger Robot
2021-08-14 05:50:16 +00:00
committed by Automerger Merge Worker
2 changed files with 12 additions and 12 deletions

View File

@@ -102,11 +102,9 @@ public class AndroidKeyStoreKey implements Key {
final int prime = 31;
int result = 1;
result = prime * result + ((mDescriptor == null) ? 0 : mDescriptor.hashCode());
result = prime * result + getClass().hashCode();
result = prime * result + (int) (mKeyId >>> 32);
result = prime * result + (int) (mKeyId & 0xffffffff);
result = prime * result + ((mAuthorizations == null) ? 0 : mAuthorizations.hashCode());
result = prime * result + ((mAlgorithm == null) ? 0 : mAlgorithm.hashCode());
return result;
}
@@ -122,10 +120,6 @@ public class AndroidKeyStoreKey implements Key {
return false;
}
AndroidKeyStoreKey other = (AndroidKeyStoreKey) obj;
if (mKeyId != other.mKeyId) {
return false;
}
return true;
return mKeyId == other.mKeyId;
}
}

View File

@@ -23,6 +23,7 @@ import android.system.keystore2.KeyDescriptor;
import android.system.keystore2.KeyMetadata;
import java.security.PublicKey;
import java.util.Objects;
/**
* {@link PublicKey} backed by Android Keystore.
@@ -75,9 +76,14 @@ public abstract class AndroidKeyStorePublicKey extends AndroidKeyStoreKey implem
if (!super.equals(obj)) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
return true;
/*
* getClass().equals(ojb.getClass()) is implied by the call to super.equals() above. This
* means we can cast obj to AndroidKeyStorePublicKey here.
*/
final AndroidKeyStorePublicKey other = (AndroidKeyStorePublicKey) obj;
return Objects.equals(mCertificate, other.mCertificate) && Objects.equals(mCertificateChain,
other.mCertificateChain);
}
}