From 9d57e3f4be08e7d56b32b80c5e7a040f1a6cfcf3 Mon Sep 17 00:00:00 2001 From: BKSSM Venkateswarlu Date: Fri, 26 Feb 2021 11:20:26 +0000 Subject: [PATCH] A Strongbox implementation need not support support DEVICE_UNIQUE_ATTESTATION, and return ErrorCode::CANNOT_ATTEST_IDS if they don't support it. --- Applet/src/com/android/javacard/keymaster/KMError.java | 1 + .../src/com/android/javacard/keymaster/KMKeymasterApplet.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Applet/src/com/android/javacard/keymaster/KMError.java b/Applet/src/com/android/javacard/keymaster/KMError.java index bac8cf20..0b4373d3 100644 --- a/Applet/src/com/android/javacard/keymaster/KMError.java +++ b/Applet/src/com/android/javacard/keymaster/KMError.java @@ -66,6 +66,7 @@ public class KMError { public static final short KEY_REQUIRES_UPGRADE = 62; public static final short ATTESTATION_APPLICATION_ID_MISSING = 65; + public static final short CANNOT_ATTEST_IDS = 66; public static final short ROLLBACK_RESISTANCE_UNAVAILABLE = 67; public static final short DEVICE_LOCKED = 72; diff --git a/Applet/src/com/android/javacard/keymaster/KMKeymasterApplet.java b/Applet/src/com/android/javacard/keymaster/KMKeymasterApplet.java index 07cc134b..6d5acb36 100644 --- a/Applet/src/com/android/javacard/keymaster/KMKeymasterApplet.java +++ b/Applet/src/com/android/javacard/keymaster/KMKeymasterApplet.java @@ -1388,7 +1388,7 @@ private void processAttestKeyCmd(APDU apdu) { KMKeyParameters.findTag( KMType.BOOL_TAG, KMType.DEVICE_UNIQUE_ATTESTATION, data[KEY_PARAMETERS]); if (tmpVariables[0] != KMType.INVALID_VALUE) { - KMException.throwIt(KMError.UNIMPLEMENTED); + KMException.throwIt(KMError.CANNOT_ATTEST_IDS); } // The key which is being attested should be asymmetric i.e. RSA or EC tmpVariables[0] = KMEnumTag.getValue(KMType.ALGORITHM, data[HW_PARAMETERS]);