Disambiguate INSUFFICIENT_CRYPTO_RESOURCES errors

[ Merge of http://go/wvgerrit/43281 ]

Bug: 73164325
Test: WV unit/integration test, playback tests using Netflix and
      Play Movies.

Change-Id: Ifc3dd8863da1616eb4a7df35ad010f53b6d5e3d2
This commit is contained in:
Rahul Frias
2018-02-14 12:10:42 -08:00
parent 5053a887dd
commit fe2c777a8e
6 changed files with 19 additions and 3 deletions

View File

@@ -319,6 +319,8 @@ enum CdmResponseType {
LICENSE_REQUEST_INVALID_SUBLICENSE = 277,
CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE = 278,
LOAD_SYSTEM_ID_ERROR = 279,
INSUFFICIENT_CRYPTO_RESOURCES_4 = 280,
INSUFFICIENT_CRYPTO_RESOURCES_5 = 281,
};
enum CdmKeyStatus {

View File

@@ -821,7 +821,7 @@ CdmResponseType CryptoSession::LoadKeys(
result = KEY_ADDED;
} else if (OEMCrypto_ERROR_TOO_MANY_KEYS == sts) {
LOGE("CryptoSession::LoadKeys: OEMCrypto_LoadKeys error=%d", sts);
result = INSUFFICIENT_CRYPTO_RESOURCES;
result = INSUFFICIENT_CRYPTO_RESOURCES_4;
} else if (OEMCrypto_ERROR_USAGE_TABLE_UNRECOVERABLE == sts) {
// Handle vendor specific error
LOGE("CryptoSession::LoadKeys: OEMCrypto_LoadKeys error=%d", sts);
@@ -1128,7 +1128,7 @@ CdmResponseType CryptoSession::Decrypt(const CdmDecryptionParameters& params) {
case OEMCrypto_SUCCESS:
return NO_ERROR;
case OEMCrypto_ERROR_INSUFFICIENT_RESOURCES:
return INSUFFICIENT_CRYPTO_RESOURCES;
return INSUFFICIENT_CRYPTO_RESOURCES_5;
case OEMCrypto_ERROR_KEY_EXPIRED:
return NEED_KEY;
case OEMCrypto_ERROR_INVALID_SESSION:

View File

@@ -574,6 +574,12 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) {
case LOAD_SYSTEM_ID_ERROR:
*os << "LOAD_SYSTEM_ID_ERROR";
break;
case INSUFFICIENT_CRYPTO_RESOURCES_4:
*os << "INSUFFICIENT_CRYPTO_RESOURCES_4";
break;
case INSUFFICIENT_CRYPTO_RESOURCES_5:
*os << "INSUFFICIENT_CRYPTO_RESOURCES_5";
break;
default:
*os << "Unknown CdmResponseType";
break;

View File

@@ -260,10 +260,12 @@ enum {
kLicenseRequestInvalidSublicense = ERROR_DRM_VENDOR_MIN + 269,
kCertProvisioningEmptyServiceCertificate = ERROR_DRM_VENDOR_MIN + 270,
kLoadSystemIdError = ERROR_DRM_VENDOR_MIN + 271,
kInsufficientCryptoResources4 = ERROR_DRM_VENDOR_MIN + 272,
kInsufficientCryptoResources5 = ERROR_DRM_VENDOR_MIN + 273,
// This should always follow the last error code.
// The offset value should be updated each time a new error code is added.
kErrorWVDrmMaxErrorUsed = ERROR_DRM_VENDOR_MIN + 271,
kErrorWVDrmMaxErrorUsed = ERROR_DRM_VENDOR_MIN + 273,
// Used by crypto test mode
kErrorTestMode = ERROR_DRM_VENDOR_MAX,

View File

@@ -501,6 +501,10 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) {
return kCertProvisioningEmptyServiceCertificate;
case wvcdm::LOAD_SYSTEM_ID_ERROR:
return kLoadSystemIdError;
case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_4:
return kInsufficientCryptoResources4;
case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_5:
return kInsufficientCryptoResources5;
}
// Return here instead of as a default case so that the compiler will warn

View File

@@ -234,6 +234,8 @@ static Status mapCdmResponseType(wvcdm::CdmResponseType res) {
case wvcdm::INVALID_PARAMETERS_ENG_17:
case wvcdm::INVALID_PARAMETERS_ENG_18:
case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_3:
case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_4:
case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_5:
case wvcdm::CREATE_USAGE_ENTRY_UNKNOWN_ERROR:
case wvcdm::LOAD_USAGE_ENTRY_GENERATION_SKEW:
case wvcdm::LOAD_USAGE_ENTRY_SIGNATURE_FAILURE: