xref: /aosp_15_r20/hardware/interfaces/security/rkp/CHANGELOG.md (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
1*4d7e907cSAndroid Build Coastguard Worker# Remote Provisioning Changelog
2*4d7e907cSAndroid Build Coastguard Worker
3*4d7e907cSAndroid Build Coastguard WorkerThis document provides an exact description of which changes have occurred in the
4*4d7e907cSAndroid Build Coastguard Worker`IRemotelyProvisionedComponent` HAL interface in each Android release.
5*4d7e907cSAndroid Build Coastguard Worker
6*4d7e907cSAndroid Build Coastguard Worker## Releases
7*4d7e907cSAndroid Build Coastguard Worker* **Android S (12):** IRemotelyProvisionedComponent v1
8*4d7e907cSAndroid Build Coastguard Worker* **Android T (13):** IRemotelyProvisionedComponent v2
9*4d7e907cSAndroid Build Coastguard Worker* **Android U (14):** IRemotelyProvisionedComponent v3
10*4d7e907cSAndroid Build Coastguard Worker
11*4d7e907cSAndroid Build Coastguard Worker## IRemotelyProvisionedComponent 1 -> 2
12*4d7e907cSAndroid Build Coastguard Worker* DeviceInfo
13*4d7e907cSAndroid Build Coastguard Worker  * Most entries are no longer optional.
14*4d7e907cSAndroid Build Coastguard Worker  * `att_id_state` is now `fused`. `fused` is used to indicate if SecureBoot is enabled.
15*4d7e907cSAndroid Build Coastguard Worker  * `version` is now `2`.
16*4d7e907cSAndroid Build Coastguard Worker  * `board` has been removed.
17*4d7e907cSAndroid Build Coastguard Worker  * `device` has been added.
18*4d7e907cSAndroid Build Coastguard Worker* RpcHardwareInfo
19*4d7e907cSAndroid Build Coastguard Worker  * `uniqueId` String added as a field in order to differentiate IRPC instances on device.
20*4d7e907cSAndroid Build Coastguard Worker
21*4d7e907cSAndroid Build Coastguard Worker## IRemotelyProvisionedComponent 2 -> 3
22*4d7e907cSAndroid Build Coastguard Worker* The RKP HAL now builds separately from KeyMint.
23*4d7e907cSAndroid Build Coastguard Worker  * The HAL remains under the `android.hardware.security.keymint` package for
24*4d7e907cSAndroid Build Coastguard Worker    compatibility with previous releases. ABI compatibility requires this.
25*4d7e907cSAndroid Build Coastguard Worker  * Dependencies on the RKP HAL must add a dependency on
26*4d7e907cSAndroid Build Coastguard Worker    `"android.hardware.security.rkp"` generated code (instead of
27*4d7e907cSAndroid Build Coastguard Worker    `"android.hardward.security.keymint"`).
28*4d7e907cSAndroid Build Coastguard Worker* ProtectedData has been removed.
29*4d7e907cSAndroid Build Coastguard Worker* DeviceInfo
30*4d7e907cSAndroid Build Coastguard Worker  * `version` has moved to a top-level field within the CSR generated by the HAL.
31*4d7e907cSAndroid Build Coastguard Worker* IRemotelyProvisionedComponent
32*4d7e907cSAndroid Build Coastguard Worker  * The need for an EEK has been removed. There is no longer an encrypted portion of the CSR.
33*4d7e907cSAndroid Build Coastguard Worker  * Keys for new CSR format must be generated with test mode set to false, effectively removing test
34*4d7e907cSAndroid Build Coastguard Worker    mode in the new CSR flow.
35*4d7e907cSAndroid Build Coastguard Worker  * The schema for the CSR itself has been significantly simplified, please see
36*4d7e907cSAndroid Build Coastguard Worker    IRemotelyProvisionedComponent.aidl for more details. Notably,
37*4d7e907cSAndroid Build Coastguard Worker    * the chain of signing, MACing, and encryption operations has been replaced with a single
38*4d7e907cSAndroid Build Coastguard Worker      COSE_Sign1 object.
39*4d7e907cSAndroid Build Coastguard Worker    * CertificateType has been added to identify the type of certificate being requested.
40*4d7e907cSAndroid Build Coastguard Worker    * The structure has been composed to enable a clear split between what is required to validate a
41*4d7e907cSAndroid Build Coastguard Worker      payload and the implementation-defined payload itself. This is done by creating a typed
42*4d7e907cSAndroid Build Coastguard Worker      `AuthenticatedRequest<T>` object representing the top level data required to authenticate
43*4d7e907cSAndroid Build Coastguard Worker      the data provided in the payload, `T`.
44*4d7e907cSAndroid Build Coastguard Worker  * The new CSR format supports P-384 signing keys and SHA-384 hashes in the DICE chain.
45*4d7e907cSAndroid Build Coastguard Worker  * The component version can now be either an int or a string.
46*4d7e907cSAndroid Build Coastguard Worker* RpcHardwareInfo
47*4d7e907cSAndroid Build Coastguard Worker  * `supportedNumKeysInCsr` added to report the maximum number of keys supported in a CSR.
48*4d7e907cSAndroid Build Coastguard Worker  * `supportedEekCurve` is no longer used, due to the removal of the EEK from the scheme.
49