Keystore: Attestation fix in non AOSP builds
After adding attestation properties for AOSP/GSI builds their comparison in Spi layer missed one condition. If these values were not set they were assigned as Build.UNKNOWN. Hence additional check is added in Spi layer. Bug: 267643193 Test: atest CtsKeystoreTestCases:android.keystore.cts.KeyAttestationTest CtsKeystoreTestCases:DeviceOwnerKeyManagementTest Change-Id: I5b3ef0a308bbb12bc4cac2efcf04468f65db1ef8
This commit is contained in:
@@ -801,7 +801,8 @@ public abstract class AndroidKeyStoreKeyPairGeneratorSpi extends KeyPairGenerato
|
||||
));
|
||||
|
||||
if (mSpec.isDevicePropertiesAttestationIncluded()) {
|
||||
final String platformReportedBrand = TextUtils.isEmpty(Build.BRAND_FOR_ATTESTATION)
|
||||
final String platformReportedBrand =
|
||||
isPropertyEmptyOrUnknown(Build.BRAND_FOR_ATTESTATION)
|
||||
? Build.BRAND : Build.BRAND_FOR_ATTESTATION;
|
||||
params.add(KeyStore2ParameterUtils.makeBytes(
|
||||
KeymasterDefs.KM_TAG_ATTESTATION_ID_BRAND,
|
||||
@@ -812,8 +813,8 @@ public abstract class AndroidKeyStoreKeyPairGeneratorSpi extends KeyPairGenerato
|
||||
Build.DEVICE.getBytes(StandardCharsets.UTF_8)
|
||||
));
|
||||
final String platformReportedProduct =
|
||||
TextUtils.isEmpty(Build.PRODUCT_FOR_ATTESTATION) ? Build.PRODUCT :
|
||||
Build.PRODUCT_FOR_ATTESTATION;
|
||||
isPropertyEmptyOrUnknown(Build.PRODUCT_FOR_ATTESTATION)
|
||||
? Build.PRODUCT : Build.PRODUCT_FOR_ATTESTATION;
|
||||
params.add(KeyStore2ParameterUtils.makeBytes(
|
||||
KeymasterDefs.KM_TAG_ATTESTATION_ID_PRODUCT,
|
||||
platformReportedProduct.getBytes(StandardCharsets.UTF_8)
|
||||
@@ -822,7 +823,8 @@ public abstract class AndroidKeyStoreKeyPairGeneratorSpi extends KeyPairGenerato
|
||||
KeymasterDefs.KM_TAG_ATTESTATION_ID_MANUFACTURER,
|
||||
Build.MANUFACTURER.getBytes(StandardCharsets.UTF_8)
|
||||
));
|
||||
final String platformReportedModel = TextUtils.isEmpty(Build.MODEL_FOR_ATTESTATION)
|
||||
final String platformReportedModel =
|
||||
isPropertyEmptyOrUnknown(Build.MODEL_FOR_ATTESTATION)
|
||||
? Build.MODEL : Build.MODEL_FOR_ATTESTATION;
|
||||
params.add(KeyStore2ParameterUtils.makeBytes(
|
||||
KeymasterDefs.KM_TAG_ATTESTATION_ID_MODEL,
|
||||
@@ -1227,4 +1229,8 @@ public abstract class AndroidKeyStoreKeyPairGeneratorSpi extends KeyPairGenerato
|
||||
result.retainAll(authorizedKeymasterKeyDigests);
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean isPropertyEmptyOrUnknown(String property) {
|
||||
return TextUtils.isEmpty(property) || property.equals(Build.UNKNOWN);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user