diff --git a/keymaster/4.0/vts/functional/KeymasterHidlTest.cpp b/keymaster/4.0/vts/functional/KeymasterHidlTest.cpp index d0ad433464..d326334510 100644 --- a/keymaster/4.0/vts/functional/KeymasterHidlTest.cpp +++ b/keymaster/4.0/vts/functional/KeymasterHidlTest.cpp @@ -21,6 +21,7 @@ #include #include +#include #include #include @@ -685,6 +686,9 @@ std::vector KeymasterHidlTest::InvalidKeySizes(Algorithm algorithm) { case Algorithm::EC: return {224, 384, 521}; case Algorithm::AES: + // The HAL language was clarified to exclude AES key sizes of 192 for StrongBox + // instances on devices launched on API Level 31 and above. + if (property_get_int32("ro.board.first_api_level", 0) < 31) return {}; return {192}; default: return {}; diff --git a/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl b/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl index 18497236eb..cd8cfc5f6e 100644 --- a/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl +++ b/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl @@ -96,7 +96,8 @@ import android.hardware.security.secureclock.TimeStampToken; * * o AES * - * - 128 and 256-bit keys + * - TRUSTED_ENVIRONMENT IKeyMintDevices must support 128, 192 and 256-bit keys. + * STRONGBOX IKeyMintDevices must only support 128 and 256-bit keys. * - CBC, CTR, ECB and GCM modes. The GCM mode must not allow the use of tags smaller than 96 * bits or nonce lengths other than 96 bits. * - CBC and ECB modes must support unpadded and PKCS7 padding modes. With no padding CBC and