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:
@@ -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
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user