Return specific error code when decrypting on invalid session

bug: 22235465
Change-Id: I7b4d47d86d35270291ced02112a96800ba03ed1a
This commit is contained in:
Jeff Tinker
2015-07-01 17:40:07 -07:00
committed by Rahul Frias
parent e280ba6c41
commit 47014df2e8
2 changed files with 5 additions and 1 deletions

View File

@@ -146,7 +146,7 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) {
case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_4:
return kInvalidDecryptParametersEng4;
case wvcdm::SESSION_NOT_FOUND_FOR_DECRYPT:
return kSessionNotFoundForDecrypt;
return android::ERROR_DRM_SESSION_NOT_OPENED;
case wvcdm::INVALID_DEVICE_CERTIFICATE_TYPE:
return kInvalidDeviceCertificateType;
case wvcdm::INVALID_KEY_SYSTEM:

View File

@@ -185,6 +185,10 @@ ssize_t WVCryptoPlugin::decrypt(bool secure, const uint8_t key[KEY_ID_SIZE],
errorDetailMsg->setTo("Error decrypting data: requested key has not been loaded");
// This error is actionable by the app and should be passed up.
return mapCdmResponseType(res);
} else if (res == wvcdm::SESSION_NOT_FOUND_FOR_DECRYPT) {
errorDetailMsg->setTo("Error decrypting data: session not found, possibly reclaimed");
// This error is actionable by the app and should be passed up.
return mapCdmResponseType(res);
} else {
// Swallow the specifics of other errors to obscure decrypt internals.
return kErrorCDMGeneric;