Widevine CE CDM 19.4.0
Released 2024-11-27
Getting Started
This project contains the sources for building a Widevine CDM module. Read the following to learn more about the contents of this project and how to use them:
The Widevine Developer Site documents the CDM API and describes how to integrate the CDM into a system.
New in v19.4.0
This is a minor release with bug fixes and test improvements.
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
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
CHANGELOG.md lists the major changes for each past release.
Contains No OEMCrypto
The CE CDM requires an implementation of OEMCrypto, our hardware abstraction layer, in order to compile and run successfully. If you are an OEMCrypto implementer, you should have access to the OEMCrypto partner repository, which contains additional source code and information about implementing OEMCrypto, including the Widevine-written OEMCrypto implementation, the OEMCrypto Porting Kit. (OPK) If you are not an OEMCrypto implementer, then you will need to get an OEMCrypto implementation from your SoC manufacturer before you can use the CE CDM.