Add additional VTS drm tests for widevine

Also fixes a few cases where invalid inputs were
not checked.

bug: 34178477
Change-Id: I15c1e5f96e0843f484d8d3e29f548eac30d9dd80
This commit is contained in:
Jeff Tinker
2017-04-04 21:57:38 -07:00
parent b3ea54b6dc
commit cfe80bc234
4 changed files with 19 additions and 10 deletions

View File

@@ -82,6 +82,9 @@ void WVCryptoPlugin::notifyResolution(uint32_t width, uint32_t height) {
status_t WVCryptoPlugin::setMediaDrmSession(const Vector<uint8_t>& sessionId) {
CdmSessionId cdmSessionId(reinterpret_cast<const char *>(sessionId.array()),
sessionId.size());
if (sessionId.size() == 0) {
return android::BAD_VALUE;
}
if (!mCDM->IsOpenSession(cdmSessionId)) {
return android::ERROR_DRM_SESSION_NOT_OPENED;
} else {

View File

@@ -302,6 +302,9 @@ status_t WVDrmPlugin::provideKeyResponse(
}
status_t WVDrmPlugin::removeKeys(const Vector<uint8_t>& sessionId) {
if (!sessionId.size()) {
return android::BAD_VALUE;
}
CdmSessionId cdmSessionId(sessionId.begin(), sessionId.end());
CdmResponseType res = mCDM->RemoveKeys(cdmSessionId);
@@ -322,6 +325,9 @@ status_t WVDrmPlugin::restoreKeys(const Vector<uint8_t>& sessionId,
status_t WVDrmPlugin::queryKeyStatus(
const Vector<uint8_t>& sessionId,
KeyedVector<String8, String8>& infoMap) const {
if (sessionId.size() == 0) {
return android::BAD_VALUE;
}
CdmSessionId cdmSessionId(sessionId.begin(), sessionId.end());
CdmQueryMap cdmLicenseInfo;

View File

@@ -22,7 +22,7 @@ namespace widevine_vts {
const int kHttpOk = 200;
vector<uint8_t> WidevineVTSVendorModule_V1::getUUID() {
vector<uint8_t> WidevineVTSVendorModule_V1::getUUID() const {
uint8_t uuid[16] = {
0xED,0xEF,0x8B,0xA9,0x79,0xD6,0x4A,0xCE,
0xA3,0xC8,0x27,0xDC,0xD5,0x1D,0x21,0xED
@@ -32,7 +32,7 @@ namespace widevine_vts {
void LogResponseError(const string& message, int http_status_code) {
ALOGD("HTTP Status code = %d", http_status_code);
ALOGD("HTTP response(%d): %s", message.size(), b2a_hex(message).c_str());
ALOGD("HTTP response(%zd): %s", message.size(), b2a_hex(message).c_str());
}
vector<uint8_t> WidevineVTSVendorModule_V1::handleProvisioningRequest(
@@ -77,18 +77,18 @@ namespace widevine_vts {
if (kHttpOk == httpStatusCode) {
LicenseRequest lic_request;
lic_request.GetDrmMessage(reply, drm_msg);
ALOGV("HTTP response body: (%u bytes)", drm_msg.size());
ALOGV("HTTP response body: (%zd bytes)", drm_msg.size());
}
vector<uint8_t> result(drm_msg.begin(), drm_msg.end());
return result;
}
vector<DrmHalVTSVendorModule_V1::ContentConfiguration>
WidevineVTSVendorModule_V1::getContentConfigurations() {
WidevineVTSVendorModule_V1::getContentConfigurations() const {
vector<DrmHalVTSVendorModule_V1::ContentConfiguration> configurations;
{
const string serverUrl = "https://proxy.uat.widevine.com/proxy";
const string serverUrl = "http://widevine-proxy.appspot.com/proxy";
const vector<uint8_t> initData = a2b_hex(
"00000042" // blob size
"70737368" // "pssh"
@@ -98,14 +98,13 @@ namespace widevine_vts {
"08011a0d7769646576696e655f746573" // pssh data...
"74220f73747265616d696e675f636c69"
"7031");
vector<uint8_t> keyIdVec;
const vector<uint8_t> keyId = a2b_hex("371EA35E1A985D75D198A7F41020DC23");
const vector<uint8_t> keyValue = a2b_hex("371EA35E1A985D75D198A7F41020DC23");
const vector<DrmHalVTSVendorModule_V1::ContentConfiguration::Key> keys = {
{
.isSecure = false,
.keyId = keyId,
.keyValue = keyValue
.clearContentKey = keyValue
}
};

View File

@@ -21,7 +21,7 @@ namespace widevine_vts {
WidevineVTSVendorModule_V1() {}
virtual ~WidevineVTSVendorModule_V1() {}
virtual vector<uint8_t> getUUID();
virtual vector<uint8_t> getUUID() const;
virtual vector<uint8_t> handleProvisioningRequest(const vector<uint8_t>&
provisioningRequest, const std::string& url);
@@ -29,10 +29,11 @@ namespace widevine_vts {
virtual vector<uint8_t> handleKeyRequest(const vector<uint8_t>&
keyRequest, const std::string& serverUrl);
virtual std::vector<ContentConfiguration> getContentConfigurations();
virtual std::vector<ContentConfiguration>
getContentConfigurations() const;
// TODO: change to "widevine" when HAL service is available
virtual std::string getServiceName() {return "default";}
virtual std::string getServiceName() const {return "default";}
private:
WidevineVTSVendorModule_V1(const WidevineVTSVendorModule_V1&) = delete;