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: case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_4:
return kInvalidDecryptParametersEng4; return kInvalidDecryptParametersEng4;
case wvcdm::SESSION_NOT_FOUND_FOR_DECRYPT: case wvcdm::SESSION_NOT_FOUND_FOR_DECRYPT:
return kSessionNotFoundForDecrypt; return android::ERROR_DRM_SESSION_NOT_OPENED;
case wvcdm::INVALID_DEVICE_CERTIFICATE_TYPE: case wvcdm::INVALID_DEVICE_CERTIFICATE_TYPE:
return kInvalidDeviceCertificateType; return kInvalidDeviceCertificateType;
case wvcdm::INVALID_KEY_SYSTEM: 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"); errorDetailMsg->setTo("Error decrypting data: requested key has not been loaded");
// This error is actionable by the app and should be passed up. // This error is actionable by the app and should be passed up.
return mapCdmResponseType(res); 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 { } else {
// Swallow the specifics of other errors to obscure decrypt internals. // Swallow the specifics of other errors to obscure decrypt internals.
return kErrorCDMGeneric; return kErrorCDMGeneric;