Add more CdmResponseType to help with debugging in the field.

The errors in the range ERROR_DRM_VENDOR_MIN to ERROR_DRM_VENDOR_MAX are
reflected in the message that is reported to the app, which is
MediaDrmStateException.getDiagnosticInfo().

Many errors map to kErrorCDMGeneric, especially KEY_ERROR is used as a
generic error in CDM. This fix defines more specific error codes in the
CDM for places where KEY_ERROR is returned.

Merge from http://go/wvgerrit/14071

bug: 19244061
Change-Id: I688bf32828f997000fea041dd29567dde18ac677
This commit is contained in:
Edwin Wong
2015-04-15 11:44:06 -07:00
parent c5f576585b
commit 2eb013691c
11 changed files with 974 additions and 177 deletions

View File

@@ -13,18 +13,149 @@ using android::ERROR_DRM_VENDOR_MIN;
using android::ERROR_DRM_VENDOR_MAX;
enum {
kErrorIncorrectBufferSize = ERROR_DRM_VENDOR_MIN,
kErrorCDMGeneric = ERROR_DRM_VENDOR_MIN + 1,
kErrorUnsupportedCrypto = ERROR_DRM_VENDOR_MIN + 2,
kErrorExpectedUnencrypted = ERROR_DRM_VENDOR_MIN + 3,
kErrorSessionIsOpen = ERROR_DRM_VENDOR_MIN + 4,
kErrorTooManySessions = ERROR_DRM_VENDOR_MIN + 5,
kErrorInvalidKey = ERROR_DRM_VENDOR_MIN + 6,
kErrorNoOriginSpecified = ERROR_DRM_VENDOR_MIN + 7,
kErrorWVDrmMaxErrorUsed = ERROR_DRM_VENDOR_MIN + 7,
kErrorIncorrectBufferSize = ERROR_DRM_VENDOR_MIN,
kErrorCDMGeneric = ERROR_DRM_VENDOR_MIN + 1,
kErrorUnsupportedCrypto = ERROR_DRM_VENDOR_MIN + 2,
kErrorExpectedUnencrypted = ERROR_DRM_VENDOR_MIN + 3,
kErrorSessionIsOpen = ERROR_DRM_VENDOR_MIN + 4,
kErrorTooManySessions = ERROR_DRM_VENDOR_MIN + 5,
kErrorInvalidKey = ERROR_DRM_VENDOR_MIN + 6,
kErrorNoOriginSpecified = ERROR_DRM_VENDOR_MIN + 7,
kAddKeyError = ERROR_DRM_VENDOR_MIN + 8,
kCertProvisioningGetKeyboxError1 = ERROR_DRM_VENDOR_MIN + 9,
kCertProvisioningGetKeyboxError2 = ERROR_DRM_VENDOR_MIN + 10,
kCertProvisioningInvalidCertType = ERROR_DRM_VENDOR_MIN + 11,
kCertProvisioningRequestError1 = ERROR_DRM_VENDOR_MIN + 12,
kCertProvisioningRequestError2 = ERROR_DRM_VENDOR_MIN + 13,
kCertProvisioningRequestError3 = ERROR_DRM_VENDOR_MIN + 14,
kCertProvisioningRequestError4 = ERROR_DRM_VENDOR_MIN + 15,
kCertProvisioningResponseError1 = ERROR_DRM_VENDOR_MIN + 16,
kCertProvisioningResponseError2 = ERROR_DRM_VENDOR_MIN + 17,
kCertProvisioningResponseError3 = ERROR_DRM_VENDOR_MIN + 18,
kCertProvisioningResponseError4 = ERROR_DRM_VENDOR_MIN + 19,
kCertProvisioningResponseError5 = ERROR_DRM_VENDOR_MIN + 20,
kCertProvisioningResponseError6 = ERROR_DRM_VENDOR_MIN + 21,
kCertProvisioningResponseError7 = ERROR_DRM_VENDOR_MIN + 22,
kCertProvisioningResponseError8 = ERROR_DRM_VENDOR_MIN + 23,
kCryptoSessionOpenError1 = ERROR_DRM_VENDOR_MIN + 24,
kCryptoSessionOpenError2 = ERROR_DRM_VENDOR_MIN + 25,
kCryptoSessionOpenError3 = ERROR_DRM_VENDOR_MIN + 26,
kCryptoSessionOpenError4 = ERROR_DRM_VENDOR_MIN + 27,
kCryptoSessionOpenError5 = ERROR_DRM_VENDOR_MIN + 28,
kDecyrptNotReady = ERROR_DRM_VENDOR_MIN + 29,
kDeviceCertificateError1 = ERROR_DRM_VENDOR_MIN + 30,
kDeviceCertificateError2 = ERROR_DRM_VENDOR_MIN + 31,
kDeviceCertificateError3 = ERROR_DRM_VENDOR_MIN + 32,
kDeviceCertificateError4 = ERROR_DRM_VENDOR_MIN + 33,
kEmptyKeyData1 = ERROR_DRM_VENDOR_MIN + 34,
kEmptyKeyData2 = ERROR_DRM_VENDOR_MIN + 35,
kEmptyKeySetId = ERROR_DRM_VENDOR_MIN + 36,
kEmptyKeySetIdEng1 = ERROR_DRM_VENDOR_MIN + 37,
kEmptyKeySetIdEng2 = ERROR_DRM_VENDOR_MIN + 38,
kEmptyKeySetIdEng3 = ERROR_DRM_VENDOR_MIN + 39,
kEmptyKeySetIdEng4 = ERROR_DRM_VENDOR_MIN + 40,
kEmptyLicenseRequest = ERROR_DRM_VENDOR_MIN + 41,
kEmptyLicenseResponse1 = ERROR_DRM_VENDOR_MIN + 42,
kEmptyLicenseResponse2 = ERROR_DRM_VENDOR_MIN + 43,
kEmptyProvisioningCertificate = ERROR_DRM_VENDOR_MIN + 44,
kEmptyProvisioningResponse = ERROR_DRM_VENDOR_MIN + 45,
kEmptySessionId = ERROR_DRM_VENDOR_MIN + 46,
kGenerateDerivedKeysError = ERROR_DRM_VENDOR_MIN + 47,
kGenerateNonceError = ERROR_DRM_VENDOR_MIN + 48,
kGenerateUsageReportError = ERROR_DRM_VENDOR_MIN + 49,
kGetLicenseError = ERROR_DRM_VENDOR_MIN + 50,
kGetReleasedLicenseError = ERROR_DRM_VENDOR_MIN + 51,
kGetUsageInfoError1 = ERROR_DRM_VENDOR_MIN + 52,
kGetUsageInfoError2 = ERROR_DRM_VENDOR_MIN + 53,
kGetUsageInfoError3 = ERROR_DRM_VENDOR_MIN + 54,
kGetUsageInfoError4 = ERROR_DRM_VENDOR_MIN + 55,
kInitDataNotFound = ERROR_DRM_VENDOR_MIN + 56,
kInvalidCryptoSession1 = ERROR_DRM_VENDOR_MIN + 57,
kInvalidCryptoSession2 = ERROR_DRM_VENDOR_MIN + 58,
kInvalidCryptoSession3 = ERROR_DRM_VENDOR_MIN + 59,
kInvalidCryptoSession4 = ERROR_DRM_VENDOR_MIN + 60,
kInvalidCryptoSession5 = ERROR_DRM_VENDOR_MIN + 61,
kInvalidDecryptParametersEng1 = ERROR_DRM_VENDOR_MIN + 62,
kInvalidDecryptParametersEng2 = ERROR_DRM_VENDOR_MIN + 63,
kInvalidDecryptParametersEng3 = ERROR_DRM_VENDOR_MIN + 64,
kInvalidDecryptParametersEng4 = ERROR_DRM_VENDOR_MIN + 65,
kInvalidDeviceCertificateType = ERROR_DRM_VENDOR_MIN + 66,
kInvalidKeySystem = ERROR_DRM_VENDOR_MIN + 67,
kInvalidLicenseResponse = ERROR_DRM_VENDOR_MIN + 68,
kInvalidLicenseType = ERROR_DRM_VENDOR_MIN + 69,
kInvalidParametersEng1 = ERROR_DRM_VENDOR_MIN + 70,
kInvalidParametersEng2 = ERROR_DRM_VENDOR_MIN + 71,
kInvalidParametersEng3 = ERROR_DRM_VENDOR_MIN + 72,
kInvalidParametersEng4 = ERROR_DRM_VENDOR_MIN + 73,
kInvalidParametersLic1 = ERROR_DRM_VENDOR_MIN + 74,
kInvalidParametersLic2 = ERROR_DRM_VENDOR_MIN + 75,
kInvalidProvisioningParam1 = ERROR_DRM_VENDOR_MIN + 76,
kInvalidProvisioningParam2 = ERROR_DRM_VENDOR_MIN + 77,
kInvalidProvisioningReqParam1 = ERROR_DRM_VENDOR_MIN + 78,
kInvalidProvisioningReqParam2 = ERROR_DRM_VENDOR_MIN + 79,
kInvalidQueryKey = ERROR_DRM_VENDOR_MIN + 80,
kInvalidSessionId = ERROR_DRM_VENDOR_MIN + 81,
kKeyRequestError1 = ERROR_DRM_VENDOR_MIN + 82,
kKeyRequestError2 = ERROR_DRM_VENDOR_MIN + 83,
kKeySizeError = ERROR_DRM_VENDOR_MIN + 84,
kKeySetIdNotFound1 = ERROR_DRM_VENDOR_MIN + 85,
kKeySetIdNotFound2 = ERROR_DRM_VENDOR_MIN + 86,
kKeySetIdNotFound3 = ERROR_DRM_VENDOR_MIN + 87,
kLicenseIdNotFound = ERROR_DRM_VENDOR_MIN + 88,
kLicenseParserInitError = ERROR_DRM_VENDOR_MIN + 89,
kLicenseParserNotInitialized1 = ERROR_DRM_VENDOR_MIN + 90,
kLicenseParserNotInitialized2 = ERROR_DRM_VENDOR_MIN + 91,
kLicenseParserNotInitialized3 = ERROR_DRM_VENDOR_MIN + 92,
kLicenseResponseNotSigned = ERROR_DRM_VENDOR_MIN + 93,
kLicenseResponseParseError1 = ERROR_DRM_VENDOR_MIN + 94,
kLicenseResponseParseError2 = ERROR_DRM_VENDOR_MIN + 95,
kLicenseResponseParseError3 = ERROR_DRM_VENDOR_MIN + 96,
kLoadKeyError = ERROR_DRM_VENDOR_MIN + 97,
kNoContentKey = ERROR_DRM_VENDOR_MIN + 98,
kProvisioningGetKeyboxError = ERROR_DRM_VENDOR_MIN + 99,
kRefreshKeysError = ERROR_DRM_VENDOR_MIN + 100,
kReleaseAllUsageInfoError1 = ERROR_DRM_VENDOR_MIN + 101,
kReleaseAllUsageInfoError2 = ERROR_DRM_VENDOR_MIN + 102,
kReleaseKeyError = ERROR_DRM_VENDOR_MIN + 103,
kReleaseKeyRequestError = ERROR_DRM_VENDOR_MIN + 104,
kReleaseLicenseError1 = ERROR_DRM_VENDOR_MIN + 105,
kReleaseLicenseError2 = ERROR_DRM_VENDOR_MIN + 106,
kReleaseUsageInfoError = ERROR_DRM_VENDOR_MIN + 107,
kRenewKeyError1 = ERROR_DRM_VENDOR_MIN + 108,
kRenewKeyError2 = ERROR_DRM_VENDOR_MIN + 109,
kRenewalRequestError = ERROR_DRM_VENDOR_MIN + 110,
kRestoreOfflineLicenseError1 = ERROR_DRM_VENDOR_MIN + 111,
kRestoreOfflineLicenseError2 = ERROR_DRM_VENDOR_MIN + 112,
kSessionInitError1 = ERROR_DRM_VENDOR_MIN + 113,
kSessionInitError2 = ERROR_DRM_VENDOR_MIN + 114,
kSessionInitGetKeyboxError = ERROR_DRM_VENDOR_MIN + 115,
kSessionNotFound1 = ERROR_DRM_VENDOR_MIN + 116,
kSessionNotFound2 = ERROR_DRM_VENDOR_MIN + 117,
kSessionNotFound3 = ERROR_DRM_VENDOR_MIN + 118,
kSessionNotFound4 = ERROR_DRM_VENDOR_MIN + 119,
kSessionNotFound5 = ERROR_DRM_VENDOR_MIN + 120,
kSessionNotFound6 = ERROR_DRM_VENDOR_MIN + 121,
kSessionNotFound7 = ERROR_DRM_VENDOR_MIN + 122,
kSessionNotFound8 = ERROR_DRM_VENDOR_MIN + 123,
kSessionNotFound9 = ERROR_DRM_VENDOR_MIN + 124,
kSessionNotFound10 = ERROR_DRM_VENDOR_MIN + 125,
kSessionKeysNotFound = ERROR_DRM_VENDOR_MIN + 126,
kSessionNotFoundForDecrypt = ERROR_DRM_VENDOR_MIN + 127,
kSignatureNotFound = ERROR_DRM_VENDOR_MIN + 128,
kStoreLicenseError1 = ERROR_DRM_VENDOR_MIN + 129,
kStoreLicenseError2 = ERROR_DRM_VENDOR_MIN + 130,
kStoreLicenseError3 = ERROR_DRM_VENDOR_MIN + 131,
kStoreUsageInfoError = ERROR_DRM_VENDOR_MIN + 132,
kUnprovisioningError1 = ERROR_DRM_VENDOR_MIN + 133,
kUnprovisioningError2 = ERROR_DRM_VENDOR_MIN + 134,
kUnprovisioningError3 = ERROR_DRM_VENDOR_MIN + 135,
kUnprovisioningError4 = ERROR_DRM_VENDOR_MIN + 136,
kUnsupportedInitData = ERROR_DRM_VENDOR_MIN + 137,
kUsageInfoNotFound = ERROR_DRM_VENDOR_MIN + 138,
kErrorWVDrmMaxErrorUsed = ERROR_DRM_VENDOR_MIN + 138,
// Used by crypto test mode
kErrorTestMode = ERROR_DRM_VENDOR_MAX,
kErrorTestMode = ERROR_DRM_VENDOR_MAX,
};
static_assert(static_cast<uint32_t>(kErrorWVDrmMaxErrorUsed) <=

View File

@@ -29,6 +29,266 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) {
return android::ERROR_DRM_DEVICE_REVOKED;
case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES:
return android::ERROR_DRM_RESOURCE_BUSY;
case wvcdm::ADD_KEY_ERROR:
return kAddKeyError;
case wvcdm::CERT_PROVISIONING_GET_KEYBOX_ERROR_1:
return kCertProvisioningGetKeyboxError1;
case wvcdm::CERT_PROVISIONING_GET_KEYBOX_ERROR_2:
return kCertProvisioningGetKeyboxError2;
case wvcdm::CERT_PROVISIONING_INVALID_CERT_TYPE:
return kCertProvisioningInvalidCertType;
case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_1:
return kCertProvisioningRequestError1;
case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_2:
return kCertProvisioningRequestError2;
case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_3:
return kCertProvisioningRequestError3;
case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_4:
return kCertProvisioningRequestError4;
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_1:
return kCertProvisioningResponseError1;
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_2:
return kCertProvisioningResponseError2;
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_3:
return kCertProvisioningResponseError3;
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_4:
return kCertProvisioningResponseError4;
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_5:
return kCertProvisioningResponseError5;
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_6:
return kCertProvisioningResponseError6;
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_7:
return kCertProvisioningResponseError7;
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_8:
return kCertProvisioningResponseError8;
case wvcdm::CRYPTO_SESSION_OPEN_ERROR_1:
return kCryptoSessionOpenError1;
case wvcdm::CRYPTO_SESSION_OPEN_ERROR_2:
return kCryptoSessionOpenError2;
case wvcdm::CRYPTO_SESSION_OPEN_ERROR_3:
return kCryptoSessionOpenError3;
case wvcdm::CRYPTO_SESSION_OPEN_ERROR_4:
return kCryptoSessionOpenError4;
case wvcdm::CRYPTO_SESSION_OPEN_ERROR_5:
return kCryptoSessionOpenError5;
case wvcdm::DECRYPT_NOT_READY:
return kDecyrptNotReady;
case wvcdm::DEVICE_CERTIFICATE_ERROR_1:
return kDeviceCertificateError1;
case wvcdm::DEVICE_CERTIFICATE_ERROR_2:
return kDeviceCertificateError2;
case wvcdm::DEVICE_CERTIFICATE_ERROR_3:
return kDeviceCertificateError3;
case wvcdm::DEVICE_CERTIFICATE_ERROR_4:
return kDeviceCertificateError4;
case wvcdm::EMPTY_KEY_DATA_1:
return kEmptyKeyData1;
case wvcdm::EMPTY_KEY_DATA_2:
return kEmptyKeyData2;
case wvcdm::EMPTY_KEYSET_ID:
return kEmptyKeySetId;
case wvcdm::EMPTY_KEYSET_ID_ENG_1:
return kEmptyKeySetIdEng1;
case wvcdm::EMPTY_KEYSET_ID_ENG_2:
return kEmptyKeySetIdEng2;
case wvcdm::EMPTY_KEYSET_ID_ENG_3:
return kEmptyKeySetIdEng3;
case wvcdm::EMPTY_KEYSET_ID_ENG_4:
return kEmptyKeySetIdEng4;
case wvcdm::EMPTY_LICENSE_REQUEST:
return kEmptyLicenseRequest;
case wvcdm::EMPTY_LICENSE_RESPONSE_1:
return kEmptyLicenseResponse1;
case wvcdm::EMPTY_LICENSE_RESPONSE_2:
return kEmptyLicenseResponse2;
case wvcdm::EMPTY_PROVISIONING_CERTIFICATE:
return kEmptyProvisioningCertificate;
case wvcdm::EMPTY_PROVISIONING_RESPONSE:
return kEmptyProvisioningResponse;
case wvcdm::EMPTY_SESSION_ID:
return kEmptySessionId;
case wvcdm::GENERATE_DERIVED_KEYS_ERROR:
return kGenerateDerivedKeysError;
case wvcdm::GENERATE_NONCE_ERROR:
return kGenerateNonceError;
case wvcdm::GENERATE_USAGE_REPORT_ERROR:
return kGenerateUsageReportError;
case wvcdm::GET_LICENSE_ERROR:
return kGetLicenseError;
case wvcdm::GET_RELEASED_LICENSE_ERROR:
return kGetReleasedLicenseError;
case wvcdm::GET_USAGE_INFO_ERROR_1:
return kGetUsageInfoError1;
case wvcdm::GET_USAGE_INFO_ERROR_2:
return kGetUsageInfoError2;
case wvcdm::GET_USAGE_INFO_ERROR_3:
return kGetUsageInfoError3;
case wvcdm::GET_USAGE_INFO_ERROR_4:
return kGetUsageInfoError4;
case wvcdm::INIT_DATA_NOT_FOUND:
return kInitDataNotFound;
case wvcdm::INVALID_CRYPTO_SESSION_1:
return kInvalidCryptoSession1;
case wvcdm::INVALID_CRYPTO_SESSION_2:
return kInvalidCryptoSession2;
case wvcdm::INVALID_CRYPTO_SESSION_3:
return kInvalidCryptoSession3;
case wvcdm::INVALID_CRYPTO_SESSION_4:
return kInvalidCryptoSession4;
case wvcdm::INVALID_CRYPTO_SESSION_5:
return kInvalidCryptoSession5;
case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_1:
return kInvalidDecryptParametersEng1;
case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_2:
return kInvalidDecryptParametersEng2;
case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_3:
return kInvalidDecryptParametersEng3;
case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_4:
return kInvalidDecryptParametersEng4;
case wvcdm::SESSION_NOT_FOUND_FOR_DECRYPT:
return kSessionNotFoundForDecrypt;
case wvcdm::INVALID_DEVICE_CERTIFICATE_TYPE:
return kInvalidDeviceCertificateType;
case wvcdm::INVALID_KEY_SYSTEM:
return kInvalidKeySystem;
case wvcdm::INVALID_LICENSE_RESPONSE:
return kInvalidLicenseResponse;
case wvcdm::INVALID_LICENSE_TYPE:
return kInvalidLicenseType;
case wvcdm::INVALID_PARAMETERS_ENG_1:
return kInvalidParametersEng1;
case wvcdm::INVALID_PARAMETERS_ENG_2:
return kInvalidParametersEng2;
case wvcdm::INVALID_PARAMETERS_ENG_3:
return kInvalidParametersEng3;
case wvcdm::INVALID_PARAMETERS_ENG_4:
return kInvalidParametersEng4;
case wvcdm::INVALID_PARAMETERS_LIC_1:
return kInvalidParametersLic1;
case wvcdm::INVALID_PARAMETERS_LIC_2:
return kInvalidParametersLic2;
case wvcdm::INVALID_PROVISIONING_PARAMETERS_1:
return kInvalidProvisioningParam1;
case wvcdm::INVALID_PROVISIONING_PARAMETERS_2:
return kInvalidProvisioningParam2;
case wvcdm::INVALID_PROVISIONING_REQUEST_PARAM_1:
return kInvalidProvisioningReqParam1;
case wvcdm::INVALID_PROVISIONING_REQUEST_PARAM_2:
return kInvalidProvisioningReqParam2;
case wvcdm::INVALID_QUERY_KEY:
return kInvalidQueryKey;
case wvcdm::INVALID_SESSION_ID:
return kInvalidSessionId;
case wvcdm::KEY_REQUEST_ERROR_1:
return kKeyRequestError1;
case wvcdm::KEY_REQUEST_ERROR_2:
return kKeyRequestError2;
case wvcdm::KEY_SIZE_ERROR:
return kKeySizeError;
case wvcdm::KEYSET_ID_NOT_FOUND_1:
return kKeySetIdNotFound1;
case wvcdm::KEYSET_ID_NOT_FOUND_2:
return kKeySetIdNotFound2;
case wvcdm::KEYSET_ID_NOT_FOUND_3:
return kKeySetIdNotFound3;
case wvcdm::LICENSE_ID_NOT_FOUND:
return kLicenseIdNotFound;
case wvcdm::LICENSE_PARSER_INIT_ERROR:
return kLicenseParserInitError;
case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_1:
return kLicenseParserNotInitialized1;
case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_2:
return kLicenseParserNotInitialized2;
case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_3:
return kLicenseParserNotInitialized3;
case wvcdm::LICENSE_RESPONSE_NOT_SIGNED:
return kLicenseResponseNotSigned;
case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_1:
return kLicenseResponseParseError1;
case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_2:
return kLicenseResponseParseError2;
case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_3:
return kLicenseResponseParseError3;
case wvcdm::LOAD_KEY_ERROR:
return kLoadKeyError;
case wvcdm::NO_CONTENT_KEY:
return kNoContentKey;
case wvcdm::REFRESH_KEYS_ERROR:
return kRefreshKeysError;
case wvcdm::RELEASE_ALL_USAGE_INFO_ERROR_1:
return kReleaseAllUsageInfoError1;
case wvcdm::RELEASE_ALL_USAGE_INFO_ERROR_2:
return kReleaseAllUsageInfoError2;
case wvcdm::RELEASE_KEY_ERROR:
return kReleaseKeyError;
case wvcdm::RELEASE_KEY_REQUEST_ERROR:
return kReleaseKeyRequestError;
case wvcdm::RELEASE_LICENSE_ERROR_1:
return kReleaseLicenseError1;
case wvcdm::RELEASE_LICENSE_ERROR_2:
return kReleaseLicenseError2;
case wvcdm::RELEASE_USAGE_INFO_ERROR:
return kReleaseUsageInfoError;
case wvcdm::RENEW_KEY_ERROR_1:
return kRenewKeyError1;
case wvcdm::RENEW_KEY_ERROR_2:
return kRenewKeyError2;
case wvcdm::RENEWAL_REQUEST_ERROR:
return kRenewalRequestError;
case wvcdm::RESTORE_OFFLINE_LICENSE_ERROR_1:
return kRestoreOfflineLicenseError1;
case wvcdm::RESTORE_OFFLINE_LICENSE_ERROR_2:
return kRestoreOfflineLicenseError2;
case wvcdm::SESSION_INIT_ERROR_1:
return kSessionInitError1;
case wvcdm::SESSION_INIT_ERROR_2:
return kSessionInitError2;
case wvcdm::SESSION_INIT_GET_KEYBOX_ERROR:
return kSessionInitGetKeyboxError;
case wvcdm::SESSION_NOT_FOUND_1:
return kSessionNotFound1;
case wvcdm::SESSION_NOT_FOUND_2:
return kSessionNotFound2;
case wvcdm::SESSION_NOT_FOUND_3:
return kSessionNotFound3;
case wvcdm::SESSION_NOT_FOUND_4:
return kSessionNotFound4;
case wvcdm::SESSION_NOT_FOUND_5:
return kSessionNotFound5;
case wvcdm::SESSION_NOT_FOUND_6:
return kSessionNotFound6;
case wvcdm::SESSION_NOT_FOUND_7:
return kSessionNotFound7;
case wvcdm::SESSION_NOT_FOUND_8:
return kSessionNotFound8;
case wvcdm::SESSION_NOT_FOUND_9:
return kSessionNotFound9;
case wvcdm::SESSION_NOT_FOUND_10:
return kSessionNotFound10;
case wvcdm::SESSION_KEYS_NOT_FOUND:
return kSessionKeysNotFound;
case wvcdm::SIGNATURE_NOT_FOUND:
return kSignatureNotFound;
case wvcdm::STORE_LICENSE_ERROR_1:
return kStoreLicenseError1;
case wvcdm::STORE_LICENSE_ERROR_2:
return kStoreLicenseError2;
case wvcdm::STORE_LICENSE_ERROR_3:
return kStoreLicenseError3;
case wvcdm::STORE_USAGE_INFO_ERROR:
return kStoreUsageInfoError;
case wvcdm::UNPROVISION_ERROR_1:
return kUnprovisioningError1;
case wvcdm::UNPROVISION_ERROR_2:
return kUnprovisioningError2;
case wvcdm::UNPROVISION_ERROR_3:
return kUnprovisioningError3;
case wvcdm::UNPROVISION_ERROR_4:
return kUnprovisioningError4;
case wvcdm::UNSUPPORTED_INIT_DATA:
return kUnsupportedInitData;
case wvcdm::USAGE_INFO_NOT_FOUND:
return kUsageInfoNotFound;
case wvcdm::KEY_ERROR:
// KEY_ERROR is used by the CDM to mean just about any kind of error, not
// just license errors, so it is mapped to the generic response.