Save and retrieve key information from licenses and usage records
[ Merge of http://go/wvgerrit/120512 ] Wrapped DRM private keys are loaded when a key request is made or when offline/usage sessions are restored. They were earlier loaded when a session was opened. For streaming sessions, key material will be fetched from the default or legacy certificates and loaded when a key request is made. For offline and usage sessions, key material may be retrieved from license or usage records if available. If not available, information associated with the legacy certificate will be loaded. Certificate and wrapped keys are also written out when an offline license or usage record is saved. Bug: 169740403 Test: WV unit/integration tests WvCdmRequestLicenseTest.ProvisioningWithExpiringCertTest WvCdmRequestLicenseTest.StreamingWithExpiringCertTest WvCdmRequestLicenseTest.RestoreOfflineKeysWithExpiringCertTest Change-Id: Ice0154c632170c46da171cbbb23a97380c610a98
This commit is contained in:
@@ -219,6 +219,19 @@ class CdmSession {
|
||||
private:
|
||||
friend class CdmSessionTest;
|
||||
|
||||
// Both these methods will attempt to load wrapped key material and
|
||||
// cache values in |drm_certificate_| and |wrapped_private_key_|
|
||||
// if successful.
|
||||
// This methods will load the key from persistent storage.
|
||||
CdmResponseType LoadPrivateKey();
|
||||
// This method will load the specified key if valid or otherwise load
|
||||
// the information from the legacy certificate.
|
||||
CdmResponseType LoadPrivateOrLegacyKey(
|
||||
const std::string& certificate,
|
||||
const CryptoWrappedKey& wrapped_private_key);
|
||||
|
||||
CdmResponseType LoadPrivateKey(const CryptoWrappedKey& wrapped_private_key);
|
||||
|
||||
bool GenerateKeySetId(bool atsc_mode_enabled, CdmKeySetId* key_set_id);
|
||||
|
||||
CdmResponseType StoreLicense();
|
||||
@@ -273,6 +286,9 @@ class CdmSession {
|
||||
CdmSecurityLevel security_level_;
|
||||
SecurityLevel requested_security_level_;
|
||||
CdmAppParameterMap app_parameters_;
|
||||
bool atsc_mode_enabled_ = false;
|
||||
std::string drm_certificate_;
|
||||
CryptoWrappedKey wrapped_private_key_;
|
||||
|
||||
// decryption flags
|
||||
bool is_initial_decryption_;
|
||||
|
||||
Reference in New Issue
Block a user