Add digest support and implementation name to getHardwareFeatures
This is needed to support the keystore statistics gathering initiative.
It will allow us to get information about what kinds of keymaster
implementations exist in the ecosystem, and which ones fail in which
ways.
Bug: 36549319
Test: Will add to VTS tests
Change-Id: I49ee4623656060d69a6de7723b11cd715150451a
diff --git a/keymaster/3.0/IKeymasterDevice.hal b/keymaster/3.0/IKeymasterDevice.hal
index 50a41ec..2664765 100644
--- a/keymaster/3.0/IKeymasterDevice.hal
+++ b/keymaster/3.0/IKeymasterDevice.hal
@@ -43,10 +43,20 @@
* key attestation certificates, signed with a key injected in a secure
* environment. CDD requires that all devices initially launched with Android O or
* later must support hardware attestation.
+ *
+ * @return supportsAllDigests is true if the hardware supports all keymaster digest functions,
+ * namely ND-5, SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512. CDD requires that all
+ * devices launched initially with Android O or later must support all digests.
+ *
+ * @return keymasterName is the name of the keymaster implementation.
+ *
+ * @return keymasterAuthorName is the name of the author of the keymaster implementation
+ * (generally this should be the name of an organization, not an individual.)
*/
getHardwareFeatures()
- generates(bool isSecure, bool supportsEllipticCurve,
- bool supportsSymmetricCryptography, bool supportsAttestation);
+ generates(bool isSecure, bool supportsEllipticCurve, bool supportsSymmetricCryptography,
+ bool supportsAttestation, bool supportsAllDigests, string keymasterName,
+ string keymasterAuthorName);
/**
* Adds entropy to the RNG used by keymaster. Entropy added through this method is guaranteed