The first flag is something for the default implementation to use to
indicate that its keys are importable to hardware keymasters. This
allows easy migration from the default software implementation to
hardware implementations as they become available.
Change-Id: Ideb26a4b1ac91ca8c330a4fe4df323f028b2f855
*/
#define KEYMASTER_API_VERSION 1
+/**
+ * Flags for keymaster_device::flags
+ */
+enum {
+ /*
+ * Indicates this keymaster implementation does not have hardware that
+ * keeps private keys out of user space.
+ *
+ * This should not be implemented on anything other than the default
+ * implementation.
+ */
+ KEYMASTER_SOFTWARE_ONLY = 0x00000001,
+};
+
struct keystore_module {
hw_module_t common;
};
uint32_t client_version;
+ /**
+ * See flags defined for keymaster_device::flags above.
+ */
+ uint32_t flags;
+
void* context;
/**