Add DRM reprovisioning request generation

[ Merge of http://go/wvgerrit/192010 ]

Updates the CDM to add support for DRM reprovisioning request creation.
- Load the baked-in certificate for use as the client token.
- Add functions to build and sign a drm reprovisioning request.
- Update the Rikers L3 OEMCrypto implementation to support signing
  provisioning requests and getting embedded certificate.
- Update client id token to handle DRM reprovisioning.
- Add OEMCrypto function to load the baked-in device certificate in
  Rikers CDMs and stubs for non-Rikers CDMs.
- Add dynamic adapter support for getting embedded device certificate
  only on L3.

Bug: 305093063
Test: WVTS
Change-Id: I9a0ecf95e27213b046f03baa0781fb164179323b
This commit is contained in:
Rahul Frias
2024-03-07 14:39:46 -08:00
parent 6499e7063d
commit af2ffca5fa
16 changed files with 164 additions and 7 deletions

View File

@@ -112,6 +112,9 @@ class CryptoSession {
// Only valid for OEM certificate-based based devices.
virtual CdmResponseType GetTokenFromOemCert(
RequestedSecurityLevel requested_security_level, std::string* oem_cert);
// Retrieves the embedded public certificate from OEMCrypto.
// Only valid for L3 devices with embedded (baked-in) certificates.
virtual CdmResponseType GetTokenFromEmbeddedCertificate(std::string* token);
// The overloaded methods with |requested_level| may be called
// without a preceding call to Open. The other method must call Open first.

View File

@@ -463,6 +463,7 @@ enum CdmResponseEnum : int32_t {
SESSION_NOT_FOUND_24 = 397,
GET_DEVICE_INFORMATION_ERROR = 398,
GET_DEVICE_SIGNED_CSR_PAYLOAD_ERROR = 399,
GET_TOKEN_FROM_EMBEDDED_CERT_ERROR = 400,
// Don't forget to add new values to
// * core/src/wv_cdm_types.cpp
// * android/include/mapErrors-inl.h