Snap for 6245101 from 5f9d48b133 to sc-release
Change-Id: I56e4e73b4cfca9876e27fdc255b791124e6e33b6
This commit is contained in:
@@ -457,19 +457,25 @@ CdmResponseType CdmLicense::PrepareKeyUpdateRequest(
|
|||||||
current_license->set_seconds_since_last_played(seconds_since_last_played);
|
current_license->set_seconds_since_last_played(seconds_since_last_played);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get/set the nonce. This value will be reflected in the Key Control Block
|
uint32_t api_version = 0;
|
||||||
// of the license response.
|
if (!crypto_session_->GetApiVersion(&api_version)) {
|
||||||
uint32_t nonce;
|
LOGW("Unknown API Version");
|
||||||
CdmResponseType status = crypto_session_->GenerateNonce(&nonce);
|
api_version = 15;
|
||||||
|
}
|
||||||
switch (status) {
|
uint32_t nonce = 0;
|
||||||
case NO_ERROR:
|
if (api_version < 16) {
|
||||||
break;
|
// For a pre-v16 license, get/set the nonce. This value will be reflected
|
||||||
case SESSION_LOST_STATE_ERROR:
|
// in the Key Control Block of the license response.
|
||||||
case SYSTEM_INVALIDATED_ERROR:
|
const CdmResponseType status = crypto_session_->GenerateNonce(&nonce);
|
||||||
return status;
|
switch (status) {
|
||||||
default:
|
case NO_ERROR:
|
||||||
return LICENSE_RENEWAL_NONCE_GENERATION_ERROR;
|
break;
|
||||||
|
case SESSION_LOST_STATE_ERROR:
|
||||||
|
case SYSTEM_INVALIDATED_ERROR:
|
||||||
|
return status;
|
||||||
|
default:
|
||||||
|
return LICENSE_RENEWAL_NONCE_GENERATION_ERROR;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
license_request.set_key_control_nonce(nonce);
|
license_request.set_key_control_nonce(nonce);
|
||||||
LOGD("nonce = %u", nonce);
|
LOGD("nonce = %u", nonce);
|
||||||
@@ -482,7 +488,7 @@ CdmResponseType CdmLicense::PrepareKeyUpdateRequest(
|
|||||||
// Construct signature and core message.
|
// Construct signature and core message.
|
||||||
std::string core_message;
|
std::string core_message;
|
||||||
std::string license_request_signature;
|
std::string license_request_signature;
|
||||||
status = crypto_session_->PrepareAndSignRenewalRequest(
|
const CdmResponseType status = crypto_session_->PrepareAndSignRenewalRequest(
|
||||||
serialized_license_req, &core_message, &license_request_signature);
|
serialized_license_req, &core_message, &license_request_signature);
|
||||||
if (status != NO_ERROR) return status;
|
if (status != NO_ERROR) return status;
|
||||||
|
|
||||||
|
|||||||
@@ -437,7 +437,7 @@ class MockCryptoSession : public TestCryptoSession {
|
|||||||
|
|
||||||
// Fake method for testing. Having an EXPECT_CALL causes complexities
|
// Fake method for testing. Having an EXPECT_CALL causes complexities
|
||||||
// for getting table capacity during initialization.
|
// for getting table capacity during initialization.
|
||||||
virtual bool GetMaximumUsageTableEntries(SecurityLevel security_level,
|
virtual bool GetMaximumUsageTableEntries(SecurityLevel /*security_level*/,
|
||||||
size_t* number_of_entries) {
|
size_t* number_of_entries) {
|
||||||
if (number_of_entries == nullptr || !maximum_usage_table_entries_set_)
|
if (number_of_entries == nullptr || !maximum_usage_table_entries_set_)
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -1671,7 +1671,7 @@ class DecryptCallbackTester {
|
|||||||
const CdmKeyStatusMap& /* keys_status */,
|
const CdmKeyStatusMap& /* keys_status */,
|
||||||
bool /* has_new_usable_key */) {
|
bool /* has_new_usable_key */) {
|
||||||
EXPECT_TRUE(decryptor_);
|
EXPECT_TRUE(decryptor_);
|
||||||
EXPECT_TRUE(sub_sample_info_ != nullptr);
|
ASSERT_NE(sub_sample_info_, nullptr);
|
||||||
|
|
||||||
std::vector<uint8_t> decrypt_buffer(sub_sample_info_->encrypt_data.size());
|
std::vector<uint8_t> decrypt_buffer(sub_sample_info_->encrypt_data.size());
|
||||||
CdmDecryptionParameters decryption_parameters(
|
CdmDecryptionParameters decryption_parameters(
|
||||||
@@ -4018,7 +4018,7 @@ TEST_F(WvCdmRequestLicenseTest, RemoveCorruptedUsageInfoTest) {
|
|||||||
EXPECT_LT(4, file_size);
|
EXPECT_LT(4, file_size);
|
||||||
std::unique_ptr<File> file = file_system.Open(
|
std::unique_ptr<File> file = file_system.Open(
|
||||||
usage_info_not_empty_app_id_file_name, FileSystem::kReadOnly);
|
usage_info_not_empty_app_id_file_name, FileSystem::kReadOnly);
|
||||||
EXPECT_TRUE(nullptr != file);
|
ASSERT_NE(file, nullptr);
|
||||||
std::string file_data;
|
std::string file_data;
|
||||||
file_data.resize(file_size);
|
file_data.resize(file_size);
|
||||||
ssize_t bytes = file->Read(&file_data[0], file_data.size());
|
ssize_t bytes = file->Read(&file_data[0], file_data.size());
|
||||||
@@ -4029,7 +4029,7 @@ TEST_F(WvCdmRequestLicenseTest, RemoveCorruptedUsageInfoTest) {
|
|||||||
memset(&file_data[0] + bytes - 4, 0, 4);
|
memset(&file_data[0] + bytes - 4, 0, 4);
|
||||||
file = file_system.Open(usage_info_not_empty_app_id_file_name,
|
file = file_system.Open(usage_info_not_empty_app_id_file_name,
|
||||||
FileSystem::kCreate | FileSystem::kTruncate);
|
FileSystem::kCreate | FileSystem::kTruncate);
|
||||||
EXPECT_TRUE(nullptr != file);
|
ASSERT_NE(file, nullptr);
|
||||||
bytes = file->Write(file_data.data(), file_data.size());
|
bytes = file->Write(file_data.data(), file_data.size());
|
||||||
EXPECT_EQ(file_size, bytes);
|
EXPECT_EQ(file_size, bytes);
|
||||||
|
|
||||||
@@ -4052,7 +4052,7 @@ TEST_F(WvCdmRequestLicenseTest, RemoveCorruptedUsageInfoTest) {
|
|||||||
EXPECT_LT(4, file_size);
|
EXPECT_LT(4, file_size);
|
||||||
file = file_system.Open(usage_info_empty_app_id_file_name,
|
file = file_system.Open(usage_info_empty_app_id_file_name,
|
||||||
FileSystem::kReadOnly);
|
FileSystem::kReadOnly);
|
||||||
EXPECT_TRUE(nullptr != file);
|
ASSERT_NE(file, nullptr);
|
||||||
file_data.resize(file_size);
|
file_data.resize(file_size);
|
||||||
bytes = file->Read(&file_data[0], file_data.size());
|
bytes = file->Read(&file_data[0], file_data.size());
|
||||||
EXPECT_EQ(file_size, bytes);
|
EXPECT_EQ(file_size, bytes);
|
||||||
@@ -4062,7 +4062,7 @@ TEST_F(WvCdmRequestLicenseTest, RemoveCorruptedUsageInfoTest) {
|
|||||||
memset(&file_data[0] + bytes - 4, 0, 4);
|
memset(&file_data[0] + bytes - 4, 0, 4);
|
||||||
file = file_system.Open(usage_info_empty_app_id_file_name,
|
file = file_system.Open(usage_info_empty_app_id_file_name,
|
||||||
FileSystem::kCreate | FileSystem::kTruncate);
|
FileSystem::kCreate | FileSystem::kTruncate);
|
||||||
EXPECT_TRUE(nullptr != file);
|
ASSERT_NE(file, nullptr);
|
||||||
bytes = file->Write(file_data.data(), file_data.size());
|
bytes = file->Write(file_data.data(), file_data.size());
|
||||||
EXPECT_EQ(file_size, bytes);
|
EXPECT_EQ(file_size, bytes);
|
||||||
|
|
||||||
@@ -4154,7 +4154,7 @@ TEST_F(WvCdmRequestLicenseTest, RemoveCorruptedUsageInfoTest2) {
|
|||||||
EXPECT_LT(4, file_size);
|
EXPECT_LT(4, file_size);
|
||||||
std::unique_ptr<File> file = file_system.Open(
|
std::unique_ptr<File> file = file_system.Open(
|
||||||
usage_info_not_empty_app_id_file_name, FileSystem::kReadOnly);
|
usage_info_not_empty_app_id_file_name, FileSystem::kReadOnly);
|
||||||
EXPECT_TRUE(nullptr != file);
|
ASSERT_NE(file, nullptr);
|
||||||
std::string file_data;
|
std::string file_data;
|
||||||
file_data.resize(file_size);
|
file_data.resize(file_size);
|
||||||
ssize_t bytes = file->Read(&file_data[0], file_data.size());
|
ssize_t bytes = file->Read(&file_data[0], file_data.size());
|
||||||
@@ -4173,7 +4173,7 @@ TEST_F(WvCdmRequestLicenseTest, RemoveCorruptedUsageInfoTest2) {
|
|||||||
|
|
||||||
file = file_system.Open(usage_info_not_empty_app_id_file_name,
|
file = file_system.Open(usage_info_not_empty_app_id_file_name,
|
||||||
FileSystem::kCreate | FileSystem::kTruncate);
|
FileSystem::kCreate | FileSystem::kTruncate);
|
||||||
EXPECT_TRUE(nullptr != file);
|
ASSERT_NE(file, nullptr);
|
||||||
bytes = file->Write(file_data.data(), file_data.size());
|
bytes = file->Write(file_data.data(), file_data.size());
|
||||||
EXPECT_EQ(file_size, bytes);
|
EXPECT_EQ(file_size, bytes);
|
||||||
|
|
||||||
@@ -4196,7 +4196,7 @@ TEST_F(WvCdmRequestLicenseTest, RemoveCorruptedUsageInfoTest2) {
|
|||||||
EXPECT_LT(4, file_size);
|
EXPECT_LT(4, file_size);
|
||||||
file = file_system.Open(usage_info_empty_app_id_file_name,
|
file = file_system.Open(usage_info_empty_app_id_file_name,
|
||||||
FileSystem::kReadOnly);
|
FileSystem::kReadOnly);
|
||||||
EXPECT_TRUE(nullptr != file);
|
ASSERT_NE(file, nullptr);
|
||||||
file_data.resize(file_size);
|
file_data.resize(file_size);
|
||||||
bytes = file->Read(&file_data[0], file_data.size());
|
bytes = file->Read(&file_data[0], file_data.size());
|
||||||
EXPECT_EQ(file_size, bytes);
|
EXPECT_EQ(file_size, bytes);
|
||||||
@@ -4212,7 +4212,7 @@ TEST_F(WvCdmRequestLicenseTest, RemoveCorruptedUsageInfoTest2) {
|
|||||||
|
|
||||||
file = file_system.Open(usage_info_empty_app_id_file_name,
|
file = file_system.Open(usage_info_empty_app_id_file_name,
|
||||||
FileSystem::kCreate | FileSystem::kTruncate);
|
FileSystem::kCreate | FileSystem::kTruncate);
|
||||||
EXPECT_TRUE(nullptr != file);
|
ASSERT_NE(file, nullptr);
|
||||||
bytes = file->Write(file_data.data(), file_data.size());
|
bytes = file->Write(file_data.data(), file_data.size());
|
||||||
EXPECT_EQ(file_size, bytes);
|
EXPECT_EQ(file_size, bytes);
|
||||||
|
|
||||||
@@ -4430,7 +4430,7 @@ TEST_F(WvCdmRequestLicenseTest, UsageRecoveryTest) {
|
|||||||
EXPECT_LT(4, file_size);
|
EXPECT_LT(4, file_size);
|
||||||
std::unique_ptr<File> file =
|
std::unique_ptr<File> file =
|
||||||
file_system.Open(usage_info_file_name, FileSystem::kReadOnly);
|
file_system.Open(usage_info_file_name, FileSystem::kReadOnly);
|
||||||
EXPECT_TRUE(nullptr != file);
|
ASSERT_NE(file, nullptr);
|
||||||
std::string file_data;
|
std::string file_data;
|
||||||
file_data.resize(file_size);
|
file_data.resize(file_size);
|
||||||
ssize_t bytes = file->Read(&file_data[0], file_data.size());
|
ssize_t bytes = file->Read(&file_data[0], file_data.size());
|
||||||
@@ -4440,7 +4440,7 @@ TEST_F(WvCdmRequestLicenseTest, UsageRecoveryTest) {
|
|||||||
memset(&file_data[0] + bytes - 4, 0, 4);
|
memset(&file_data[0] + bytes - 4, 0, 4);
|
||||||
file = file_system.Open(usage_info_file_name,
|
file = file_system.Open(usage_info_file_name,
|
||||||
FileSystem::kCreate | FileSystem::kTruncate);
|
FileSystem::kCreate | FileSystem::kTruncate);
|
||||||
EXPECT_TRUE(nullptr != file);
|
ASSERT_NE(file, nullptr);
|
||||||
bytes = file->Write(file_data.data(), file_data.size());
|
bytes = file->Write(file_data.data(), file_data.size());
|
||||||
EXPECT_EQ(file_size, bytes);
|
EXPECT_EQ(file_size, bytes);
|
||||||
|
|
||||||
@@ -4574,7 +4574,7 @@ TEST_F(WvCdmRequestLicenseTest, UsageRemoveSecureStopTest) {
|
|||||||
kDefaultCdmIdentifier, &secure_stop_ids));
|
kDefaultCdmIdentifier, &secure_stop_ids));
|
||||||
EXPECT_EQ(ArraySize(kUsageLicenseTestVector1), secure_stop_ids.size());
|
EXPECT_EQ(ArraySize(kUsageLicenseTestVector1), secure_stop_ids.size());
|
||||||
|
|
||||||
for (size_t i = 0; i < ArraySize(kUsageLicenseTestVector1); ++i) {
|
for (size_t i = 0; i < secure_stop_ids.size(); ++i) {
|
||||||
EXPECT_EQ(NO_ERROR, decryptor_->RemoveUsageInfo(
|
EXPECT_EQ(NO_ERROR, decryptor_->RemoveUsageInfo(
|
||||||
kDefaultCdmIdentifier.app_package_name,
|
kDefaultCdmIdentifier.app_package_name,
|
||||||
kDefaultCdmIdentifier, secure_stop_ids[i]));
|
kDefaultCdmIdentifier, secure_stop_ids[i]));
|
||||||
@@ -4590,7 +4590,7 @@ TEST_F(WvCdmRequestLicenseTest, UsageRemoveSecureStopTest) {
|
|||||||
kExampleIdentifier, &secure_stop_ids));
|
kExampleIdentifier, &secure_stop_ids));
|
||||||
EXPECT_EQ(ArraySize(kUsageLicenseTestVector2), secure_stop_ids.size());
|
EXPECT_EQ(ArraySize(kUsageLicenseTestVector2), secure_stop_ids.size());
|
||||||
|
|
||||||
for (size_t i = 0; i < ArraySize(kUsageLicenseTestVector2); ++i) {
|
for (size_t i = 0; i < secure_stop_ids.size(); ++i) {
|
||||||
EXPECT_EQ(NO_ERROR, decryptor_->RemoveUsageInfo(
|
EXPECT_EQ(NO_ERROR, decryptor_->RemoveUsageInfo(
|
||||||
kExampleIdentifier.app_package_name,
|
kExampleIdentifier.app_package_name,
|
||||||
kExampleIdentifier, secure_stop_ids[i]));
|
kExampleIdentifier, secure_stop_ids[i]));
|
||||||
|
|||||||
Reference in New Issue
Block a user