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, LICENSE_REQUEST_INVALID_SUBLICENSE = 277,
CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE = 278, CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE = 278,
LOAD_SYSTEM_ID_ERROR = 279, LOAD_SYSTEM_ID_ERROR = 279,
INSUFFICIENT_CRYPTO_RESOURCES_4 = 280,
INSUFFICIENT_CRYPTO_RESOURCES_5 = 281,
}; };
enum CdmKeyStatus { enum CdmKeyStatus {

View File

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

View File

@@ -260,10 +260,12 @@ enum {
kLicenseRequestInvalidSublicense = ERROR_DRM_VENDOR_MIN + 269, kLicenseRequestInvalidSublicense = ERROR_DRM_VENDOR_MIN + 269,
kCertProvisioningEmptyServiceCertificate = ERROR_DRM_VENDOR_MIN + 270, kCertProvisioningEmptyServiceCertificate = ERROR_DRM_VENDOR_MIN + 270,
kLoadSystemIdError = ERROR_DRM_VENDOR_MIN + 271, 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. // This should always follow the last error code.
// The offset value should be updated each time a new error code is added. // 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 // Used by crypto test mode
kErrorTestMode = ERROR_DRM_VENDOR_MAX, kErrorTestMode = ERROR_DRM_VENDOR_MAX,

View File

@@ -501,6 +501,10 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) {
return kCertProvisioningEmptyServiceCertificate; return kCertProvisioningEmptyServiceCertificate;
case wvcdm::LOAD_SYSTEM_ID_ERROR: case wvcdm::LOAD_SYSTEM_ID_ERROR:
return kLoadSystemIdError; 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 // 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_17:
case wvcdm::INVALID_PARAMETERS_ENG_18: case wvcdm::INVALID_PARAMETERS_ENG_18:
case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_3: 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::CREATE_USAGE_ENTRY_UNKNOWN_ERROR:
case wvcdm::LOAD_USAGE_ENTRY_GENERATION_SKEW: case wvcdm::LOAD_USAGE_ENTRY_GENERATION_SKEW:
case wvcdm::LOAD_USAGE_ENTRY_SIGNATURE_FAILURE: case wvcdm::LOAD_USAGE_ENTRY_SIGNATURE_FAILURE: