Merge "Correction to logging when SRM version is queried"

This commit is contained in:
Rahul Frias
2019-02-27 21:48:06 +00:00
committed by Android (Google) Code Review
4 changed files with 18 additions and 1 deletions

View File

@@ -87,6 +87,7 @@ static const std::string QUERY_KEY_DECRYPT_HASH_SUPPORT =
static const std::string QUERY_VALUE_TRUE = "True";
static const std::string QUERY_VALUE_FALSE = "False";
static const std::string QUERY_VALUE_NONE = "None";
static const std::string QUERY_VALUE_STREAMING = "Streaming";
static const std::string QUERY_VALUE_OFFLINE = "Offline";
static const std::string QUERY_VALUE_SECURITY_LEVEL_L1 = "L1";

View File

@@ -631,7 +631,10 @@ CdmResponseType CdmEngine::QueryStatus(SecurityLevel security_level,
} else if (query_token == QUERY_KEY_CURRENT_SRM_VERSION) {
uint16_t current_srm_version;
status = crypto_session->GetSrmVersion(&current_srm_version);
if (status != NO_ERROR) {
if (status == NOT_IMPLEMENTED_ERROR) {
*query_response = QUERY_VALUE_NONE;
return NO_ERROR;
} else if (status != NO_ERROR) {
LOGW("CdmEngine::QueryStatus: GetCurrentSRMVersion failed: %d", status);
return status;
}

View File

@@ -1937,6 +1937,14 @@ CdmResponseType CryptoSession::GetSrmVersion(uint16_t* srm_version) {
status = OEMCrypto_GetCurrentSRMVersion(srm_version);
});
// SRM is an optional feature. Whether it is implemented is up to the
// discretion of OEMs
if (status == OEMCrypto_ERROR_NOT_IMPLEMENTED) {
LOGV("CryptoSession::GetSrmVersion: OEMCrypto_GetCurrentSRMVersion not "
"implemented");
return NOT_IMPLEMENTED_ERROR;
}
return MapOEMCryptoResult(
status, GET_SRM_VERSION_ERROR, "GetCurrentSRMVersion");
}

View File

@@ -4380,6 +4380,11 @@ TEST_F(WvCdmRequestLicenseTest, QueryStatus) {
wvcdm::QUERY_KEY_OEMCRYPTO_BUILD_INFORMATION,
&value));
EXPECT_TRUE(!value.empty());
EXPECT_EQ(wvcdm::NO_ERROR,
decryptor_.QueryStatus(kLevelDefault,
wvcdm::QUERY_KEY_CURRENT_SRM_VERSION,
&value));
}
TEST_F(WvCdmRequestLicenseTest, QueryStatusL3) {