Replace DeviceFiles::LicenseState with CdmOfflineLicenseState am: 4c4e746e57

Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/14280044

Change-Id: I696ec3827888b32a44feef70a99f298e8cb37e44
This commit is contained in:
Rahul Frias
2021-04-25 06:16:22 +00:00
committed by Automerger Merge Worker
6 changed files with 22 additions and 44 deletions

View File

@@ -237,7 +237,7 @@ class CdmSession {
CdmResponseType StoreLicense(); CdmResponseType StoreLicense();
bool StoreLicense(DeviceFiles::LicenseState state, int* error_detail); bool StoreLicense(CdmOfflineLicenseState state, int* error_detail);
bool UpdateUsageInfo(); bool UpdateUsageInfo();

View File

@@ -25,12 +25,6 @@ class FileSystem;
class DeviceFiles { class DeviceFiles {
public: public:
typedef enum {
kLicenseStateActive,
kLicenseStateReleasing,
kLicenseStateUnknown,
} LicenseState;
typedef enum { typedef enum {
kCertificateValid, kCertificateValid,
kCertificateExpired, kCertificateExpired,
@@ -76,7 +70,7 @@ class DeviceFiles {
// license file. License data is uniquely keyed using |key_set_id|. // license file. License data is uniquely keyed using |key_set_id|.
struct CdmLicenseData { struct CdmLicenseData {
std::string key_set_id; std::string key_set_id;
LicenseState state; CdmOfflineLicenseState state;
CdmInitData pssh_data; CdmInitData pssh_data;
// License request / response. // License request / response.
CdmKeyMessage license_request; CdmKeyMessage license_request;

View File

@@ -30,18 +30,6 @@ namespace wvcdm {
namespace { namespace {
const uint64_t kReleaseSessionTimeToLive = 60; // seconds const uint64_t kReleaseSessionTimeToLive = 60; // seconds
const uint32_t kUpdateUsageInformationPeriod = 60; // seconds const uint32_t kUpdateUsageInformationPeriod = 60; // seconds
wvcdm::CdmOfflineLicenseState MapDeviceFilesLicenseState(
wvcdm::DeviceFiles::LicenseState state) {
switch (state) {
case wvcdm::DeviceFiles::LicenseState::kLicenseStateActive:
return wvcdm::kLicenseStateActive;
case wvcdm::DeviceFiles::LicenseState::kLicenseStateReleasing:
return wvcdm::kLicenseStateReleasing;
default:
return wvcdm::kLicenseStateUnknown;
}
}
} // namespace } // namespace
class UsagePropertySet : public CdmClientPropertySet { class UsagePropertySet : public CdmClientPropertySet {
@@ -1130,7 +1118,7 @@ CdmResponseType CdmEngine::GetOfflineLicenseState(
IdToString(key_set_id)); IdToString(key_set_id));
return GET_OFFLINE_LICENSE_STATE_ERROR_2; return GET_OFFLINE_LICENSE_STATE_ERROR_2;
} }
*license_state = MapDeviceFilesLicenseState(license_data.state); *license_state = license_data.state;
return NO_ERROR; return NO_ERROR;
} }

View File

@@ -299,7 +299,7 @@ CdmResponseType CdmSession::RestoreOfflineSession(const CdmKeySetId& key_set_id,
// Attempts to restore a released offline license are treated as a release // Attempts to restore a released offline license are treated as a release
// retry. // retry.
if (Properties::allow_restore_of_offline_licenses_with_release()) { if (Properties::allow_restore_of_offline_licenses_with_release()) {
if (license_data.state == DeviceFiles::kLicenseStateReleasing) { if (license_data.state == kLicenseStateReleasing) {
license_type = kLicenseTypeRelease; license_type = kLicenseTypeRelease;
} }
} }
@@ -307,7 +307,7 @@ CdmResponseType CdmSession::RestoreOfflineSession(const CdmKeySetId& key_set_id,
// Only restore offline licenses if they are active or this is a release // Only restore offline licenses if they are active or this is a release
// retry. // retry.
if (!(license_type == kLicenseTypeRelease || if (!(license_type == kLicenseTypeRelease ||
license_data.state == DeviceFiles::kLicenseStateActive)) { license_data.state == kLicenseStateActive)) {
LOGE("Invalid offline license state: state = %d, license_type = %d", LOGE("Invalid offline license state: state = %d, license_type = %d",
static_cast<int>(license_data.state), static_cast<int>(license_type)); static_cast<int>(license_data.state), static_cast<int>(license_type));
return GET_RELEASED_LICENSE_ERROR; return GET_RELEASED_LICENSE_ERROR;
@@ -797,8 +797,7 @@ CdmResponseType CdmSession::RenewKey(const CdmKeyResponse& key_response) {
if (is_offline_) { if (is_offline_) {
offline_key_renewal_response_ = key_response; offline_key_renewal_response_ = key_response;
if (!StoreLicense(DeviceFiles::kLicenseStateActive, if (!StoreLicense(kLicenseStateActive, nullptr /* error_detail */))
nullptr /* error_detail */))
return RENEW_KEY_ERROR_2; return RENEW_KEY_ERROR_2;
} }
return KEY_ADDED; return KEY_ADDED;
@@ -831,7 +830,7 @@ CdmResponseType CdmSession::GenerateReleaseRequest(CdmKeyRequest* key_request) {
} }
if (is_offline_) { // Mark license as being released if (is_offline_) { // Mark license as being released
if (!StoreLicense(DeviceFiles::kLicenseStateReleasing, nullptr)) if (!StoreLicense(kLicenseStateReleasing, nullptr))
return RELEASE_KEY_REQUEST_ERROR; return RELEASE_KEY_REQUEST_ERROR;
} else if (!usage_provider_session_token_.empty()) { } else if (!usage_provider_session_token_.empty()) {
if (supports_usage_info()) { if (supports_usage_info()) {
@@ -958,7 +957,7 @@ CdmResponseType CdmSession::StoreLicense() {
return OFFLINE_LICENSE_PROHIBITED; return OFFLINE_LICENSE_PROHIBITED;
} }
if (!StoreLicense(DeviceFiles::kLicenseStateActive, nullptr)) { if (!StoreLicense(kLicenseStateActive, nullptr)) {
LOGE("Unable to store license"); LOGE("Unable to store license");
return STORE_LICENSE_ERROR_1; return STORE_LICENSE_ERROR_1;
} }
@@ -994,8 +993,7 @@ CdmResponseType CdmSession::StoreLicense() {
return NO_ERROR; return NO_ERROR;
} }
bool CdmSession::StoreLicense(DeviceFiles::LicenseState state, bool CdmSession::StoreLicense(CdmOfflineLicenseState state, int* error_detail) {
int* error_detail) {
DeviceFiles::ResponseType error_detail_alt = DeviceFiles::kNoError; DeviceFiles::ResponseType error_detail_alt = DeviceFiles::kNoError;
DeviceFiles::CdmLicenseData license_data{ DeviceFiles::CdmLicenseData license_data{
key_set_id_, key_set_id_,
@@ -1066,7 +1064,7 @@ void CdmSession::OnTimerEvent(bool update_usage) {
policy_engine_->DecryptionEvent(); policy_engine_->DecryptionEvent();
has_decrypted_since_last_report_ = false; has_decrypted_since_last_report_ = false;
if (is_offline_ && !is_release_) { if (is_offline_ && !is_release_) {
StoreLicense(DeviceFiles::kLicenseStateActive, nullptr); StoreLicense(kLicenseStateActive, nullptr);
} }
} }
policy_engine_->OnTimerEvent(); policy_engine_->OnTimerEvent();
@@ -1103,8 +1101,7 @@ CdmResponseType CdmSession::UpdateUsageEntryInformation() {
if (sts != NO_ERROR) return sts; if (sts != NO_ERROR) return sts;
if (is_offline_) if (is_offline_)
StoreLicense(is_release_ ? DeviceFiles::kLicenseStateReleasing StoreLicense(is_release_ ? kLicenseStateReleasing : kLicenseStateActive,
: DeviceFiles::kLicenseStateActive,
nullptr); nullptr);
else if (!usage_provider_session_token_.empty()) else if (!usage_provider_session_token_.empty())
UpdateUsageInfo(); UpdateUsageInfo();

View File

@@ -1605,7 +1605,7 @@ constexpr size_t kNumberOfDefaultCertificates =
struct LicenseInfo { struct LicenseInfo {
std::string key_set_id; std::string key_set_id;
DeviceFiles::LicenseState license_state; CdmOfflineLicenseState license_state;
std::string pssh_data; std::string pssh_data;
std::string key_request; std::string key_request;
std::string key_response; std::string key_response;
@@ -1630,7 +1630,7 @@ struct LicenseInfo {
const LicenseInfo kLicenseTestData[] = { const LicenseInfo kLicenseTestData[] = {
// license 0 // license 0
{"ksid54C57C966E23CEF5", DeviceFiles::kLicenseStateActive, {"ksid54C57C966E23CEF5", kLicenseStateActive,
a2bs_hex("0801121030313233343536373839414243444546"), a2bs_hex("0801121030313233343536373839414243444546"),
a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B"
"C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD" "C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD"
@@ -1807,7 +1807,7 @@ const LicenseInfo kLicenseTestData[] = {
"FF232D23F98B72F1DCE96A")}, "FF232D23F98B72F1DCE96A")},
// license 1 // license 1
{"ksidC8EAA2579A282EB0", DeviceFiles::kLicenseStateReleasing, {"ksidC8EAA2579A282EB0", kLicenseStateReleasing,
a2bs_hex("0801121030313233343536373839414243444546"), a2bs_hex("0801121030313233343536373839414243444546"),
a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B"
"C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD" "C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD"
@@ -1990,7 +1990,7 @@ const LicenseInfo kLicenseTestData[] = {
"17B2F8B2D7511C9DE89A87CB5208AB")}, "17B2F8B2D7511C9DE89A87CB5208AB")},
// license 2 // license 2
{"ksidE8C37662C88DC673", DeviceFiles::kLicenseStateReleasing, {"ksidE8C37662C88DC673", kLicenseStateReleasing,
a2bs_hex("0801121030313233343536373839414243444546"), a2bs_hex("0801121030313233343536373839414243444546"),
a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B"
"C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD" "C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD"
@@ -2175,7 +2175,7 @@ const LicenseInfo kLicenseTestData[] = {
"F")}, "F")},
// license 3 // license 3
{"ksidF991C5F45E98CB97", DeviceFiles::kLicenseStateActive, {"ksidF991C5F45E98CB97", kLicenseStateActive,
a2bs_hex("0801121030313233343536373839414243444546"), a2bs_hex("0801121030313233343536373839414243444546"),
a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B"
"FA0E5DFC3DE9A34BA5F08BE349553C319A9FB274905A8770ADC9CA4A2CBC" "FA0E5DFC3DE9A34BA5F08BE349553C319A9FB274905A8770ADC9CA4A2CBC"
@@ -2418,7 +2418,7 @@ constexpr size_t kNumberOfLicenses = ArraySize(kLicenseTestData);
// The data is used to test license-related functions. // The data is used to test license-related functions.
const LicenseInfo kLicenseUpdateTestData[] = { const LicenseInfo kLicenseUpdateTestData[] = {
// active license // active license
{"key_set_id_: ksid2A048BC7FAEC885A", DeviceFiles::kLicenseStateActive, {"key_set_id_: ksid2A048BC7FAEC885A", kLicenseStateActive,
a2bs_hex("0801121030313233343536373839414243444546"), a2bs_hex("0801121030313233343536373839414243444546"),
a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B"
"C4D07A7D5076189EDFB68F05228E023082010A0282010100CC1715C81AD3" "C4D07A7D5076189EDFB68F05228E023082010A0282010100CC1715C81AD3"
@@ -2601,8 +2601,8 @@ const LicenseInfo kLicenseUpdateTestData[] = {
"766D60B07CBC")}, "766D60B07CBC")},
// license being released. all fields are identical except for license // license being released. all fields are identical except for license
// state and hashed file data // state and hashed file data
{"", DeviceFiles::kLicenseStateReleasing, "", "", "", "", "", "", 0, 0, 0, {"", kLicenseStateReleasing, "", "", "", "", "", "", 0, 0, 0, "", "", 15,
"", "", 15, "", CryptoWrappedKey::kUninitialized, "", "", CryptoWrappedKey::kUninitialized, "",
a2bs_hex( a2bs_hex(
"0AEE150802100122E7150802121408011210303132333435363738394142434445461" "0AEE150802100122E7150802121408011210303132333435363738394142434445461"
"A9D0E080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591BC4D0" "A9D0E080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591BC4D0"
@@ -2694,7 +2694,7 @@ const LicenseInfo kLicenseUpdateTestData[] = {
const LicenseInfo kLicenseAppParametersBackwardsCompatibilityTestData = { const LicenseInfo kLicenseAppParametersBackwardsCompatibilityTestData = {
"ksid54C57C966E23CEF5", "ksid54C57C966E23CEF5",
DeviceFiles::kLicenseStateActive, kLicenseStateActive,
a2bs_hex("0801121030313233343536373839414243444546"), a2bs_hex("0801121030313233343536373839414243444546"),
a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B"
"C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD" "C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD"
@@ -3806,7 +3806,7 @@ class DeviceFilesTest : public ::testing::Test {
app_parameters_len += itr->first.length(); app_parameters_len += itr->first.length();
app_parameters_len += itr->second.length(); app_parameters_len += itr->second.length();
} }
return sizeof(DeviceFiles::LicenseState) + data.pssh_data.size() + return sizeof(CdmOfflineLicenseState) + data.pssh_data.size() +
data.key_request.size() + data.key_response.size() + data.key_request.size() + data.key_response.size() +
data.key_renewal_request.size() + data.key_renewal_response.size() + data.key_renewal_request.size() + data.key_renewal_response.size() +
data.key_release_url.size() + 3 * sizeof(int64_t) + data.key_release_url.size() + 3 * sizeof(int64_t) +

View File

@@ -208,8 +208,7 @@ std::vector<CdmUsageEntryInfo> kUsageEntryInfoVector;
std::vector<CdmUsageEntryInfo> k10UsageEntryInfoVector; std::vector<CdmUsageEntryInfo> k10UsageEntryInfoVector;
std::vector<CdmUsageEntryInfo> kOverFullUsageEntryInfoVector; std::vector<CdmUsageEntryInfo> kOverFullUsageEntryInfoVector;
const DeviceFiles::LicenseState kActiveLicenseState = const CdmOfflineLicenseState kActiveLicenseState = kLicenseStateActive;
DeviceFiles::kLicenseStateActive;
const CdmInitData kPsshData = "pssh data"; const CdmInitData kPsshData = "pssh data";
const CdmKeyMessage kKeyRequest = "key request"; const CdmKeyMessage kKeyRequest = "key request";
const CdmKeyResponse kKeyResponse = "key response"; const CdmKeyResponse kKeyResponse = "key response";