Add CHANGELOG for OPK v19.0 release

Change-Id: I1fd79428c357b8e0f9fd2a4ec857d7b3489eea64
This commit is contained in:
Matt Feddersen
2023-12-12 15:52:38 -08:00
committed by Robert Shih
parent 4c9a8e32a5
commit d89faef0f3

View File

@@ -2,6 +2,66 @@
[TOC]
## [Version 19.0][v19.0]
This is the initial release of OPK v19.0, which implements OEMCrypto v19.0.
### OEMCrypto v19
All features outlined in the v19 Delta Document are supported in this release:
- License Release
- Multiple Entitled Sessions per License Session
- Provisioning 4 Manufacturing Updates
- Support License Protocol v2.2
- Derived Key Context Computed Inside OEMCrypto
- Refactor OEMCrypto_SetDecryptHash
### Other changes
- OEMCrypto_BuildInformation() previously produced JSON that had a trailing
comma after the last entry. This passes some JSON parsing libraries such as
`jsmn`, but is ultimately incorrect. This has been fixed.
- Changed key sanity checks in the wtpi_reference code to be constant time.
- Memory containing keys is now erased after the keys are used.
- `FACTORY_BUILD_ONLY` macro added to separate OEMCrypto functions that are only
intended to be used in the factory, eg OEMCrypto_InstallKeyboxOrOEMCert().
- Added support for Provisioning 4 alternative signing models. Keybox-based
signatures are fully supported, and externally generated X509 signatures are
planned for a future update.
- Restrict OEMCrypto_GenerateRSASignature() to only allow Cast certificates.
### OP-TEE port changes
- Added an option to generate an ECC keypair instead of RSA. Use the
`OEMCRYPTO_GEN_KEYPAIR_TYPE` make variable at compilation time to specify which
method to use.
- Modified the key derivation step (device unique key -> asymmetric key pair)
in Provisioning 4 CoseSign1 operations to use a NIST standard KDF process.
Implementers can opt out of this by using the `DEVICEKEY_NON_NIST_KDF` make
variable during compilation, which may be useful for existing devices in the
field that are upgrading from older OPK versions tha used a non-standard key
derivation.
- Renamed `der_parse` files to `crypto_util_*` to better reflect their purpose.
- Renamed `wtpi_persistent_storage_layer2.c` to
`wtpi_persistent_storage_layer1.c` to better reflect its purpose.
- Removed `TEE_DATA_FLAG_OVERWRITE` flag from persistent storage read
operations, to avoid accidentally creating empty files and overwriting existing
files when encountering an error.
- Fixed bug in `WTPI_GetBootCertificateChain()` where ECC keys that are smaller
than 32 bytes cause an error during parsing.
- Update OEMCrypto_GetDeviceInformation() implementation to include all
required fields to pass device info validation tests. Field contents still need
to be filled in by implementers for platform specific parameters such as device
brand, bootloader unlock state, etc.
### Known issues
- The OP-TEE port does not yet support Provisioning 4 stage 2, or Provisioning
4 alternate signing models. Implementers may choose to write their own
functionality for these features using the BoringSSL-based wtpi_reference as
a guide.
## [Version 18.4][v18.4]
Version 18.4 includes the reference implementation in OPK to support MediaCAS,
@@ -479,3 +539,4 @@ Public release for OEMCrypto API and ODK library version 16.4.
[v18.1]: https://widevine-partner.googlesource.com/oemcrypto/+/refs/tags/v18.1
[v18.3]: https://widevine-partner.googlesource.com/oemcrypto/+/refs/tags/v18.3
[v18.4]: https://widevine-partner.googlesource.com/oemcrypto/+/refs/tags/v18.4
[v19.0]: https://widevine-partner.googlesource.com/oemcrypto/+/refs/tags/v19.0