Source release 19.5.0

This commit is contained in:
Cong Lin
2025-04-02 10:27:18 -07:00
parent 4407acee62
commit f7ec4fdeff
295 changed files with 32196 additions and 21748 deletions

View File

@@ -1,6 +1,6 @@
# Widevine CE CDM 19.4.0
# Widevine CE CDM 19.5.0
Released 2024-11-27
Released 2025-04-02
## Getting Started
@@ -10,48 +10,51 @@ following to learn more about the contents of this project and how to use them:
The [Widevine Developer Site][wv-devsite] documents the CDM API and describes
how to integrate the CDM into a system.
## New in v19.4.0
## New in v19.5.0
This is a minor release with bug fixes and test improvements.
This is a minor release with bug fixes, test improvements, and dependency
updates.
### Features
- Add support for new OEMCrypto_GetBCCSignatureType() API. This API is optional
and only used on devices that support Provisioning 4 with a Phase 3 DICE
chain.
- Add credential types to client identification protobuf
- Return BCC signature type into client identification protobuf
- BCC extraction tool updates and refactoring
- Rewrite BCC, DeviceInfo and CSR Payload validators to cover info parsing,
validating and updating unit tests
- Update error codes returned by cbor/provisioning 4.0 validators to be less
severe when possible
- Add a few required fields for test-generated BCC
- Include licensing files with this release and future CE CDM releases
### Tests
- Update license release tests to accomodate differences in behavior for CE
CDM and Android
- Update some CAST tests to enforce format of the message signed by
OEMCrypto_GenerateRSASignature()
- Add tool to extract BCC and build info for BCC uploading test
- Skip usage table tests on devices that don't support usage tables
- Fix key type used in InstallOemPrivateKeyCanBeUsed test
- Re-enable OEMCrypto security tests
- Allow multiple callbacks in TestSleep class to prevent multiple classes
trying to register a callback
- Improve error logging for tests
- Add log statement on failure when device with a TEST_ONLY system ID cannot
play production content
- Updated `HasRootOfTrustBeenRenewed()` to detect Drm Reprovisioning
- Updated CE BCC extraction tool:
- Added a Makefile to `wv_factory_extractor` tool
- Added an option to run BCC validator with the tool
- Refactored `ProvisioningHolder` to separate generate, fetch, and load
operations
### Bug Fixes
- Fix HLS parsing of bad content IDs
- Revert change to limit output buffer size during decrypt fallback due to
failures seen in 19.3 because the output buffer was not big enough
- Update blank OEMCrypto devsite test pages
- Small fixes to reduce compiler warnings
- Ignored certain errors during `RemoveOfflineLicense()` for apps which have
been unprovisioned
- Allowed `key_session` to be equal to `oec_session` when removing entitled
key sessions
### Tests
- Added test `PrintClientAndServerVersionNumber` that prints the core message
info for both provisioning and license request/response
- Updated provisioning server version test to accommodate v16 responses
- Relaxed BCC validation test requirements, downgrading non-critical errors
to warnings and improving output clarity
- Added integration test to verify that renewal is not needed before renewal
delay seconds
- Added check to verify that renewals include client ID when "always includes
client ID" is true
- Updated `CdmUseCase_LicenseWithRenewal` test to verify that request has
correct info for persistent license
- Added a test to verify PST with length 127 succeeds
- Added new duration tests:
- A test for loading licenses unrelated to the content being played back
- Tests for the `30sSoftRental_UnlimitedPlayback` scenario
- Tests with past and future license start time policies
- Tests for short playback timers with unlimited rental duration
### Dependency Updates
- Updated BoringSSL to latest (e4b6d4f7)
- Updated googletest to latest (4902ea2)
[CHANGELOG.md](./CHANGELOG.md) lists the major changes for each past release.