diff --git a/current.txt b/current.txt index ca07c326a6..8086f5bacd 100644 --- a/current.txt +++ b/current.txt @@ -563,4 +563,4 @@ efbb061c969fa9553d243da6ee23b83fe5d4aa663a7b8896adc52e2b015bc2f3 android.hardwar cfa81f229b69f9011c58f48264fcb552447430fe68610eac514e811e65bc306a android.hardware.wifi.supplicant@1.2::types # ABI preserving changes to HALs during Android R -# none yet +b69a7615c508acf5c5201efd1bfa3262167874fc3594e2db5a3ff93addd8ac75 android.hardware.keymaster@4.0::IKeymasterDevice diff --git a/keymaster/4.0/IKeymasterDevice.hal b/keymaster/4.0/IKeymasterDevice.hal index c867ab0c9c..3475f79dd0 100644 --- a/keymaster/4.0/IKeymasterDevice.hal +++ b/keymaster/4.0/IKeymasterDevice.hal @@ -624,7 +624,7 @@ interface IKeymasterDevice { /** * Exports a public key, returning the key in the specified format. * - * @parm keyFormat The format used for export. See KeyFormat in types.hal. + * @parm keyFormat The format used for export. Must be KeyFormat::X509. * * @param keyBlob The opaque descriptor returned by generateKey() or importKey(). The * referenced key must be asymmetric. @@ -639,7 +639,7 @@ interface IKeymasterDevice { * value, it must be computationally infeasible for the secure hardware to obtain the key * material. * - * @return keyMaterial The public key material in PKCS#8 format. + * @return keyMaterial The public key material in X.509 format. */ exportKey(KeyFormat keyFormat, vec keyBlob, vec clientId, vec appData) generates (ErrorCode error, vec keyMaterial); @@ -1005,13 +1005,11 @@ interface IKeymasterDevice { * * -- EC Keys -- * - * EC key operations must specify exactly one padding mode in inParams. If unspecified or - * specified more than once, begin() must return ErrorCode::UNSUPPORTED_PADDING_MODE. - * - * Private key operations (KeyPurpose::SIGN) need authorization of digest and padding, which - * means that the key authorizations must contain the specified values. If not, begin() must - * return ErrorCode::INCOMPATIBLE_DIGEST. Public key operations (KeyPurpose::VERIFY) are - * permitted with unauthorized digest or padding. + * EC private key operations must specify exactly one digest in inParams. If unspecified or + * specified more than once, begin() must return ErrorCode::UNSUPPORTED_DIGEST. For private key + * operations, (KeyPurpose::SIGN), if the specified digest is not in the key's authorization + * list, begin() must return ErrorCode::INCOMPATIBLE_DIGEST. Public key operations + * (KeyPurpose::VERIFY) are permitted with unauthorized digest. * * -- AES Keys -- *