Merge "Keystore 2.0: Fix correct handling of Uid/Namespace" am: 75025c5b62
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1599649 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: If2ce29c0bbd386105ca3ff2d4322d30e83250c6e
This commit is contained in:
@@ -59,7 +59,7 @@ public final class ParcelableKeyGenParameterSpec implements Parcelable {
|
|||||||
public void writeToParcel(Parcel out, int flags) {
|
public void writeToParcel(Parcel out, int flags) {
|
||||||
out.writeString(mSpec.getKeystoreAlias());
|
out.writeString(mSpec.getKeystoreAlias());
|
||||||
out.writeInt(mSpec.getPurposes());
|
out.writeInt(mSpec.getPurposes());
|
||||||
out.writeInt(mSpec.getUid());
|
out.writeInt(mSpec.getNamespace());
|
||||||
out.writeInt(mSpec.getKeySize());
|
out.writeInt(mSpec.getKeySize());
|
||||||
|
|
||||||
// Only needs to support RSAKeyGenParameterSpec and ECGenParameterSpec.
|
// Only needs to support RSAKeyGenParameterSpec and ECGenParameterSpec.
|
||||||
@@ -125,7 +125,7 @@ public final class ParcelableKeyGenParameterSpec implements Parcelable {
|
|||||||
private ParcelableKeyGenParameterSpec(Parcel in) {
|
private ParcelableKeyGenParameterSpec(Parcel in) {
|
||||||
final String keystoreAlias = in.readString();
|
final String keystoreAlias = in.readString();
|
||||||
final int purposes = in.readInt();
|
final int purposes = in.readInt();
|
||||||
final int uid = in.readInt();
|
final int namespace = in.readInt();
|
||||||
final int keySize = in.readInt();
|
final int keySize = in.readInt();
|
||||||
|
|
||||||
final int keySpecType = in.readInt();
|
final int keySpecType = in.readInt();
|
||||||
@@ -177,7 +177,7 @@ public final class ParcelableKeyGenParameterSpec implements Parcelable {
|
|||||||
// KeyGenParameterSpec constructor (whereas using a builder would silently drop them).
|
// KeyGenParameterSpec constructor (whereas using a builder would silently drop them).
|
||||||
mSpec = new KeyGenParameterSpec(
|
mSpec = new KeyGenParameterSpec(
|
||||||
keystoreAlias,
|
keystoreAlias,
|
||||||
uid,
|
namespace,
|
||||||
keySize,
|
keySize,
|
||||||
algorithmSpec,
|
algorithmSpec,
|
||||||
certificateSubject,
|
certificateSubject,
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ public abstract class AndroidKeyStoreKeyPairGeneratorSpi extends KeyPairGenerato
|
|||||||
private KeyGenParameterSpec mSpec;
|
private KeyGenParameterSpec mSpec;
|
||||||
|
|
||||||
private String mEntryAlias;
|
private String mEntryAlias;
|
||||||
private int mEntryUid;
|
private int mEntryNamespace;
|
||||||
private @KeyProperties.KeyAlgorithmEnum String mJcaKeyAlgorithm;
|
private @KeyProperties.KeyAlgorithmEnum String mJcaKeyAlgorithm;
|
||||||
private int mKeymasterAlgorithm = -1;
|
private int mKeymasterAlgorithm = -1;
|
||||||
private int mKeySizeBits;
|
private int mKeySizeBits;
|
||||||
@@ -218,7 +218,7 @@ public abstract class AndroidKeyStoreKeyPairGeneratorSpi extends KeyPairGenerato
|
|||||||
}
|
}
|
||||||
|
|
||||||
mEntryAlias = spec.getKeystoreAlias();
|
mEntryAlias = spec.getKeystoreAlias();
|
||||||
mEntryUid = spec.getUid();
|
mEntryNamespace = spec.getNamespace();
|
||||||
mSpec = spec;
|
mSpec = spec;
|
||||||
mKeymasterAlgorithm = keymasterAlgorithm;
|
mKeymasterAlgorithm = keymasterAlgorithm;
|
||||||
mKeySizeBits = spec.getKeySize();
|
mKeySizeBits = spec.getKeySize();
|
||||||
@@ -439,7 +439,7 @@ public abstract class AndroidKeyStoreKeyPairGeneratorSpi extends KeyPairGenerato
|
|||||||
|
|
||||||
private void resetAll() {
|
private void resetAll() {
|
||||||
mEntryAlias = null;
|
mEntryAlias = null;
|
||||||
mEntryUid = KeyProperties.NAMESPACE_APPLICATION;
|
mEntryNamespace = KeyProperties.NAMESPACE_APPLICATION;
|
||||||
mJcaKeyAlgorithm = null;
|
mJcaKeyAlgorithm = null;
|
||||||
mKeymasterAlgorithm = -1;
|
mKeymasterAlgorithm = -1;
|
||||||
mKeymasterPurposes = null;
|
mKeymasterPurposes = null;
|
||||||
@@ -541,10 +541,10 @@ public abstract class AndroidKeyStoreKeyPairGeneratorSpi extends KeyPairGenerato
|
|||||||
|
|
||||||
KeyDescriptor descriptor = new KeyDescriptor();
|
KeyDescriptor descriptor = new KeyDescriptor();
|
||||||
descriptor.alias = mEntryAlias;
|
descriptor.alias = mEntryAlias;
|
||||||
descriptor.domain = mEntryUid == KeyProperties.NAMESPACE_APPLICATION
|
descriptor.domain = mEntryNamespace == KeyProperties.NAMESPACE_APPLICATION
|
||||||
? Domain.APP
|
? Domain.APP
|
||||||
: Domain.SELINUX;
|
: Domain.SELINUX;
|
||||||
descriptor.nspace = mEntryUid;
|
descriptor.nspace = mEntryNamespace;
|
||||||
descriptor.blob = null;
|
descriptor.blob = null;
|
||||||
|
|
||||||
boolean success = false;
|
boolean success = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user