Corrections to widevine plugin for vts tests

Add a check for invalid session size in restoreKeys
and correct the return code when attempting to create a
plugin with an invalid uuid. Also correct the return code
when attempting to decrypt after keys have been removed.

bug:37172151
Change-Id: I7e832ffe04081471a0cdb3a9329808f47f12cfc3
This commit is contained in:
Jeff Tinker
2017-04-13 00:22:38 -07:00
parent 20f8368f9c
commit 6c15ea673d
3 changed files with 5 additions and 2 deletions

View File

@@ -543,7 +543,7 @@ CdmResponseType CdmSession::Decrypt(const CdmDecryptionParameters& params) {
if (!crypto_session_->IsOpen()) { if (!crypto_session_->IsOpen()) {
LOGW("CdmSession::Decrypt: Crypto session not open"); LOGW("CdmSession::Decrypt: Crypto session not open");
return CRYPTO_SESSION_OPEN_ERROR_5; return DECRYPT_NOT_READY;
} }
// Playback may not begin until either the start time passes or the license // Playback may not begin until either the start time passes or the license

View File

@@ -314,6 +314,9 @@ status_t WVDrmPlugin::removeKeys(const Vector<uint8_t>& sessionId) {
status_t WVDrmPlugin::restoreKeys(const Vector<uint8_t>& sessionId, status_t WVDrmPlugin::restoreKeys(const Vector<uint8_t>& sessionId,
const Vector<uint8_t>& keySetId) { const Vector<uint8_t>& keySetId) {
if (sessionId.size() == 0 || keySetId.size() == 0) {
return android::BAD_VALUE;
}
CdmSessionId cdmSessionId(sessionId.begin(), sessionId.end()); CdmSessionId cdmSessionId(sessionId.begin(), sessionId.end());
CdmKeySetId cdmKeySetId(keySetId.begin(), keySetId.end()); CdmKeySetId cdmKeySetId(keySetId.begin(), keySetId.end());

View File

@@ -44,7 +44,7 @@ Return<void> WVDrmFactory::createPlugin(
if (!isCryptoSchemeSupported(uuid.data())) { if (!isCryptoSchemeSupported(uuid.data())) {
ALOGE("Widevine Drm HAL: failed to create drm plugin, " \ ALOGE("Widevine Drm HAL: failed to create drm plugin, " \
"invalid crypto scheme"); "invalid crypto scheme");
_hidl_cb(Status::BAD_VALUE, plugin); _hidl_cb(Status::ERROR_DRM_CANNOT_HANDLE, plugin);
return Void(); return Void();
} }