summaryrefslogtreecommitdiffstats
path: root/include/hardware/keymaster.h
Commit message (Collapse)AuthorAgeFilesLines
* Described restrictions for common HAL object methods.Stewart Miles2014-05-121-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Inheritance of HAL object is performed by composing a child structure of a single parent structure located at offset 0 followed by new data members and function pointers in the child structure. For example, struct child { struct parent common; int a_data_member; void (*a_method)(struct child *c, int v); }; HAL code assumes this layout when accessing child structures given a pointer to a parent structure such that users write code like the following... void child_method(struct *parent, int v) { struct child * c = (struct child*)parent; // do stuff with c } Code above will break if a member is added before "common" in "struct child". This change adds comments that describe the restriction on the location of parent HAL objects within a derived HAL object. HAL objects that already have comments that describe the required location of parent objects are not modified. Change-Id: Ibe4300275286ef275b2097534c84f1029d761d87
* keymaster: add flags indicating feature supportKenny Root2014-04-181-2/+29
| | | | | | | | | | | | | | | | | | | For wrapping the disk encryption secret, we add a flag that indicates it can be done without having to start some storage daemon which the trusted OS will query to get data needed to load up the keys. This usually means that the "key blob" we store is actually just the RSA key encrypted with the device's KEK and not a reference to an encrypted filesystem stored on /data Also to allow other providers to upgrade to V3 of the header, we add flags to show whether the keymaster supports different key types. This allows keymaster HALs to support the whole device encryption secret wrapping without needing to implement DSA and EC key handling. The V2 header made support implicit. (cherry picked from commit 8a3849e26f9c64314edb69586819250e8f95c1eb) Change-Id: I49be8403faf9f4c3888c84848b3009b44ab6d183
* keymaster: use new version fields in hw_moduleKenny Root2013-09-041-8/+10
| | | | | | | | | | The original version of this HAL used a field in keymaster_module to represent the module's version number, but a later revision of the HAL interface added a distinguisher between HAL module and device versions. This is needed to support upgrade code in keystore. Bug: 10600582 Change-Id: Ied34cf382e2b7725e648faada00df2dee993e6c5
* Add support for DSA and ECDSA key typesKenny Root2013-09-031-4/+46
| | | | | | | (cherry picked from commit 6e1683f5d508a4c1ff761a9a3508619ac5ac6ed7) Bug: 10600582 Change-Id: I8e5b66baa70b37031198260853bb5355df75e23d
* Merge "keymaster: add flags for keymaster features"Kenny Root2012-03-261-0/+19
|\
| * keymaster: add flags for keymaster featuresKenny Root2012-03-261-0/+19
| | | | | | | | | | | | | | | | | | 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
* | Add delete_all to keymaster APIKenny Root2012-03-261-0/+16
|/ | | | | | | | In order to aid keymasters erase their memory efficiently, introduce new delete_all API to tell keymasters to forget everything. This will be triggered when keystore itself is told to reset. Change-Id: I730375f1f32cd1ea0bf1fa38d5b1bec2f81ba492
* Update keymaster API to final signing specKenny Root2012-03-131-23/+100
| | | | | | | | | | | | | | | | Switch from unspecified encoding for import of keys to PKCS#8 (Java standard encoding). Add function for obtaining the public key from a keypair. Add fields for RSA key generation that indicate modulus size and desired public exponent. Add in placeholder fields for possible digest and padding types for signatures. Currently the only thing supported is "none" and "none" respectively. Change-Id: I19ee02cf35321aee859e2460a963c7213791414b
* Add hardware API for key handlingKenny Root2012-02-161-0/+102
Add a hardware API for key handling from "keystore" Change-Id: I5fd192cc212dbb057ee2a7003d602382ee2cd2c0