Add decrypt hash support
[ Merge of http://go/wvgerrit/68083 ] Add ability to query decrypt hash support, set a hash computed over a frame and retrieve the last error at a later point. Bug: 34080802 Test: WV unit/integration tests. New tests added to cdm_engine_test, libwvdrmdrmplugin_hidl_test and request_license_test. Change-Id: I7548c8798c873a6af3e1cfc0df57c117e1e474a6
This commit is contained in:
@@ -63,6 +63,7 @@ const wvcdm::CdmIdentifier kAlternateCdmIdentifier1 = {
|
||||
};
|
||||
|
||||
const std::string kEmptyServiceCertificate;
|
||||
const std::string kComma = ",";
|
||||
|
||||
// Protobuf generated classes
|
||||
using video_widevine::LicenseIdentification;
|
||||
@@ -5104,4 +5105,34 @@ TEST_F(WvCdmRequestLicenseTest, CloseCdmReleaseResourcesTest) {
|
||||
EXPECT_TRUE(decryptor_.IsOpenSession(alternate_session_id));
|
||||
}
|
||||
|
||||
// Enable when OEMCrypto v15 has been deployed. Currently setting a decrypt
|
||||
// hash returns OEMCrypto_ERROR_NOT_IMPLEMENTED
|
||||
TEST_F(WvCdmRequestLicenseTest, DISABLED_DecryptPathTest) {
|
||||
Provision(kDefaultCdmIdentifier, kLevelDefault);
|
||||
|
||||
// Retrieve a streaming license
|
||||
EXPECT_EQ(NO_ERROR, decryptor_.OpenSession(config_.key_system(), NULL,
|
||||
kDefaultCdmIdentifier, NULL,
|
||||
&session_id_));
|
||||
|
||||
CdmSessionId invalid_session_id = session_id_ + "more";
|
||||
std::string frame_number = std::to_string(5);
|
||||
std::vector<uint8_t> binary_hash{ 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38 };
|
||||
const std::string hash = Base64Encode(binary_hash);
|
||||
|
||||
// Invalid session id
|
||||
std::string hash_data =
|
||||
invalid_session_id + kComma + std::to_string(5) + kComma + hash;
|
||||
|
||||
CdmSessionId session_id;
|
||||
EXPECT_NE(NO_ERROR, decryptor_.SetDecryptHash(hash_data, &session_id));
|
||||
|
||||
// Valid hash data
|
||||
hash_data = session_id_ + kComma + std::to_string(5) + kComma + hash;
|
||||
EXPECT_EQ(NO_ERROR, decryptor_.SetDecryptHash(hash_data, &session_id));
|
||||
EXPECT_EQ(session_id_, session_id);
|
||||
|
||||
decryptor_.CloseSession(session_id_);
|
||||
}
|
||||
|
||||
} // namespace wvcdm
|
||||
|
||||
Reference in New Issue
Block a user