Cherry pick 18.4 changes to udc-widevine-dev
Get the udc-widevine-dev Android branch and oemcrypto-v18 cdm branch in sync. The commit ID for 18.4 on oemcrypto-v18 is https://widevine-internal.git.corp.google.com/cdm/+/a2f23a2281e5e06dc2867585bdc516fa132b639. Merged from go/wvgerrit/190151 Bug: 290252845 Test: unit tests passing on Panther device Change-Id: I63fa3f1c784f737ca1480e5febe4f3f5a8a49948
This commit is contained in:
@@ -2,6 +2,21 @@
|
||||
|
||||
[TOC]
|
||||
|
||||
## [Version 18.4][v18.4]
|
||||
|
||||
Version 18.4 includes the reference implementation in OPK to support MediaCAS,
|
||||
and an end-to-end demo of OEMCrypto CAS functionality. These updates were in
|
||||
fact introduced in Version 17.2. See CAS-related updates in the change log of
|
||||
Version 17.2 for details. Since Version 17.2 changes were merged to OEMCrypto
|
||||
v18 after Version 18.3 got published, we bumped the version to 18.4 to reflect
|
||||
the updates. If your device doesn't support MediaCAS, this update can be skipped.
|
||||
|
||||
### Other changes
|
||||
|
||||
- A fix in ODK that matches minor version with major version during session
|
||||
initialization.
|
||||
- Added a unit test for zero subsample size.
|
||||
|
||||
## [Version 18.3][v18.3]
|
||||
|
||||
Version 18.3 includes a major feature (Cast with Provisioning 4.0) and various
|
||||
@@ -9,7 +24,7 @@ minor changes. Version 18.2 was an internal version bump for the ODK that
|
||||
included changes used by the provisioning server. Since we keep the ODK and OPK
|
||||
version numbers in sync, the OPK version effectively skipped 18.2.
|
||||
|
||||
## Cast with Provisioning 4.0
|
||||
### Cast with Provisioning 4.0
|
||||
|
||||
The OPK now supports devices that wish to act as cast receivers while using
|
||||
Provisioning 4.0. Previously, only devices using Provisioning 2.0 or devices
|
||||
@@ -20,7 +35,7 @@ The OPK changes are included in this release. The CDM changes are part of
|
||||
Android U. The provisioning server changes are live on Widevine staging servers,
|
||||
and will be pushed to production by August 2023.
|
||||
|
||||
## OP-TEE port changes
|
||||
### OP-TEE port changes
|
||||
|
||||
- Added CSR and DeviceInformation implementations for Provisioning 4.0.
|
||||
- Bugfix: REE->TEE message shared memory was sized based on the incoming request
|
||||
@@ -29,7 +44,7 @@ did not fit in the nearest page boundary. Fixed by setting the shared memory
|
||||
size to the maximum allowed and passing in the request size as a separate
|
||||
TEE_Param.
|
||||
|
||||
## Other changes
|
||||
### Other changes
|
||||
|
||||
- Updated BoringSSL dependency to
|
||||
https://boringssl.googlesource.com/boringssl/+/e1b8685770d0e82e5a4a3c5d24ad1602e05f2e83
|
||||
@@ -50,7 +65,7 @@ license response. The client-side value of `MAX_NUM_KEYS` must be changed in
|
||||
`odk/include/odk_target.h` to match the server's value. This is only intended
|
||||
for closed network systems.
|
||||
|
||||
## Known issues
|
||||
### Known issues
|
||||
|
||||
- CdmOtaKeyboxTest.BasicTest may fail due to server issues
|
||||
- The ODK renewal clock is not correctly checked for all circumstances. This
|
||||
@@ -243,6 +258,46 @@ OS.
|
||||
4.0.
|
||||
- The OPK does not yet support MediaCAS functionality.
|
||||
|
||||
## [Version 17.2][v17.2]
|
||||
|
||||
This release contains the first version of OPK to support MediaCAS, an
|
||||
end-to-end demo of OEMCrypto CAS functionality, several bug fixes in OPK and a
|
||||
few updates to the OEMCrypto unit tests and fuzz tests.
|
||||
|
||||
MediaCAS support has been added to OPK. `OPK_Pack_LoadCasECMKeys_Request()`,
|
||||
`OPK_Unpack_LoadCasECMKeys_Request()`, `OPK_Pack_LoadCasECMKeys_Response()`,
|
||||
`OPK_Unpack_LoadCasECMKeys_Response()` are moved out of the auto-generated
|
||||
serialization code and are added to the special cases, to allow implementor to
|
||||
pack customized data. CAS-specific WTPI functions along with a reference
|
||||
implementation have been added.
|
||||
|
||||
A new `cas` directory is added to the `ports/linux` project. This contains
|
||||
an end-to-end demo of OEMCrypto CAS functionality. The OEMCrypto CAS test client
|
||||
communicates with the Linux `tee_simulator_cas` via `liboemcrypto.so` and
|
||||
`libtuner.so`. `tee_simulator_cas` loads CAS keys and performs descrambling.
|
||||
|
||||
All CAS specific code in OPK is guarded by the compiler flag `SUPPORT_CAS`.
|
||||
|
||||
Several other updates and fixes to OPK in this release include:
|
||||
- `strnlen()` is removed from OPK to avoid issue caused by the terminating '\0'.
|
||||
- Explicit call to `builtin_add_overflow()` is removed and `oemcrypto_overflow`
|
||||
wrappers are used instead.
|
||||
- Added non-NULL checks in `WTPI_UnwrapValidateAndInstallKeybox()`,
|
||||
`OEMCrypto_OPK_SerializationVersion()`, and `OPKI_GetFromObjectTable()`.
|
||||
- Validated the wrapped key size to be non-zero.
|
||||
- Set OP-TEE serialized request size to the maximum size expected.
|
||||
- HMACs are compared in constant time.
|
||||
- Fixed pointer arithmetic with size_t to avoid unexpected truncation of the
|
||||
calculated address.
|
||||
- No-op for zero-sized subsample instead of aborting OPK.
|
||||
|
||||
This release also contains a few updates to the OEMCrypto unit tests and fuzz
|
||||
tests:
|
||||
- Reduced clock skew in flaky duration tests.
|
||||
- Removed device ID check since it is not required for v17.
|
||||
- Added a test for zero subsample size.
|
||||
- Cleaned up fuzz helper classes and added more fuzz test coverage.
|
||||
|
||||
## [OPK Version 17.1.1][v17.1+opk-v17.1.1]
|
||||
|
||||
This release fixes a flaw in the OPK code that could allow content that requires
|
||||
@@ -420,4 +475,7 @@ Public release for OEMCrypto API and ODK library version 16.4.
|
||||
[v17+test-updates+opk+mk]: https://widevine-partner.googlesource.com/oemcrypto/+/refs/tags/v17+test-updates+opk+mk
|
||||
[v17.1]: https://widevine-partner.googlesource.com/oemcrypto/+/refs/tags/v17.1
|
||||
[v17.1+opk-v17.1.1]: https://widevine-partner.googlesource.com/oemcrypto/+/refs/tags/v17.1+opk-v17.1.1
|
||||
[v17.2]: https://widevine-partner.googlesource.com/oemcrypto/+/refs/tags/v17.2
|
||||
[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
|
||||
|
||||
Reference in New Issue
Block a user