Make OEM Crypto API version available through mediaDrm properties

[ Merge of http://go/wvgerrit/15540 ]

b/22771529

Change-Id: I8a3d3b3d7a943c531ef0ff2c860442e0690b9175
This commit is contained in:
Rahul Frias
2015-09-08 16:33:58 -07:00
parent 8b0a0ff046
commit 199cfb8f19
5 changed files with 72 additions and 0 deletions

View File

@@ -57,6 +57,8 @@ static const std::string QUERY_KEY_NUMBER_OF_OPEN_SESSIONS =
"NumberOfOpenSessions";
static const std::string QUERY_KEY_MAX_NUMBER_OF_SESSIONS =
"MaxNumberOfSessions";
static const std::string QUERY_KEY_OEMCRYPTO_API_VERSION =
"OemCryptoApiVersion";
static const std::string QUERY_VALUE_TRUE = "True";
static const std::string QUERY_VALUE_FALSE = "False";

View File

@@ -473,6 +473,14 @@ CdmResponseType CdmEngine::QueryStatus(SecurityLevel security_level,
max_sessions_stream.str();
}
uint32_t api_version;
success = crypto_session.GetApiVersion(&api_version);
if (success) {
std::ostringstream api_version_stream;
api_version_stream << api_version;
(*key_info)[QUERY_KEY_OEMCRYPTO_API_VERSION] = api_version_stream.str();
}
return NO_ERROR;
}

View File

@@ -2056,6 +2056,56 @@ TEST_F(WvCdmRequestLicenseTest, QueryStatus) {
itr = query_info.find(wvcdm::QUERY_KEY_PROVISIONING_ID);
ASSERT_TRUE(itr != query_info.end());
EXPECT_EQ(16u, itr->second.size());
itr = query_info.find(QUERY_KEY_CURRENT_HDCP_LEVEL);
ASSERT_TRUE(itr != query_info.end());
EXPECT_TRUE(itr->second == QUERY_VALUE_UNPROTECTED ||
itr->second == QUERY_VALUE_HDCP_V1 ||
itr->second == QUERY_VALUE_HDCP_V2_0 ||
itr->second == QUERY_VALUE_HDCP_V2_1 ||
itr->second == QUERY_VALUE_HDCP_V2_2 ||
itr->second == QUERY_VALUE_DISCONNECTED);
itr = query_info.find(QUERY_KEY_MAX_HDCP_LEVEL);
ASSERT_TRUE(itr != query_info.end());
EXPECT_TRUE(itr->second == QUERY_VALUE_UNPROTECTED ||
itr->second == QUERY_VALUE_HDCP_V1 ||
itr->second == QUERY_VALUE_HDCP_V2_0 ||
itr->second == QUERY_VALUE_HDCP_V2_1 ||
itr->second == QUERY_VALUE_HDCP_V2_2 ||
itr->second == QUERY_VALUE_DISCONNECTED);
itr = query_info.find(QUERY_KEY_USAGE_SUPPORT);
ASSERT_TRUE(itr != query_info.end());
EXPECT_TRUE(itr->second == QUERY_VALUE_TRUE ||
itr->second == QUERY_VALUE_FALSE);
itr = query_info.find(QUERY_KEY_NUMBER_OF_OPEN_SESSIONS);
ASSERT_TRUE(itr != query_info.end());
ss.clear();
ss.str(itr->second);
uint32_t open_sessions;
EXPECT_TRUE(ss >> open_sessions);
EXPECT_TRUE(ss.eof());
itr = query_info.find(QUERY_KEY_MAX_NUMBER_OF_SESSIONS);
ASSERT_TRUE(itr != query_info.end());
ss.clear();
ss.str(itr->second);
uint32_t max_sessions;
EXPECT_TRUE(ss >> max_sessions);
EXPECT_TRUE(ss.eof());
EXPECT_LE(open_sessions, max_sessions);
EXPECT_LE(8u, max_sessions);
itr = query_info.find(QUERY_KEY_OEMCRYPTO_API_VERSION);
ASSERT_TRUE(itr != query_info.end());
ss.clear();
ss.str(itr->second);
uint32_t api_version;
EXPECT_TRUE(ss >> api_version);
EXPECT_TRUE(ss.eof());
EXPECT_LE(10u, api_version);
}
TEST_F(WvCdmRequestLicenseTest, QueryStatusL3) {