From 0f2503490777626eea825da5f61bd16a804c1d78 Mon Sep 17 00:00:00 2001 From: Alex Dale Date: Tue, 17 Sep 2019 11:31:59 -0700 Subject: [PATCH] Reordering Android WV error codes in mapper. [ Merge of http://go/wvgerrit/86243 ] Sorted the case-return blocks in the error map function. Used two iterations of a bucket sort algorithm. First by the case label, then a binary sort on whether the return value is in the `android` namespace or not. There are some exception (such as the first and last block). The majority of the sorting was done using a script: https://paste.googleplex.com/6390453727395840 Bug: 34648626 Test: Linux unit tests and compiled on Android Change-Id: I524e0d0d93df8b0a3dc1155980eec22cf43156b6 --- .../cdm/core/test/test_printers.cpp | 1113 +++++++++-------- libwvdrmengine/include/mapErrors-inl.h | 749 +++++------ 2 files changed, 934 insertions(+), 928 deletions(-) diff --git a/libwvdrmengine/cdm/core/test/test_printers.cpp b/libwvdrmengine/cdm/core/test/test_printers.cpp index e312531b..4e09a8d7 100644 --- a/libwvdrmengine/cdm/core/test/test_printers.cpp +++ b/libwvdrmengine/cdm/core/test/test_printers.cpp @@ -16,45 +16,31 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case UNKNOWN_ERROR: *os << "UNKNOWN_ERROR"; break; - case KEY_ADDED: - *os << "KEY_ADDED"; - break; - case KEY_ERROR: - *os << "KEY_ERROR"; - break; - case KEY_MESSAGE: - *os << "KEY_MESSAGE"; - break; - case NEED_KEY: - *os << "NEED_KEY"; - break; - case KEY_CANCELED: - *os << "KEY_CANCELED"; - break; - case NEED_PROVISIONING: - *os << "NEED_PROVISIONING"; - break; - case DEVICE_REVOKED: - *os << "DEVICE_REVOKED"; - break; - case INSUFFICIENT_CRYPTO_RESOURCES: - *os << "INSUFFICIENT_CRYPTO_RESOURCES"; - break; + // Remaining codes are order alphabetically. case ADD_KEY_ERROR: *os << "ADD_KEY_ERROR"; break; + case ANALOG_OUTPUT_ERROR: + *os << "ANALOG_OUTPUT_ERROR"; + break; + case CENC_INIT_DATA_UNAVAILABLE: + *os << "CENC_INIT_DATA_UNAVAILABLE"; + break; + case CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE: + *os << "CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE"; + break; case CERT_PROVISIONING_GET_KEYBOX_ERROR_1: *os << "CERT_PROVISIONING_GET_KEYBOX_ERROR_1"; break; case CERT_PROVISIONING_INVALID_CERT_TYPE: *os << "CERT_PROVISIONING_INVALID_CERT_TYPE"; break; - case CERT_PROVISIONING_REQUEST_ERROR_1: - *os << "CERT_PROVISIONING_REQUEST_ERROR_1"; - break; case CERT_PROVISIONING_NONCE_GENERATION_ERROR: *os << "CERT_PROVISIONING_NONCE_GENERATION_ERROR"; break; + case CERT_PROVISIONING_REQUEST_ERROR_1: + *os << "CERT_PROVISIONING_REQUEST_ERROR_1"; + break; case CERT_PROVISIONING_REQUEST_ERROR_4: *os << "CERT_PROVISIONING_REQUEST_ERROR_4"; break; @@ -82,9 +68,60 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case CERT_PROVISIONING_RESPONSE_ERROR_8: *os << "CERT_PROVISIONING_RESPONSE_ERROR_8"; break; + case CLIENT_ID_AES_ENCRYPT_ERROR: + *os << "CLIENT_ID_AES_ENCRYPT_ERROR"; + break; + case CLIENT_ID_AES_INIT_ERROR: + *os << "CLIENT_ID_AES_INIT_ERROR"; + break; + case CLIENT_IDENTIFICATION_TOKEN_ERROR_1: + *os << "CLIENT_IDENTIFICATION_TOKEN_ERROR_1"; + break; + case CLIENT_ID_GENERATE_RANDOM_ERROR: + *os << "CLIENT_ID_GENERATE_RANDOM_ERROR"; + break; + case CLIENT_ID_RSA_ENCRYPT_ERROR: + *os << "CLIENT_ID_RSA_ENCRYPT_ERROR"; + break; + case CLIENT_ID_RSA_INIT_ERROR: + *os << "CLIENT_ID_RSA_INIT_ERROR"; + break; + case COPY_OLD_USAGE_ENTRY_UNKNOWN_ERROR: + *os << "COPY_OLD_USAGE_ENTRY_UNKNOWN_ERROR"; + break; + case CREATE_USAGE_ENTRY_UNKNOWN_ERROR: + *os << "CREATE_USAGE_ENTRY_UNKNOWN_ERROR"; + break; + case CREATE_USAGE_TABLE_ERROR: + *os << "CREATE_USAGE_TABLE_ERROR"; + break; + case CRYPTO_SESSION_NOT_INITIALIZED: + *os << "CRYPTO_SESSION_NOT_INITIALIZED"; + break; + case CRYPTO_SESSION_NOT_OPEN: + *os << "CRYPTO_SESSION_NOT_OPEN"; + break; + case DEACTIVATE_USAGE_ENTRY_ERROR: + *os << "DEACTIVATE_USAGE_ENTRY_ERROR"; + break; + case DECRYPT_ERROR: + *os << "DECRYPT_ERROR"; + break; case DECRYPT_NOT_READY: *os << "DECRYPT_NOT_READY"; break; + case DELETE_USAGE_ERROR_1: + *os << "DELETE_USAGE_ERROR_1"; + break; + case DELETE_USAGE_ERROR_2: + *os << "DELETE_USAGE_ERROR_2"; + break; + case DELETE_USAGE_ERROR_3: + *os << "DELETE_USAGE_ERROR_3"; + break; + case DEVICE_CANNOT_REPROVISION: + *os << "DEVICE_CANNOT_REPROVISION"; + break; case DEVICE_CERTIFICATE_ERROR_1: *os << "DEVICE_CERTIFICATE_ERROR_1"; break; @@ -97,6 +134,12 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case DEVICE_CERTIFICATE_ERROR_4: *os << "DEVICE_CERTIFICATE_ERROR_4"; break; + case DEVICE_REVOKED: + *os << "DEVICE_REVOKED"; + break; + case DUPLICATE_SESSION_ID_SPECIFIED: + *os << "DUPLICATE_SESSION_ID_SPECIFIED"; + break; case EMPTY_KEY_DATA_1: *os << "EMPTY_KEY_DATA_1"; break; @@ -121,42 +164,96 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case EMPTY_LICENSE_RENEWAL: *os << "EMPTY_LICENSE_RENEWAL"; break; + case EMPTY_LICENSE_REQUEST: + *os << "EMPTY_LICENSE_REQUEST"; + break; + case EMPTY_LICENSE_REQUEST_2: + *os << "EMPTY_LICENSE_REQUEST_2"; + break; + case EMPTY_LICENSE_REQUEST_3: + *os << "EMPTY_LICENSE_REQUEST_3"; + break; case EMPTY_LICENSE_RESPONSE_1: *os << "EMPTY_LICENSE_RESPONSE_1"; break; case EMPTY_LICENSE_RESPONSE_2: *os << "EMPTY_LICENSE_RESPONSE_2"; break; + case EMPTY_LICENSE_RESPONSE_3: + *os << "EMPTY_LICENSE_RESPONSE_3"; + break; + case EMPTY_LICENSE_RESPONSE_4: + *os << "EMPTY_LICENSE_RESPONSE_4"; + break; case EMPTY_PROVISIONING_CERTIFICATE_1: *os << "EMPTY_PROVISIONING_CERTIFICATE_1"; break; + case EMPTY_PROVISIONING_CERTIFICATE_2: + *os << "EMPTY_PROVISIONING_CERTIFICATE_2"; + break; case EMPTY_PROVISIONING_RESPONSE: *os << "EMPTY_PROVISIONING_RESPONSE"; break; + case EMPTY_RESPONSE_ERROR_1: + *os << "EMPTY_RESPONSE_ERROR_1"; + break; case EMPTY_SESSION_ID: *os << "EMPTY_SESSION_ID"; break; + case EXTRACT_SYSTEM_ID_FROM_OEM_CERT_ERROR: + *os << "EXTRACT_SYSTEM_ID_FROM_OEM_CERT_ERROR"; + break; case GENERATE_DERIVED_KEYS_ERROR: *os << "GENERATE_DERIVED_KEYS_ERROR"; break; - case LICENSE_RENEWAL_NONCE_GENERATION_ERROR: - *os << "LICENSE_RENEWAL_NONCE_GENERATION_ERROR"; + case GENERATE_DERIVED_KEYS_ERROR_2: + *os << "GENERATE_DERIVED_KEYS_ERROR_2"; + break; + case GENERATE_SIGNATURE_ERROR: + *os << "GENERATE_SIGNATURE_ERROR"; break; case GENERATE_USAGE_REPORT_ERROR: *os << "GENERATE_USAGE_REPORT_ERROR"; break; + case GET_DECRYPT_HASH_ERROR: + *os << "GET_DECRYPT_HASH_ERROR"; + break; + case GET_DEVICE_ID_ERROR: + *os << "GET_DEVICE_ID_ERROR"; + break; + case GET_HDCP_CAPABILITY_FAILED: + *os << "GET_HDCP_CAPABILITY_FAILED"; + break; case GET_LICENSE_ERROR: *os << "GET_LICENSE_ERROR"; break; + case GET_MAX_NUMBER_OF_OPEN_SESSIONS_ERROR: + *os << "GET_MAX_NUMBER_OF_OPEN_SESSIONS_ERROR"; + break; + case GET_NUMBER_OF_OPEN_SESSIONS_ERROR: + *os << "GET_NUMBER_OF_OPEN_SESSIONS_ERROR"; + break; case GET_OFFLINE_LICENSE_STATE_ERROR_1: *os << "GET_OFFLINE_LICENSE_STATE_ERROR_1"; break; case GET_OFFLINE_LICENSE_STATE_ERROR_2: *os << "GET_OFFLINE_LICENSE_STATE_ERROR_2"; break; + case GET_PROVISIONING_METHOD_ERROR: + *os << "GET_PROVISIONING_METHOD_ERROR"; + break; case GET_RELEASED_LICENSE_ERROR: *os << "GET_RELEASED_LICENSE_ERROR"; break; + case GET_SRM_VERSION_ERROR: + *os << "GET_SRM_VERSION_ERROR"; + break; + case GET_TOKEN_FROM_KEYBOX_ERROR: + *os << "GET_TOKEN_FROM_KEYBOX_ERROR"; + break; + case GET_TOKEN_FROM_OEM_CERT_ERROR: + *os << "GET_TOKEN_FROM_OEM_CERT_ERROR"; + break; case GET_USAGE_INFO_ERROR_1: *os << "GET_USAGE_INFO_ERROR_1"; break; @@ -169,9 +266,42 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case GET_USAGE_INFO_ERROR_4: *os << "GET_USAGE_INFO_ERROR_4"; break; + case INCORRECT_CRYPTO_MODE: + *os << "INCORRECT_CRYPTO_MODE"; + break; + case INCORRECT_USAGE_SUPPORT_TYPE_1: + *os << "INCORRECT_USAGE_SUPPORT_TYPE_1"; + break; + case INCORRECT_USAGE_SUPPORT_TYPE_2: + *os << "INCORRECT_USAGE_SUPPORT_TYPE_2"; + break; case INIT_DATA_NOT_FOUND: *os << "INIT_DATA_NOT_FOUND"; break; + case INSUFFICIENT_CRYPTO_RESOURCES: + *os << "INSUFFICIENT_CRYPTO_RESOURCES"; + break; + case INSUFFICIENT_CRYPTO_RESOURCES_2: + *os << "INSUFFICIENT_CRYPTO_RESOURCES_2"; + break; + case INSUFFICIENT_CRYPTO_RESOURCES_3: + *os << "INSUFFICIENT_CRYPTO_RESOURCES_3"; + break; + case INSUFFICIENT_CRYPTO_RESOURCES_4: + *os << "INSUFFICIENT_CRYPTO_RESOURCES_4"; + break; + case INSUFFICIENT_CRYPTO_RESOURCES_5: + *os << "INSUFFICIENT_CRYPTO_RESOURCES_5"; + break; + case INSUFFICIENT_CRYPTO_RESOURCES_6: + *os << "INSUFFICIENT_CRYPTO_RESOURCES_6"; + break; + case INSUFFICIENT_OUTPUT_PROTECTION: + *os << "INSUFFICIENT_OUTPUT_PROTECTION"; + break; + case INVALID_DECRYPT_HASH_FORMAT: + *os << "INVALID_DECRYPT_HASH_FORMAT"; + break; case INVALID_DECRYPT_PARAMETERS_ENG_1: *os << "INVALID_DECRYPT_PARAMETERS_ENG_1"; break; @@ -190,20 +320,59 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case INVALID_KEY_SYSTEM: *os << "INVALID_KEY_SYSTEM"; break; + case INVALID_LICENSE_REQUEST_TYPE_1: + *os << "INVALID_LICENSE_REQUEST_TYPE_1"; + break; + case INVALID_LICENSE_REQUEST_TYPE_2: + *os << "INVALID_LICENSE_REQUEST_TYPE_2"; + break; case INVALID_LICENSE_RESPONSE: *os << "INVALID_LICENSE_RESPONSE"; break; case INVALID_LICENSE_TYPE: *os << "INVALID_LICENSE_TYPE"; break; - case PARAMETER_NULL: - *os << "PARAMETER_NULL"; + case INVALID_LICENSE_TYPE_2: + *os << "INVALID_LICENSE_TYPE_2"; break; - case NOT_INITIALIZED_ERROR: - *os << "NOT_INITIALIZED_ERROR"; + case INVALID_PARAMETERS_ENG_5: + *os << "INVALID_PARAMETERS_ENG_5"; break; - case REINIT_ERROR: - *os << "REINIT_ERROR"; + case INVALID_PARAMETERS_ENG_13: + *os << "INVALID_PARAMETERS_ENG_13"; + break; + case INVALID_PARAMETERS_ENG_14: + *os << "INVALID_PARAMETERS_ENG_14"; + break; + case INVALID_PARAMETERS_ENG_15: + *os << "INVALID_PARAMETERS_ENG_15"; + break; + case INVALID_PARAMETERS_ENG_16: + *os << "INVALID_PARAMETERS_ENG_16"; + break; + case INVALID_PARAMETERS_ENG_17: + *os << "INVALID_PARAMETERS_ENG_17"; + break; + case INVALID_PARAMETERS_ENG_18: + *os << "INVALID_PARAMETERS_ENG_18"; + break; + case INVALID_PARAMETERS_ENG_19: + *os << "INVALID_PARAMETERS_ENG_19"; + break; + case INVALID_PARAMETERS_ENG_20: + *os << "INVALID_PARAMETERS_ENG_20"; + break; + case INVALID_PARAMETERS_ENG_21: + *os << "INVALID_PARAMETERS_ENG_21"; + break; + case INVALID_PARAMETERS_ENG_22: + *os << "INVALID_PARAMETERS_ENG_22"; + break; + case INVALID_PARAMETERS_ENG_23: + *os << "INVALID_PARAMETERS_ENG_23"; + break; + case INVALID_PARAMETERS_ENG_24: + *os << "INVALID_PARAMETERS_ENG_24"; break; case INVALID_PARAMETERS_LIC_1: *os << "INVALID_PARAMETERS_LIC_1"; @@ -211,6 +380,18 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case INVALID_PARAMETERS_LIC_2: *os << "INVALID_PARAMETERS_LIC_2"; break; + case INVALID_PARAMETERS_LIC_3: + *os << "INVALID_PARAMETERS_LIC_3"; + break; + case INVALID_PARAMETERS_LIC_4: + *os << "INVALID_PARAMETERS_LIC_4"; + break; + case INVALID_PARAMETERS_LIC_6: + *os << "INVALID_PARAMETERS_LIC_6"; + break; + case INVALID_PARAMETERS_LIC_7: + *os << "INVALID_PARAMETERS_LIC_7"; + break; case INVALID_PROVISIONING_PARAMETERS_1: *os << "INVALID_PROVISIONING_PARAMETERS_1"; break; @@ -226,18 +407,63 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case INVALID_QUERY_KEY: *os << "INVALID_QUERY_KEY"; break; + case INVALID_SESSION_1: + *os << "INVALID_SESSION_1"; + break; case INVALID_SESSION_ID: *os << "INVALID_SESSION_ID"; break; + case INVALID_SRM_LIST: + *os << "INVALID_SRM_LIST"; + break; + case INVALID_USAGE_ENTRY_NUMBER_MODIFICATION: + *os << "INVALID_USAGE_ENTRY_NUMBER_MODIFICATION"; + break; + case KEY_ADDED: + *os << "KEY_ADDED"; + break; + case KEYBOX_TOKEN_TOO_SHORT: + *os << "KEYBOX_TOKEN_TOO_SHORT"; + break; + case KEY_CANCELED: + *os << "KEY_CANCELED"; + break; + case KEY_CONFLICT_1: + *os << "KEY_CONFLICT_1"; + break; + case KEY_ERROR: + *os << "KEY_ERROR"; + break; + case KEY_MESSAGE: + *os << "KEY_MESSAGE"; + break; + case KEY_NOT_FOUND_1: + *os << "KEY_NOT_FOUND_1"; + break; + case KEY_NOT_FOUND_2: + *os << "KEY_NOT_FOUND_2"; + break; + case KEY_NOT_FOUND_3: + *os << "KEY_NOT_FOUND_3"; + break; + case KEY_NOT_FOUND_4: + *os << "KEY_NOT_FOUND_4"; + break; + case KEY_NOT_FOUND_5: + *os << "KEY_NOT_FOUND_5"; + break; + case KEY_NOT_FOUND_6: + *os << "KEY_NOT_FOUND_6"; + break; + case KEY_NOT_FOUND_IN_SESSION: + *os << "KEY_NOT_FOUND_IN_SESSION"; + break; + case KEY_PROHIBITED_FOR_SECURITY_LEVEL: + *os << "KEY_PROHIBITED_FOR_SECURITY_LEVEL"; + break; case KEY_REQUEST_ERROR_1: *os << "KEY_REQUEST_ERROR_1"; break; - case KEY_SIZE_ERROR_1: - *os << "KEY_SIZE_ERROR_1"; - break; - case KEY_SIZE_ERROR_2: - *os << "KEY_SIZE_ERROR_2"; - break; case KEYSET_ID_NOT_FOUND_1: *os << "KEYSET_ID_NOT_FOUND_1"; break; @@ -250,6 +476,12 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case KEYSET_ID_NOT_FOUND_4: *os << "KEYSET_ID_NOT_FOUND_4"; break; + case KEY_SIZE_ERROR_1: + *os << "KEY_SIZE_ERROR_1"; + break; + case KEY_SIZE_ERROR_2: + *os << "KEY_SIZE_ERROR_2"; + break; case LICENSE_ID_NOT_FOUND: *os << "LICENSE_ID_NOT_FOUND"; break; @@ -265,6 +497,18 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case LICENSE_PARSER_NOT_INITIALIZED_3: *os << "LICENSE_PARSER_NOT_INITIALIZED_3"; break; + case LICENSE_PARSER_NOT_INITIALIZED_4: + *os << "LICENSE_PARSER_NOT_INITIALIZED_4"; + break; + case LICENSE_RENEWAL_NONCE_GENERATION_ERROR: + *os << "LICENSE_RENEWAL_NONCE_GENERATION_ERROR"; + break; + case LICENSE_RENEWAL_PROHIBITED: + *os << "LICENSE_RENEWAL_PROHIBITED"; + break; + case LICENSE_REQUEST_NONCE_GENERATION_ERROR: + *os << "LICENSE_REQUEST_NONCE_GENERATION_ERROR"; + break; case LICENSE_RESPONSE_NOT_SIGNED: *os << "LICENSE_RESPONSE_NOT_SIGNED"; break; @@ -277,29 +521,152 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case LICENSE_RESPONSE_PARSE_ERROR_3: *os << "LICENSE_RESPONSE_PARSE_ERROR_3"; break; + case LICENSE_RESPONSE_PARSE_ERROR_4: + *os << "LICENSE_RESPONSE_PARSE_ERROR_4"; + break; + case LICENSE_RESPONSE_PARSE_ERROR_5: + *os << "LICENSE_RESPONSE_PARSE_ERROR_5"; + break; + case LIST_LICENSE_ERROR_1: + *os << "LIST_LICENSE_ERROR_1"; + break; + case LIST_LICENSE_ERROR_2: + *os << "LIST_LICENSE_ERROR_2"; + break; + case LIST_USAGE_ERROR_1: + *os << "LIST_USAGE_ERROR_1"; + break; + case LIST_USAGE_ERROR_2: + *os << "LIST_USAGE_ERROR_2"; + break; + case LOAD_DEVICE_RSA_KEY_ERROR: + *os << "LOAD_DEVICE_RSA_KEY_ERROR"; + break; + case LOAD_ENTITLED_CONTENT_KEYS_ERROR: + *os << "LOAD_ENTITLED_CONTENT_KEYS_ERROR"; + break; case LOAD_KEY_ERROR: *os << "LOAD_KEY_ERROR"; break; + case LOAD_SRM_ERROR: + *os << "LOAD_SRM_ERROR"; + break; + case LOAD_SYSTEM_ID_ERROR: + *os << "LOAD_SYSTEM_ID_ERROR"; + break; + case LOAD_USAGE_ENTRY_GENERATION_SKEW: + *os << "LOAD_USAGE_ENTRY_GENERATION_SKEW"; + break; + case LOAD_USAGE_ENTRY_SIGNATURE_FAILURE: + *os << "LOAD_USAGE_ENTRY_SIGNATURE_FAILURE"; + break; + case LOAD_USAGE_ENTRY_UNKNOWN_ERROR: + *os << "LOAD_USAGE_ENTRY_UNKNOWN_ERROR"; + break; + case LOAD_USAGE_HEADER_BAD_MAGIC: + *os << "LOAD_USAGE_HEADER_BAD_MAGIC"; + break; + case LOAD_USAGE_HEADER_GENERATION_SKEW: + *os << "LOAD_USAGE_HEADER_GENERATION_SKEW"; + break; + case LOAD_USAGE_HEADER_SIGNATURE_FAILURE: + *os << "LOAD_USAGE_HEADER_SIGNATURE_FAILURE"; + break; + case LOAD_USAGE_HEADER_UNKNOWN_ERROR: + *os << "LOAD_USAGE_HEADER_UNKNOWN_ERROR"; + break; + case MOVE_USAGE_ENTRY_UNKNOWN_ERROR: + *os << "MOVE_USAGE_ENTRY_UNKNOWN_ERROR"; + break; + case NEED_KEY: + *os << "NEED_KEY"; + break; + case NEED_PROVISIONING: + *os << "NEED_PROVISIONING"; + break; case NO_CONTENT_KEY: *os << "NO_CONTENT_KEY"; break; + case NO_CONTENT_KEY_2: + *os << "NO_CONTENT_KEY_2"; + break; + case NO_CONTENT_KEY_3: + *os << "NO_CONTENT_KEY_3"; + break; + case NO_DEVICE_KEY_1: + *os << "NO_DEVICE_KEY_1"; + break; + case NO_MATCHING_ENTITLEMENT_KEY: + *os << "NO_MATCHING_ENTITLEMENT_KEY"; + break; + case NONCE_GENERATION_ERROR: + *os << "NONCE_GENERATION_ERROR"; + break; + case NOT_AN_ENTITLEMENT_SESSION: + *os << "NOT_AN_ENTITLEMENT_SESSION"; + break; + case NOT_IMPLEMENTED_ERROR: + *os << "NOT_IMPLEMENTED_ERROR"; + break; + case NOT_INITIALIZED_ERROR: + *os << "NOT_INITIALIZED_ERROR"; + break; + case NO_USAGE_ENTRIES: + *os << "NO_USAGE_ENTRIES"; + break; + case OPEN_CRYPTO_SESSION_ERROR: + *os << "OPEN_CRYPTO_SESSION_ERROR"; + break; + case OUTPUT_TOO_LARGE_ERROR: + *os << "OUTPUT_TOO_LARGE_ERROR"; + break; + case PARAMETER_NULL: + *os << "PARAMETER_NULL"; + break; + case PARSE_REQUEST_ERROR_1: + *os << "PARSE_REQUEST_ERROR_1"; + break; + case PARSE_REQUEST_ERROR_2: + *os << "PARSE_REQUEST_ERROR_2"; + break; + case PARSE_RESPONSE_ERROR_1: + *os << "PARSE_RESPONSE_ERROR_1"; + break; + case PARSE_RESPONSE_ERROR_2: + *os << "PARSE_RESPONSE_ERROR_2"; + break; + case PARSE_RESPONSE_ERROR_3: + *os << "PARSE_RESPONSE_ERROR_3"; + break; + case PARSE_RESPONSE_ERROR_4: + *os << "PARSE_RESPONSE_ERROR_4"; + break; + case PARSE_SERVICE_CERTIFICATE_ERROR: + *os << "PARSE_SERVICE_CERTIFICATE_ERROR"; + break; + case PREPARE_CENC_CONTENT_ID_FAILED: + *os << "PREPARE_CENC_CONTENT_ID_FAILED"; + break; + case PREPARE_WEBM_CONTENT_ID_FAILED: + *os << "PREPARE_WEBM_CONTENT_ID_FAILED"; + break; + case PRIVACY_MODE_ERROR_1: + *os << "PRIVACY_MODE_ERROR_1"; + break; + case PRIVACY_MODE_ERROR_2: + *os << "PRIVACY_MODE_ERROR_2"; + break; + case PRIVACY_MODE_ERROR_3: + *os << "PRIVACY_MODE_ERROR_3"; + break; + case RANDOM_GENERATION_ERROR: + *os << "RANDOM_GENERATION_ERROR"; + break; case REFRESH_KEYS_ERROR: *os << "REFRESH_KEYS_ERROR"; break; - case REMOVE_ALL_USAGE_INFO_ERROR_1: - *os << "REMOVE_ALL_USAGE_INFO_ERROR_1"; - break; - case REMOVE_ALL_USAGE_INFO_ERROR_2: - *os << "REMOVE_ALL_USAGE_INFO_ERROR_2"; - break; - case REMOVE_ALL_USAGE_INFO_ERROR_5: - *os << "REMOVE_ALL_USAGE_INFO_ERROR_5"; - break; - case REMOVE_ALL_USAGE_INFO_ERROR_6: - *os << "REMOVE_ALL_USAGE_INFO_ERROR_6"; - break; - case REMOVE_ALL_USAGE_INFO_ERROR_7: - *os << "REMOVE_ALL_USAGE_INFO_ERROR_7"; + case REINIT_ERROR: + *os << "REINIT_ERROR"; break; case RELEASE_KEY_ERROR: *os << "RELEASE_KEY_ERROR"; @@ -316,6 +683,39 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case RELEASE_USAGE_INFO_ERROR: *os << "RELEASE_USAGE_INFO_ERROR"; break; + case RELEASE_USAGE_INFO_FAILED: + *os << "RELEASE_USAGE_INFO_FAILED"; + break; + case REMOVE_ALL_USAGE_INFO_ERROR_1: + *os << "REMOVE_ALL_USAGE_INFO_ERROR_1"; + break; + case REMOVE_ALL_USAGE_INFO_ERROR_2: + *os << "REMOVE_ALL_USAGE_INFO_ERROR_2"; + break; + case REMOVE_ALL_USAGE_INFO_ERROR_5: + *os << "REMOVE_ALL_USAGE_INFO_ERROR_5"; + break; + case REMOVE_ALL_USAGE_INFO_ERROR_6: + *os << "REMOVE_ALL_USAGE_INFO_ERROR_6"; + break; + case REMOVE_ALL_USAGE_INFO_ERROR_7: + *os << "REMOVE_ALL_USAGE_INFO_ERROR_7"; + break; + case REMOVE_OFFLINE_LICENSE_ERROR_1: + *os << "REMOVE_OFFLINE_LICENSE_ERROR_1"; + break; + case REMOVE_OFFLINE_LICENSE_ERROR_2: + *os << "REMOVE_OFFLINE_LICENSE_ERROR_2"; + break; + case REMOVE_USAGE_INFO_ERROR_1: + *os << "REMOVE_USAGE_INFO_ERROR_1"; + break; + case REMOVE_USAGE_INFO_ERROR_2: + *os << "REMOVE_USAGE_INFO_ERROR_2"; + break; + case REMOVE_USAGE_INFO_ERROR_3: + *os << "REMOVE_USAGE_INFO_ERROR_3"; + break; case RENEW_KEY_ERROR_1: *os << "RENEW_KEY_ERROR_1"; break; @@ -325,6 +725,30 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case RESTORE_OFFLINE_LICENSE_ERROR_2: *os << "RESTORE_OFFLINE_LICENSE_ERROR_2"; break; + case REWRAP_DEVICE_RSA_KEY_30_ERROR: + *os << "REWRAP_DEVICE_RSA_KEY_30_ERROR"; + break; + case REWRAP_DEVICE_RSA_KEY_ERROR: + *os << "REWRAP_DEVICE_RSA_KEY_ERROR"; + break; + case RSA_SIGNATURE_GENERATION_ERROR: + *os << "RSA_SIGNATURE_GENERATION_ERROR"; + break; + case SERVICE_CERTIFICATE_PROVIDER_ID_EMPTY: + *os << "SERVICE_CERTIFICATE_PROVIDER_ID_EMPTY"; + break; + case SESSION_FILE_HANDLE_INIT_ERROR: + *os << "SESSION_FILE_HANDLE_INIT_ERROR"; + break; + case SESSION_KEYS_NOT_FOUND: + *os << "SESSION_KEYS_NOT_FOUND"; + break; + case SESSION_KEYS_NOT_FOUND_2: + *os << "SESSION_KEYS_NOT_FOUND_2"; + break; + case SESSION_LOST_STATE_ERROR: + *os << "SESSION_LOST_STATE_ERROR"; + break; case SESSION_NOT_FOUND_1: *os << "SESSION_NOT_FOUND_1"; break; @@ -355,15 +779,54 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case SESSION_NOT_FOUND_10: *os << "SESSION_NOT_FOUND_10"; break; + case SESSION_NOT_FOUND_12: + *os << "SESSION_NOT_FOUND_12"; + break; + case SESSION_NOT_FOUND_13: + *os << "SESSION_NOT_FOUND_13"; + break; + case SESSION_NOT_FOUND_14: + *os << "SESSION_NOT_FOUND_14"; + break; + case SESSION_NOT_FOUND_15: + *os << "SESSION_NOT_FOUND_15"; + break; + case SESSION_NOT_FOUND_16: + *os << "SESSION_NOT_FOUND_16"; + break; + case SESSION_NOT_FOUND_17: + *os << "SESSION_NOT_FOUND_17"; + break; + case SESSION_NOT_FOUND_18: + *os << "SESSION_NOT_FOUND_18"; + break; + case SESSION_NOT_FOUND_19: + *os << "SESSION_NOT_FOUND_19"; + break; + case SESSION_NOT_FOUND_20: + *os << "SESSION_NOT_FOUND_20"; + break; + case SESSION_NOT_FOUND_21: + *os << "SESSION_NOT_FOUND_21"; + break; + case SESSION_NOT_FOUND_22: + *os << "SESSION_NOT_FOUND_22"; + break; case SESSION_NOT_FOUND_FOR_DECRYPT: *os << "SESSION_NOT_FOUND_FOR_DECRYPT"; break; - case SESSION_KEYS_NOT_FOUND: - *os << "SESSION_KEYS_NOT_FOUND"; + case SET_DECRYPT_HASH_ERROR: + *os << "SET_DECRYPT_HASH_ERROR"; + break; + case SHRINK_USAGE_TABLER_HEADER_UNKNOWN_ERROR: + *os << "SHRINK_USAGE_TABLER_HEADER_UNKNOWN_ERROR"; break; case SIGNATURE_NOT_FOUND: *os << "SIGNATURE_NOT_FOUND"; break; + case SIGNATURE_NOT_FOUND_2: + *os << "SIGNATURE_NOT_FOUND_2"; + break; case STORE_LICENSE_ERROR_1: *os << "STORE_LICENSE_ERROR_1"; break; @@ -373,6 +836,21 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case STORE_USAGE_INFO_ERROR: *os << "STORE_USAGE_INFO_ERROR"; break; + case SYSTEM_INVALIDATED_ERROR: + *os << "SYSTEM_INVALIDATED_ERROR"; + break; + case UNEXPECTED_EMPTY_USAGE_ENTRY: + *os << "UNEXPECTED_EMPTY_USAGE_ENTRY"; + break; + case UNKNOWN_CLIENT_TOKEN_TYPE: + *os << "UNKNOWN_CLIENT_TOKEN_TYPE"; + break; + case UNKNOWN_SELECT_KEY_ERROR_1: + *os << "UNKNOWN_SELECT_KEY_ERROR_1"; + break; + case UNKNOWN_SELECT_KEY_ERROR_2: + *os << "UNKNOWN_SELECT_KEY_ERROR_2"; + break; case UNPROVISION_ERROR_1: *os << "UNPROVISION_ERROR_1"; break; @@ -388,245 +866,17 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case UNSUPPORTED_INIT_DATA: *os << "UNSUPPORTED_INIT_DATA"; break; - case USAGE_INFO_NOT_FOUND: - *os << "USAGE_INFO_NOT_FOUND"; - break; - case EMPTY_PROVISIONING_CERTIFICATE_2: - *os << "EMPTY_PROVISIONING_CERTIFICATE_2"; - break; - case PARSE_SERVICE_CERTIFICATE_ERROR: - *os << "PARSE_SERVICE_CERTIFICATE_ERROR"; - break; - case CLIENT_ID_GENERATE_RANDOM_ERROR: - *os << "CLIENT_ID_GENERATE_RANDOM_ERROR"; - break; - case CLIENT_ID_AES_INIT_ERROR: - *os << "CLIENT_ID_AES_INIT_ERROR"; - break; - case CLIENT_ID_AES_ENCRYPT_ERROR: - *os << "CLIENT_ID_AES_ENCRYPT_ERROR"; - break; - case CLIENT_ID_RSA_INIT_ERROR: - *os << "CLIENT_ID_RSA_INIT_ERROR"; - break; - case CLIENT_ID_RSA_ENCRYPT_ERROR: - *os << "CLIENT_ID_RSA_ENCRYPT_ERROR"; - break; - case LICENSE_PARSER_NOT_INITIALIZED_4: - *os << "LICENSE_PARSER_NOT_INITIALIZED_4"; - break; - case INVALID_PARAMETERS_LIC_3: - *os << "INVALID_PARAMETERS_LIC_3"; - break; - case INVALID_PARAMETERS_LIC_4: - *os << "INVALID_PARAMETERS_LIC_4"; - break; - case INVALID_PARAMETERS_LIC_6: - *os << "INVALID_PARAMETERS_LIC_6"; - break; - case INVALID_PARAMETERS_LIC_7: - *os << "INVALID_PARAMETERS_LIC_7"; - break; - case CENC_INIT_DATA_UNAVAILABLE: - *os << "CENC_INIT_DATA_UNAVAILABLE"; - break; - case PREPARE_CENC_CONTENT_ID_FAILED: - *os << "PREPARE_CENC_CONTENT_ID_FAILED"; - break; - case WEBM_INIT_DATA_UNAVAILABLE: - *os << "WEBM_INIT_DATA_UNAVAILABLE"; - break; - case PREPARE_WEBM_CONTENT_ID_FAILED: - *os << "PREPARE_WEBM_CONTENT_ID_FAILED"; - break; case UNSUPPORTED_INIT_DATA_FORMAT: *os << "UNSUPPORTED_INIT_DATA_FORMAT"; break; - case LICENSE_REQUEST_NONCE_GENERATION_ERROR: - *os << "LICENSE_REQUEST_NONCE_GENERATION_ERROR"; - break; - case EMPTY_LICENSE_REQUEST: - *os << "EMPTY_LICENSE_REQUEST"; - break; - case DUPLICATE_SESSION_ID_SPECIFIED: - *os << "DUPLICATE_SESSION_ID_SPECIFIED"; - break; - case LICENSE_RENEWAL_PROHIBITED: - *os << "LICENSE_RENEWAL_PROHIBITED"; - break; - case SESSION_FILE_HANDLE_INIT_ERROR: - *os << "SESSION_FILE_HANDLE_INIT_ERROR"; - break; - case INCORRECT_CRYPTO_MODE: - *os << "INCORRECT_CRYPTO_MODE"; - break; - case INVALID_PARAMETERS_ENG_5: - *os << "INVALID_PARAMETERS_ENG_5"; - break; - case DECRYPT_ERROR: - *os << "DECRYPT_ERROR"; - break; - case INSUFFICIENT_OUTPUT_PROTECTION: - *os << "INSUFFICIENT_OUTPUT_PROTECTION"; - break; - case SESSION_NOT_FOUND_12: - *os << "SESSION_NOT_FOUND_12"; - break; - case KEY_NOT_FOUND_1: - *os << "KEY_NOT_FOUND_1"; - break; - case KEY_NOT_FOUND_2: - *os << "KEY_NOT_FOUND_2"; - break; - case KEY_CONFLICT_1: - *os << "KEY_CONFLICT_1"; - break; - case SESSION_NOT_FOUND_13: - *os << "SESSION_NOT_FOUND_13"; - break; - case SESSION_NOT_FOUND_14: - *os << "SESSION_NOT_FOUND_14"; - break; - case SESSION_NOT_FOUND_15: - *os << "SESSION_NOT_FOUND_15"; - break; - case SESSION_NOT_FOUND_16: - *os << "SESSION_NOT_FOUND_16"; - break; - case KEY_NOT_FOUND_3: - *os << "KEY_NOT_FOUND_3"; - break; - case KEY_NOT_FOUND_4: - *os << "KEY_NOT_FOUND_4"; - break; - case KEY_NOT_FOUND_5: - *os << "KEY_NOT_FOUND_5"; - break; - case KEY_NOT_FOUND_6: - *os << "KEY_NOT_FOUND_6"; - break; - case INVALID_SESSION_1: - *os << "INVALID_SESSION_1"; - break; - case NO_DEVICE_KEY_1: - *os << "NO_DEVICE_KEY_1"; - break; - case NO_CONTENT_KEY_2: - *os << "NO_CONTENT_KEY_2"; - break; - case NO_CONTENT_KEY_3: - *os << "NO_CONTENT_KEY_3"; - break; - case INSUFFICIENT_CRYPTO_RESOURCES_2: - *os << "INSUFFICIENT_CRYPTO_RESOURCES_2"; - break; - case INVALID_PARAMETERS_ENG_13: - *os << "INVALID_PARAMETERS_ENG_13"; - break; - case INVALID_PARAMETERS_ENG_14: - *os << "INVALID_PARAMETERS_ENG_14"; - break; - case INVALID_PARAMETERS_ENG_15: - *os << "INVALID_PARAMETERS_ENG_15"; - break; - case INVALID_PARAMETERS_ENG_16: - *os << "INVALID_PARAMETERS_ENG_16"; - break; - case INVALID_PARAMETERS_ENG_17: - *os << "INVALID_PARAMETERS_ENG_17"; - break; - case INVALID_PARAMETERS_ENG_18: - *os << "INVALID_PARAMETERS_ENG_18"; - break; - case INVALID_PARAMETERS_ENG_19: - *os << "INVALID_PARAMETERS_ENG_19"; - break; - case CLIENT_IDENTIFICATION_TOKEN_ERROR_1: - *os << "CLIENT_IDENTIFICATION_TOKEN_ERROR_1"; - break; - case ANALOG_OUTPUT_ERROR: - *os << "ANALOG_OUTPUT_ERROR"; - break; - case UNKNOWN_SELECT_KEY_ERROR_1: - *os << "UNKNOWN_SELECT_KEY_ERROR_1"; - break; - case UNKNOWN_SELECT_KEY_ERROR_2: - *os << "UNKNOWN_SELECT_KEY_ERROR_2"; - break; - case CREATE_USAGE_TABLE_ERROR: - *os << "CREATE_USAGE_TABLE_ERROR"; - break; - case LOAD_USAGE_HEADER_GENERATION_SKEW: - *os << "LOAD_USAGE_HEADER_GENERATION_SKEW"; - break; - case LOAD_USAGE_HEADER_SIGNATURE_FAILURE: - *os << "LOAD_USAGE_HEADER_SIGNATURE_FAILURE"; - break; - case LOAD_USAGE_HEADER_BAD_MAGIC: - *os << "LOAD_USAGE_HEADER_BAD_MAGIC"; - break; - case LOAD_USAGE_HEADER_UNKNOWN_ERROR: - *os << "LOAD_USAGE_HEADER_UNKNOWN_ERROR"; - break; - case INSUFFICIENT_CRYPTO_RESOURCES_3: - *os << "INSUFFICIENT_CRYPTO_RESOURCES_3"; - break; - case CREATE_USAGE_ENTRY_UNKNOWN_ERROR: - *os << "CREATE_USAGE_ENTRY_UNKNOWN_ERROR"; - break; - case LOAD_USAGE_ENTRY_GENERATION_SKEW: - *os << "LOAD_USAGE_ENTRY_GENERATION_SKEW"; - break; - case LOAD_USAGE_ENTRY_SIGNATURE_FAILURE: - *os << "LOAD_USAGE_ENTRY_SIGNATURE_FAILURE"; - break; - case LOAD_USAGE_ENTRY_UNKNOWN_ERROR: - *os << "LOAD_USAGE_ENTRY_UNKNOWN_ERROR"; - break; - case INVALID_PARAMETERS_ENG_20: - *os << "INVALID_PARAMETERS_ENG_20"; - break; case UPDATE_USAGE_ENTRY_UNKNOWN_ERROR: *os << "UPDATE_USAGE_ENTRY_UNKNOWN_ERROR"; break; - case INVALID_PARAMETERS_ENG_21: - *os << "INVALID_PARAMETERS_ENG_21"; + case USAGE_ENTRY_NUMBER_MISMATCH: + *os << "USAGE_ENTRY_NUMBER_MISMATCH"; break; - case INVALID_PARAMETERS_ENG_22: - *os << "INVALID_PARAMETERS_ENG_22"; - break; - case SHRINK_USAGE_TABLER_HEADER_UNKNOWN_ERROR: - *os << "SHRINK_USAGE_TABLER_HEADER_UNKNOWN_ERROR"; - break; - case MOVE_USAGE_ENTRY_UNKNOWN_ERROR: - *os << "MOVE_USAGE_ENTRY_UNKNOWN_ERROR"; - break; - case COPY_OLD_USAGE_ENTRY_UNKNOWN_ERROR: - *os << "COPY_OLD_USAGE_ENTRY_UNKNOWN_ERROR"; - break; - case INVALID_PARAMETERS_ENG_23: - *os << "INVALID_PARAMETERS_ENG_23"; - break; - case INVALID_PARAMETERS_ENG_24: - *os << "INVALID_PARAMETERS_ENG_24"; - break; - case USAGE_INFORMATION_SUPPORT_FAILED: - *os << "USAGE_INFORMATION_SUPPORT_FAILED"; - break; - case USAGE_SUPPORT_GET_API_FAILED: - *os << "USAGE_SUPPORT_GET_API_FAILED"; - break; - case UNEXPECTED_EMPTY_USAGE_ENTRY: - *os << "UNEXPECTED_EMPTY_USAGE_ENTRY"; - break; - case INVALID_USAGE_ENTRY_NUMBER_MODIFICATION: - *os << "INVALID_USAGE_ENTRY_NUMBER_MODIFICATION"; - break; - case USAGE_INVALID_NEW_ENTRY: - *os << "USAGE_INVALID_NEW_ENTRY"; - break; - case USAGE_INVALID_PARAMETERS_1: - *os << "USAGE_INVALID_PARAMETERS_1"; + case USAGE_GET_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE: + *os << "USAGE_GET_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE"; break; case USAGE_GET_ENTRY_RETRIEVE_LICENSE_FAILED: *os << "USAGE_GET_ENTRY_RETRIEVE_LICENSE_FAILED"; @@ -634,83 +884,23 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case USAGE_GET_ENTRY_RETRIEVE_USAGE_INFO_FAILED: *os << "USAGE_GET_ENTRY_RETRIEVE_USAGE_INFO_FAILED"; break; - case USAGE_GET_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE: - *os << "USAGE_GET_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE"; + case USAGE_INFO_NOT_FOUND: + *os << "USAGE_INFO_NOT_FOUND"; break; - case USAGE_ENTRY_NUMBER_MISMATCH: - *os << "USAGE_ENTRY_NUMBER_MISMATCH"; - break; - case USAGE_STORE_LICENSE_FAILED: - *os << "USAGE_STORE_LICENSE_FAILED"; - break; - case USAGE_STORE_USAGE_INFO_FAILED: - *os << "USAGE_STORE_USAGE_INFO_FAILED"; + case USAGE_INFORMATION_SUPPORT_FAILED: + *os << "USAGE_INFORMATION_SUPPORT_FAILED"; break; case USAGE_INVALID_LOAD_ENTRY: *os << "USAGE_INVALID_LOAD_ENTRY"; break; - case RELEASE_USAGE_INFO_FAILED: - *os << "RELEASE_USAGE_INFO_FAILED"; + case USAGE_INVALID_NEW_ENTRY: + *os << "USAGE_INVALID_NEW_ENTRY"; break; - case INCORRECT_USAGE_SUPPORT_TYPE_1: - *os << "INCORRECT_USAGE_SUPPORT_TYPE_1"; + case USAGE_INVALID_PARAMETERS_1: + *os << "USAGE_INVALID_PARAMETERS_1"; break; - case INCORRECT_USAGE_SUPPORT_TYPE_2: - *os << "INCORRECT_USAGE_SUPPORT_TYPE_2"; - break; - case KEY_PROHIBITED_FOR_SECURITY_LEVEL: - *os << "KEY_PROHIBITED_FOR_SECURITY_LEVEL"; - break; - case KEY_NOT_FOUND_IN_SESSION: - *os << "KEY_NOT_FOUND_IN_SESSION"; - break; - case NO_USAGE_ENTRIES: - *os << "NO_USAGE_ENTRIES"; - break; - case LIST_LICENSE_ERROR_1: - *os << "LIST_LICENSE_ERROR_1"; - break; - case LIST_LICENSE_ERROR_2: - *os << "LIST_LICENSE_ERROR_2"; - break; - case LIST_USAGE_ERROR_1: - *os << "LIST_USAGE_ERROR_1"; - break; - case LIST_USAGE_ERROR_2: - *os << "LIST_USAGE_ERROR_2"; - break; - case DELETE_USAGE_ERROR_1: - *os << "DELETE_USAGE_ERROR_1"; - break; - case DELETE_USAGE_ERROR_2: - *os << "DELETE_USAGE_ERROR_2"; - break; - case DELETE_USAGE_ERROR_3: - *os << "DELETE_USAGE_ERROR_3"; - break; - case PRIVACY_MODE_ERROR_1: - *os << "PRIVACY_MODE_ERROR_1"; - break; - case PRIVACY_MODE_ERROR_2: - *os << "PRIVACY_MODE_ERROR_2"; - break; - case PRIVACY_MODE_ERROR_3: - *os << "PRIVACY_MODE_ERROR_3"; - break; - case EMPTY_RESPONSE_ERROR_1: - *os << "EMPTY_RESPONSE_ERROR_1"; - break; - case PARSE_RESPONSE_ERROR_1: - *os << "PARSE_RESPONSE_ERROR_1"; - break; - case PARSE_RESPONSE_ERROR_2: - *os << "PARSE_RESPONSE_ERROR_2"; - break; - case PARSE_RESPONSE_ERROR_3: - *os << "PARSE_RESPONSE_ERROR_3"; - break; - case PARSE_RESPONSE_ERROR_4: - *os << "PARSE_RESPONSE_ERROR_4"; + case USAGE_STORE_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE: + *os << "USAGE_STORE_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE"; break; case USAGE_STORE_ENTRY_RETRIEVE_LICENSE_FAILED: *os << "USAGE_STORE_ENTRY_RETRIEVE_LICENSE_FAILED"; @@ -718,206 +908,17 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) { case USAGE_STORE_ENTRY_RETRIEVE_USAGE_INFO_FAILED: *os << "USAGE_STORE_ENTRY_RETRIEVE_USAGE_INFO_FAILED"; break; - case USAGE_STORE_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE: - *os << "USAGE_STORE_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE"; + case USAGE_STORE_LICENSE_FAILED: + *os << "USAGE_STORE_LICENSE_FAILED"; break; - case CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE: - *os << "CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE"; + case USAGE_STORE_USAGE_INFO_FAILED: + *os << "USAGE_STORE_USAGE_INFO_FAILED"; break; - case LOAD_SYSTEM_ID_ERROR: - *os << "LOAD_SYSTEM_ID_ERROR"; + case USAGE_SUPPORT_GET_API_FAILED: + *os << "USAGE_SUPPORT_GET_API_FAILED"; break; - case INSUFFICIENT_CRYPTO_RESOURCES_4: - *os << "INSUFFICIENT_CRYPTO_RESOURCES_4"; - break; - case INSUFFICIENT_CRYPTO_RESOURCES_5: - *os << "INSUFFICIENT_CRYPTO_RESOURCES_5"; - break; - case REMOVE_USAGE_INFO_ERROR_1: - *os << "REMOVE_USAGE_INFO_ERROR_1"; - break; - case REMOVE_USAGE_INFO_ERROR_2: - *os << "REMOVE_USAGE_INFO_ERROR_2"; - break; - case REMOVE_USAGE_INFO_ERROR_3: - *os << "REMOVE_USAGE_INFO_ERROR_3"; - break; - case INSUFFICIENT_CRYPTO_RESOURCES_6: - *os << "INSUFFICIENT_CRYPTO_RESOURCES_6"; - break; - case NOT_AN_ENTITLEMENT_SESSION: - *os << "NOT_AN_ENTITLEMENT_SESSION"; - break; - case NO_MATCHING_ENTITLEMENT_KEY: - *os << "NO_MATCHING_ENTITLEMENT_KEY"; - break; - case LOAD_ENTITLED_CONTENT_KEYS_ERROR: - *os << "LOAD_ENTITLED_CONTENT_KEYS_ERROR"; - break; - case GET_PROVISIONING_METHOD_ERROR: - *os << "GET_PROVISIONING_METHOD_ERROR"; - break; - case SESSION_NOT_FOUND_17: - *os << "SESSION_NOT_FOUND_17"; - break; - case SESSION_NOT_FOUND_18: - *os << "SESSION_NOT_FOUND_18"; - break; - case SESSION_NOT_FOUND_19: - *os << "SESSION_NOT_FOUND_19"; - break; - case DEVICE_CANNOT_REPROVISION: - *os << "DEVICE_CANNOT_REPROVISION"; - break; - case SET_DECRYPT_HASH_ERROR: - *os << "SET_DECRYPT_HASH_ERROR"; - break; - case GET_DECRYPT_HASH_ERROR: - *os << "GET_DECRYPT_HASH_ERROR"; - break; - case SESSION_NOT_FOUND_20: - *os << "SESSION_NOT_FOUND_20"; - break; - case SESSION_NOT_FOUND_21: - *os << "SESSION_NOT_FOUND_21"; - break; - case SESSION_NOT_FOUND_22: - *os << "SESSION_NOT_FOUND_22"; - break; - case INVALID_DECRYPT_HASH_FORMAT: - *os << "INVALID_DECRYPT_HASH_FORMAT"; - break; - case EMPTY_LICENSE_REQUEST_2: - *os << "EMPTY_LICENSE_REQUEST_2"; - break; - case EMPTY_LICENSE_REQUEST_3: - *os << "EMPTY_LICENSE_REQUEST_3"; - break; - case EMPTY_LICENSE_RESPONSE_3: - *os << "EMPTY_LICENSE_RESPONSE_3"; - break; - case EMPTY_LICENSE_RESPONSE_4: - *os << "EMPTY_LICENSE_RESPONSE_4"; - break; - case PARSE_REQUEST_ERROR_1: - *os << "PARSE_REQUEST_ERROR_1"; - break; - case PARSE_REQUEST_ERROR_2: - *os << "PARSE_REQUEST_ERROR_2"; - break; - case INVALID_LICENSE_REQUEST_TYPE_1: - *os << "INVALID_LICENSE_REQUEST_TYPE_1"; - break; - case INVALID_LICENSE_REQUEST_TYPE_2: - *os << "INVALID_LICENSE_REQUEST_TYPE_2"; - break; - case LICENSE_RESPONSE_PARSE_ERROR_4: - *os << "LICENSE_RESPONSE_PARSE_ERROR_4"; - break; - case LICENSE_RESPONSE_PARSE_ERROR_5: - *os << "LICENSE_RESPONSE_PARSE_ERROR_5"; - break; - case INVALID_LICENSE_TYPE_2: - *os << "INVALID_LICENSE_TYPE_2"; - break; - case SIGNATURE_NOT_FOUND_2: - *os << "SIGNATURE_NOT_FOUND_2"; - break; - case SESSION_KEYS_NOT_FOUND_2: - *os << "SESSION_KEYS_NOT_FOUND_2"; - break; - case REMOVE_OFFLINE_LICENSE_ERROR_1: - *os << "REMOVE_OFFLINE_LICENSE_ERROR_1"; - break; - case REMOVE_OFFLINE_LICENSE_ERROR_2: - *os << "REMOVE_OFFLINE_LICENSE_ERROR_2"; - break; - case OUTPUT_TOO_LARGE_ERROR: - *os << "OUTPUT_TOO_LARGE_ERROR"; - break; - case SESSION_LOST_STATE_ERROR: - *os << "SESSION_LOST_STATE_ERROR"; - break; - case GENERATE_DERIVED_KEYS_ERROR_2: - *os << "GENERATE_DERIVED_KEYS_ERROR_2"; - break; - case LOAD_DEVICE_RSA_KEY_ERROR: - *os << "LOAD_DEVICE_RSA_KEY_ERROR"; - break; - case NONCE_GENERATION_ERROR: - *os << "NONCE_GENERATION_ERROR"; - break; - case GENERATE_SIGNATURE_ERROR: - *os << "GENERATE_SIGNATURE_ERROR"; - break; - case UNKNOWN_CLIENT_TOKEN_TYPE: - *os << "UNKNOWN_CLIENT_TOKEN_TYPE"; - break; - case DEACTIVATE_USAGE_ENTRY_ERROR: - *os << "DEACTIVATE_USAGE_ENTRY_ERROR"; - break; - case SYSTEM_INVALIDATED_ERROR: - *os << "SYSTEM_INVALIDATED_ERROR"; - break; - case OPEN_CRYPTO_SESSION_ERROR: - *os << "OPEN_CRYPTO_SESSION_ERROR"; - break; - case LOAD_SRM_ERROR: - *os << "LOAD_SRM_ERROR"; - break; - case RANDOM_GENERATION_ERROR: - *os << "RANDOM_GENERATION_ERROR"; - break; - case CRYPTO_SESSION_NOT_INITIALIZED: - *os << "CRYPTO_SESSION_NOT_INITIALIZED"; - break; - case GET_DEVICE_ID_ERROR: - *os << "GET_DEVICE_ID_ERROR"; - break; - case GET_TOKEN_FROM_OEM_CERT_ERROR: - *os << "GET_TOKEN_FROM_OEM_CERT_ERROR"; - break; - case CRYPTO_SESSION_NOT_OPEN: - *os << "CRYPTO_SESSION_NOT_OPEN"; - break; - case GET_TOKEN_FROM_KEYBOX_ERROR: - *os << "GET_TOKEN_FROM_KEYBOX_ERROR"; - break; - case KEYBOX_TOKEN_TOO_SHORT: - *os << "KEYBOX_TOKEN_TOO_SHORT"; - break; - case EXTRACT_SYSTEM_ID_FROM_OEM_CERT_ERROR: - *os << "EXTRACT_SYSTEM_ID_FROM_OEM_CERT_ERROR"; - break; - case RSA_SIGNATURE_GENERATION_ERROR: - *os << "RSA_SIGNATURE_GENERATION_ERROR"; - break; - case GET_HDCP_CAPABILITY_FAILED: - *os << "GET_HDCP_CAPABILITY_FAILED"; - break; - case GET_NUMBER_OF_OPEN_SESSIONS_ERROR: - *os << "GET_NUMBER_OF_OPEN_SESSIONS_ERROR"; - break; - case GET_MAX_NUMBER_OF_OPEN_SESSIONS_ERROR: - *os << "GET_MAX_NUMBER_OF_OPEN_SESSIONS_ERROR"; - break; - case NOT_IMPLEMENTED_ERROR: - *os << "NOT_IMPLEMENTED_ERROR"; - break; - case GET_SRM_VERSION_ERROR: - *os << "GET_SRM_VERSION_ERROR"; - break; - case REWRAP_DEVICE_RSA_KEY_ERROR: - *os << "REWRAP_DEVICE_RSA_KEY_ERROR"; - break; - case REWRAP_DEVICE_RSA_KEY_30_ERROR: - *os << "REWRAP_DEVICE_RSA_KEY_30_ERROR"; - break; - case SERVICE_CERTIFICATE_PROVIDER_ID_EMPTY: - *os << "SERVICE_CERTIFICATE_PROVIDER_ID_EMPTY"; - break; - case INVALID_SRM_LIST: - *os << "INVALID_SRM_LIST"; + case WEBM_INIT_DATA_UNAVAILABLE: + *os << "WEBM_INIT_DATA_UNAVAILABLE"; break; default: *os << "Unknown CdmResponseType"; diff --git a/libwvdrmengine/include/mapErrors-inl.h b/libwvdrmengine/include/mapErrors-inl.h index 02a8d458..f8972daa 100644 --- a/libwvdrmengine/include/mapErrors-inl.h +++ b/libwvdrmengine/include/mapErrors-inl.h @@ -16,6 +16,8 @@ namespace wvdrm { static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) { switch (res) { + // Android return codes. + // This first group is for "android::OK". case wvcdm::NO_ERROR: case wvcdm::KEY_ADDED: case wvcdm::KEY_MESSAGE: @@ -23,28 +25,66 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) { // KEY_ADDED, KEY_MESSAGE, and KEY_CANCELLED are all alternative // success messages for certain CDM methods instead of NO_ERROR. return android::OK; - case wvcdm::NEED_KEY: + // The remaining android::* are alphabetically ordered based on the first + // case condition in the group. + case wvcdm::ANALOG_OUTPUT_ERROR: + case wvcdm::INSUFFICIENT_OUTPUT_PROTECTION: + case wvcdm::KEY_PROHIBITED_FOR_SECURITY_LEVEL: + return android::ERROR_DRM_INSUFFICIENT_OUTPUT_PROTECTION; + case wvcdm::DECRYPT_ERROR: + case wvcdm::SECURE_BUFFER_REQUIRED: + return android::ERROR_DRM_CANNOT_HANDLE; case wvcdm::DECRYPT_NOT_READY: case wvcdm::KEY_NOT_FOUND_IN_SESSION: + case wvcdm::NEED_KEY: case wvcdm::NO_MATCHING_ENTITLEMENT_KEY: case wvcdm::NO_CONTENT_KEY_3: return android::ERROR_DRM_NO_LICENSE; - case wvcdm::NEED_PROVISIONING: - return android::ERROR_DRM_NOT_PROVISIONED; case wvcdm::DEVICE_REVOKED: return android::ERROR_DRM_DEVICE_REVOKED; case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES: return android::ERROR_DRM_RESOURCE_BUSY; + case wvcdm::NEED_PROVISIONING: + return android::ERROR_DRM_NOT_PROVISIONED; + case wvcdm::RELEASE_USAGE_INFO_FAILED: + case wvcdm::RELEASE_USAGE_INFO_ERROR: + return android::ERROR_DRM_TAMPER_DETECTED; + case wvcdm::SESSION_NOT_FOUND_1: + case wvcdm::SESSION_NOT_FOUND_2: + case wvcdm::SESSION_NOT_FOUND_3: + case wvcdm::SESSION_NOT_FOUND_4: + case wvcdm::SESSION_NOT_FOUND_5: + case wvcdm::SESSION_NOT_FOUND_6: + case wvcdm::SESSION_NOT_FOUND_7: + case wvcdm::SESSION_NOT_FOUND_8: + case wvcdm::SESSION_NOT_FOUND_9: + case wvcdm::SESSION_NOT_FOUND_10: + case wvcdm::SESSION_NOT_FOUND_17: + case wvcdm::SESSION_NOT_FOUND_18: + case wvcdm::SESSION_NOT_FOUND_19: + case wvcdm::SESSION_NOT_FOUND_20: + case wvcdm::SESSION_NOT_FOUND_21: + case wvcdm::SESSION_NOT_FOUND_22: + case wvcdm::SESSION_NOT_FOUND_FOR_DECRYPT: + return android::ERROR_DRM_SESSION_NOT_OPENED; + case wvcdm::UNKNOWN_ERROR: + return android::ERROR_DRM_UNKNOWN; + // WV return codes. + // Alphabetically ordered based on the case condition. case wvcdm::ADD_KEY_ERROR: return kAddKeyError; + case wvcdm::CENC_INIT_DATA_UNAVAILABLE: + return kCencInitDataUnavailable; + case wvcdm::CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE: + return kCertProvisioningEmptyServiceCertificate; case wvcdm::CERT_PROVISIONING_GET_KEYBOX_ERROR_1: return kCertProvisioningGetKeyboxError1; case wvcdm::CERT_PROVISIONING_INVALID_CERT_TYPE: return kCertProvisioningInvalidCertType; - case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_1: - return kCertProvisioningRequestError1; case wvcdm::CERT_PROVISIONING_NONCE_GENERATION_ERROR: return kCertProvisioningRequestNonceGenerationError; + case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_1: + return kCertProvisioningRequestError1; case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_4: return kCertProvisioningRequestError4; case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_1: @@ -63,6 +103,32 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) { return kCertProvisioningResponseError7; case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_8: return kCertProvisioningResponseError8; + case wvcdm::CLIENT_IDENTIFICATION_TOKEN_ERROR_1: + return kClientIdentificationTokenError1; + case wvcdm::CLIENT_ID_AES_ENCRYPT_ERROR: + return kClientIdAesEncryptError; + case wvcdm::CLIENT_ID_AES_INIT_ERROR: + return kClientIdAesInitError; + case wvcdm::CLIENT_ID_GENERATE_RANDOM_ERROR: + return kClientIdGenerateRandomError; + case wvcdm::CLIENT_ID_RSA_ENCRYPT_ERROR: + return kClientIdRsaEncryptError; + case wvcdm::CLIENT_ID_RSA_INIT_ERROR: + return kClientIdRsaInitError; + case wvcdm::COPY_OLD_USAGE_ENTRY_UNKNOWN_ERROR: + return kCopyOldUsageEntryUnknownError; + case wvcdm::CREATE_USAGE_ENTRY_UNKNOWN_ERROR: + return kCreateUsageEntryUnknownError; + case wvcdm::CREATE_USAGE_TABLE_ERROR: + return kCreateUsageTableError; + case wvcdm::DELETE_USAGE_ERROR_1: + return kDeleteUsageError1; + case wvcdm::DELETE_USAGE_ERROR_2: + return kDeleteUsageError2; + case wvcdm::DELETE_USAGE_ERROR_3: + return kDeleteUsageError3; + case wvcdm::DEVICE_CANNOT_REPROVISION: + return kDeviceCannotReprovision; case wvcdm::DEVICE_CERTIFICATE_ERROR_1: return kDeviceCertificateError1; case wvcdm::DEVICE_CERTIFICATE_ERROR_2: @@ -71,10 +137,8 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) { 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::DUPLICATE_SESSION_ID_SPECIFIED: + return kDuplicateSessionIdSpecified; case wvcdm::EMPTY_KEYSET_ID: return kEmptyKeySetId; case wvcdm::EMPTY_KEYSET_ID_ENG_1: @@ -85,27 +149,50 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) { return kEmptyKeySetIdEng3; case wvcdm::EMPTY_KEYSET_ID_ENG_4: return kEmptyKeySetIdEng4; + case wvcdm::EMPTY_KEYSET_ID_ENG_5: + return kEmptyKeySetIdEng5; + case wvcdm::EMPTY_KEY_DATA_1: + return kEmptyKeyData1; + case wvcdm::EMPTY_KEY_DATA_2: + return kEmptyKeyData2; case wvcdm::EMPTY_LICENSE_RENEWAL: return kEmptyLicenseRenewal; + case wvcdm::EMPTY_LICENSE_REQUEST: + return kEmptyLicenseRequest; + case wvcdm::EMPTY_LICENSE_REQUEST_2: + return kEmptyLicenseRequest2; + case wvcdm::EMPTY_LICENSE_REQUEST_3: + return kEmptyLicenseRequest3; case wvcdm::EMPTY_LICENSE_RESPONSE_1: return kEmptyLicenseResponse1; case wvcdm::EMPTY_LICENSE_RESPONSE_2: return kEmptyLicenseResponse2; + case wvcdm::EMPTY_LICENSE_RESPONSE_3: + return kEmptyLicenseResponse3; + case wvcdm::EMPTY_LICENSE_RESPONSE_4: + return kEmptyLicenseResponse4; case wvcdm::EMPTY_PROVISIONING_CERTIFICATE_1: return kEmptyProvisioningCertificate1; + case wvcdm::EMPTY_PROVISIONING_CERTIFICATE_2: + return kEmptyProvisioningCertificate2; case wvcdm::EMPTY_PROVISIONING_RESPONSE: return kEmptyProvisioningResponse; + case wvcdm::EMPTY_RESPONSE_ERROR_1: + return kEmptyResponseError1; case wvcdm::EMPTY_SESSION_ID: return kEmptySessionId; case wvcdm::GENERATE_DERIVED_KEYS_ERROR: return kGenerateDerivedKeysError; - case wvcdm::LICENSE_RENEWAL_NONCE_GENERATION_ERROR: - return kLicenseRenewalNonceGenerationError; case wvcdm::GENERATE_USAGE_REPORT_ERROR: return kGenerateUsageReportError; - case wvcdm::KEYSET_ID_NOT_FOUND_4: + case wvcdm::GET_DECRYPT_HASH_ERROR: + return kGetDecryptHashError; case wvcdm::GET_LICENSE_ERROR: + case wvcdm::KEYSET_ID_NOT_FOUND_4: + // There is a sub-error code that distinguishes the two. return kGetLicenseError; + case wvcdm::GET_PROVISIONING_METHOD_ERROR: + return kGetProvisioningError; case wvcdm::GET_RELEASED_LICENSE_ERROR: return kGetReleasedLicenseError; case wvcdm::GET_USAGE_INFO_ERROR_1: @@ -116,8 +203,26 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) { return kGetUsageInfoError3; case wvcdm::GET_USAGE_INFO_ERROR_4: return kGetUsageInfoError4; + case wvcdm::INCORRECT_CRYPTO_MODE: + return kIncorrectCryptoMode; + case wvcdm::INCORRECT_USAGE_SUPPORT_TYPE_1: + return kIncorrectUsageSupportType1; + case wvcdm::INCORRECT_USAGE_SUPPORT_TYPE_2: + return kIncorrectUsageSupportType2; case wvcdm::INIT_DATA_NOT_FOUND: return kInitDataNotFound; + case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_2: + return kInsufficientCryptoResources2; + case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_3: + return kInsufficientCryptoResources3; + case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_4: + return kInsufficientCryptoResources4; + case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_5: + return kInsufficientCryptoResources5; + case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_6: + return kInsufficientCryptoResources6; + case wvcdm::INVALID_DECRYPT_HASH_FORMAT: + return kInvalidDecryptHashFormat; case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_1: return kInvalidDecryptParametersEng1; case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_2: @@ -126,240 +231,22 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) { return kInvalidDecryptParametersEng3; case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_4: return kInvalidDecryptParametersEng4; - case wvcdm::SESSION_NOT_FOUND_FOR_DECRYPT: - return android::ERROR_DRM_SESSION_NOT_OPENED; case wvcdm::INVALID_DEVICE_CERTIFICATE_TYPE: return kInvalidDeviceCertificateType; case wvcdm::INVALID_KEY_SYSTEM: return kInvalidKeySystem; + case wvcdm::INVALID_LICENSE_REQUEST_TYPE_1: + return kInvalidLicenseRequestType1; + case wvcdm::INVALID_LICENSE_REQUEST_TYPE_2: + return kInvalidLicenseRequestType2; case wvcdm::INVALID_LICENSE_RESPONSE: return kInvalidLicenseResponse; case wvcdm::INVALID_LICENSE_TYPE: return kInvalidLicenseType; - case wvcdm::PARAMETER_NULL: - return kParameterNull; + case wvcdm::INVALID_LICENSE_TYPE_2: + return kInvalidLicenseType2; case wvcdm::INVALID_PARAMETERS_ENG_5: return kInvalidParametersEng5; - 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_SIZE_ERROR_1: - return kKeySizeError1; - case wvcdm::KEY_SIZE_ERROR_2: - return kKeySizeError2; - 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::REMOVE_ALL_USAGE_INFO_ERROR_1: - return kRemoveAllUsageInfoError1; - case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_2: - return kRemoveAllUsageInfoError2; - 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 android::ERROR_DRM_TAMPER_DETECTED; - case wvcdm::RENEW_KEY_ERROR_1: - return kRenewKeyError1; - case wvcdm::RENEW_KEY_ERROR_2: - return kRenewKeyError2; - case wvcdm::RESTORE_OFFLINE_LICENSE_ERROR_2: - return kRestoreOfflineLicenseError2; - case wvcdm::NOT_INITIALIZED_ERROR: - return kNotInitializedError; - case wvcdm::REINIT_ERROR: - return kReinitError; - case wvcdm::SESSION_NOT_FOUND_1: - case wvcdm::SESSION_NOT_FOUND_2: - case wvcdm::SESSION_NOT_FOUND_3: - case wvcdm::SESSION_NOT_FOUND_4: - case wvcdm::SESSION_NOT_FOUND_5: - case wvcdm::SESSION_NOT_FOUND_6: - case wvcdm::SESSION_NOT_FOUND_7: - case wvcdm::SESSION_NOT_FOUND_8: - case wvcdm::SESSION_NOT_FOUND_9: - case wvcdm::SESSION_NOT_FOUND_10: - case wvcdm::SESSION_NOT_FOUND_17: - case wvcdm::SESSION_NOT_FOUND_18: - case wvcdm::SESSION_NOT_FOUND_19: - case wvcdm::SESSION_NOT_FOUND_20: - case wvcdm::SESSION_NOT_FOUND_21: - case wvcdm::SESSION_NOT_FOUND_22: - return android::ERROR_DRM_SESSION_NOT_OPENED; - 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_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::PARSE_SERVICE_CERTIFICATE_ERROR: - return kParseServiceCertificateError; - case wvcdm::CLIENT_ID_GENERATE_RANDOM_ERROR: - return kClientIdGenerateRandomError; - case wvcdm::CLIENT_ID_AES_INIT_ERROR: - return kClientIdAesInitError; - case wvcdm::CLIENT_ID_AES_ENCRYPT_ERROR: - return kClientIdAesEncryptError; - case wvcdm::CLIENT_ID_RSA_INIT_ERROR: - return kClientIdRsaInitError; - case wvcdm::CLIENT_ID_RSA_ENCRYPT_ERROR: - return kClientIdRsaEncryptError; - 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. - return kErrorCDMGeneric; - case wvcdm::EMPTY_PROVISIONING_CERTIFICATE_2: - return kEmptyProvisioningCertificate2; - case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_4: - return kLicenseParserNotInitialized4; - case wvcdm::INVALID_PARAMETERS_LIC_3: - return kInvalidParametersLic3; - case wvcdm::INVALID_PARAMETERS_LIC_4: - return kInvalidParametersLic4; - case wvcdm::INVALID_PARAMETERS_LIC_6: - return kInvalidParametersLic6; - case wvcdm::INVALID_PARAMETERS_LIC_7: - return kInvalidParametersLic7; - case wvcdm::LICENSE_REQUEST_SERVICE_CERTIFICATE_GENERATION_ERROR: - return kLicenseRequestServiceCertificateGenerationError; - case wvcdm::CENC_INIT_DATA_UNAVAILABLE: - return kCencInitDataUnavailable; - case wvcdm::PREPARE_CENC_CONTENT_ID_FAILED: - return kPrepareCencContentIdFailed; - case wvcdm::WEBM_INIT_DATA_UNAVAILABLE: - return kWebmInitDataUnavailable; - case wvcdm::PREPARE_WEBM_CONTENT_ID_FAILED: - return kPrepareWebmContentIdFailed; - case wvcdm::UNSUPPORTED_INIT_DATA_FORMAT: - return kUnsupportedInitDataFormat; - case wvcdm::LICENSE_REQUEST_NONCE_GENERATION_ERROR: - return kLicenseRequestNonceGenerationError; - case wvcdm::EMPTY_LICENSE_REQUEST: - return kEmptyLicenseRequest; - case wvcdm::DUPLICATE_SESSION_ID_SPECIFIED: - return kDuplicateSessionIdSpecified; - case wvcdm::LICENSE_RENEWAL_PROHIBITED: - return kLicenseRenewalProhibited; - case wvcdm::OFFLINE_LICENSE_PROHIBITED: - return kOfflineLicenseProhibited; - case wvcdm::STORAGE_PROHIBITED: - return kStorageProhibited; - case wvcdm::EMPTY_KEYSET_ID_ENG_5: - return kEmptyKeySetIdEng5; - case wvcdm::SESSION_NOT_FOUND_11: - return kSessionNotFound11; - case wvcdm::LOAD_USAGE_INFO_FILE_ERROR: - return kLoadUsageInfoFileError; - case wvcdm::LOAD_USAGE_INFO_MISSING: - return kLoadUsageInfoMissing; - case wvcdm::SESSION_FILE_HANDLE_INIT_ERROR: - return kSessionFileHandleInitError; - case wvcdm::INCORRECT_CRYPTO_MODE: - return kIncorrectCryptoMode; - case wvcdm::UNKNOWN_ERROR: - return android::ERROR_DRM_UNKNOWN; - case wvcdm::SECURE_BUFFER_REQUIRED: - case wvcdm::DECRYPT_ERROR: - return android::ERROR_DRM_CANNOT_HANDLE; - case wvcdm::INSUFFICIENT_OUTPUT_PROTECTION: - case wvcdm::ANALOG_OUTPUT_ERROR: - case wvcdm::KEY_PROHIBITED_FOR_SECURITY_LEVEL: - return android::ERROR_DRM_INSUFFICIENT_OUTPUT_PROTECTION; - case wvcdm::SESSION_NOT_FOUND_12: - return kSessionNotFound12; - case wvcdm::KEY_NOT_FOUND_1: - return kKeyNotFound1; - case wvcdm::KEY_NOT_FOUND_2: - return kKeyNotFound2; - case wvcdm::KEY_CONFLICT_1: - return kKeyConflict1; - case wvcdm::SESSION_NOT_FOUND_13: - return kSessionNotFound13; - case wvcdm::SESSION_NOT_FOUND_14: - return kSessionNotFound14; - case wvcdm::SESSION_NOT_FOUND_15: - return kSessionNotFound15; - case wvcdm::SESSION_NOT_FOUND_16: - return kSessionNotFound16; - case wvcdm::KEY_NOT_FOUND_3: - return kKeyNotFound3; - case wvcdm::KEY_NOT_FOUND_4: - return kKeyNotFound4; - case wvcdm::KEY_NOT_FOUND_5: - return kKeyNotFound5; - case wvcdm::KEY_NOT_FOUND_6: - return kKeyNotFound6; - case wvcdm::INVALID_SESSION_1: - return kInvalidSession1; - case wvcdm::NO_DEVICE_KEY_1: - return kNoDeviceKey1; - case wvcdm::NO_CONTENT_KEY_2: - return kNoContentKey2; - case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_2: - return kInsufficientCryptoResources2; case wvcdm::INVALID_PARAMETERS_ENG_13: return kInvalidParametersEng13; case wvcdm::INVALID_PARAMETERS_ENG_14: @@ -374,86 +261,106 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) { return kInvalidParametersEng18; case wvcdm::INVALID_PARAMETERS_ENG_19: return kInvalidParametersEng19; - case wvcdm::CLIENT_IDENTIFICATION_TOKEN_ERROR_1: - return kClientIdentificationTokenError1; - case wvcdm::UNKNOWN_SELECT_KEY_ERROR_1: - return kUnknownSelectKeyError1; - case wvcdm::UNKNOWN_SELECT_KEY_ERROR_2: - return kUnknownSelectKeyError2; - case wvcdm::CREATE_USAGE_TABLE_ERROR: - return kCreateUsageTableError; - case wvcdm::LOAD_USAGE_HEADER_GENERATION_SKEW: - return kLoadUsageHeaderGenerationSkew; - case wvcdm::LOAD_USAGE_HEADER_SIGNATURE_FAILURE: - return kLoadUsageHeaderSignatureFailure; - case wvcdm::LOAD_USAGE_HEADER_BAD_MAGIC: - return kLoadUsageHeaderBadMagic; - case wvcdm::LOAD_USAGE_HEADER_UNKNOWN_ERROR: - return kLoadUsageHeaderUnknownError; - case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_3: - return kInsufficientCryptoResources3; - case wvcdm::CREATE_USAGE_ENTRY_UNKNOWN_ERROR: - return kCreateUsageEntryUnknownError; - case wvcdm::LOAD_USAGE_ENTRY_GENERATION_SKEW: - return kLoadUsageEntryGenerationSkew; - case wvcdm::LOAD_USAGE_ENTRY_SIGNATURE_FAILURE: - return kLoadUsageEntrySignatureFailure; - case wvcdm::LOAD_USAGE_ENTRY_UNKNOWN_ERROR: - return kLoadUsageEntryUnknownError; case wvcdm::INVALID_PARAMETERS_ENG_20: return kInvalidParametersEng20; - case wvcdm::UPDATE_USAGE_ENTRY_UNKNOWN_ERROR: - return kUpdateUsageEntryUnknownError; case wvcdm::INVALID_PARAMETERS_ENG_21: return kInvalidParametersEng21; case wvcdm::INVALID_PARAMETERS_ENG_22: return kInvalidParametersEng22; - case wvcdm::SHRINK_USAGE_TABLER_HEADER_UNKNOWN_ERROR: - return kShrinkUsageTablerHeaderUnknownError; - case wvcdm::MOVE_USAGE_ENTRY_UNKNOWN_ERROR: - return kMoveUsageEntryUnknownError; - case wvcdm::COPY_OLD_USAGE_ENTRY_UNKNOWN_ERROR: - return kCopyOldUsageEntryUnknownError; case wvcdm::INVALID_PARAMETERS_ENG_23: return kInvalidParametersEng23; case wvcdm::INVALID_PARAMETERS_ENG_24: return kInvalidParametersEng24; - case wvcdm::USAGE_INFORMATION_SUPPORT_FAILED: - return kUsageInformationSupportFailed; - case wvcdm::USAGE_SUPPORT_GET_API_FAILED: - return kUsageSupportGetApiFailed; - case wvcdm::UNEXPECTED_EMPTY_USAGE_ENTRY: - return kUnexpectedEmptyUsageEntry; + case wvcdm::INVALID_PARAMETERS_LIC_1: + return kInvalidParametersLic1; + case wvcdm::INVALID_PARAMETERS_LIC_2: + return kInvalidParametersLic2; + case wvcdm::INVALID_PARAMETERS_LIC_3: + return kInvalidParametersLic3; + case wvcdm::INVALID_PARAMETERS_LIC_4: + return kInvalidParametersLic4; + case wvcdm::INVALID_PARAMETERS_LIC_6: + return kInvalidParametersLic6; + case wvcdm::INVALID_PARAMETERS_LIC_7: + return kInvalidParametersLic7; + 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_1: + return kInvalidSession1; + case wvcdm::INVALID_SESSION_ID: + return kInvalidSessionId; case wvcdm::INVALID_USAGE_ENTRY_NUMBER_MODIFICATION: return kInvalidUsageEntryNumberModification; - case wvcdm::USAGE_INVALID_NEW_ENTRY: - return kUsageInvalidNewEntry; - case wvcdm::USAGE_INVALID_PARAMETERS_1: - return kUsageInvalidParameters1; - case wvcdm::USAGE_GET_ENTRY_RETRIEVE_LICENSE_FAILED: - return kUsageGetEntryRetrieveLicenseFailed; - case wvcdm::USAGE_GET_ENTRY_RETRIEVE_USAGE_INFO_FAILED: - return kUsageGetEntryRetrieveUsageInfoFailed; - case wvcdm::USAGE_GET_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE: - return kUsageGetEntryRetrieveInvalidStorageType; - case wvcdm::USAGE_ENTRY_NUMBER_MISMATCH: - return kUsageEntryNumberMismatch; - case wvcdm::USAGE_STORE_LICENSE_FAILED: - return kUsageStoreLicenseFailed; - case wvcdm::USAGE_STORE_USAGE_INFO_FAILED: - return kUsageStoreUsageInfoFailed; - case wvcdm::USAGE_INVALID_LOAD_ENTRY: - return kUsageInvalidLoadEntry; - case wvcdm::RELEASE_USAGE_INFO_FAILED: - return android::ERROR_DRM_TAMPER_DETECTED; - case wvcdm::INCORRECT_USAGE_SUPPORT_TYPE_1: - return kIncorrectUsageSupportType1; - case wvcdm::INCORRECT_USAGE_SUPPORT_TYPE_2: - return kIncorrectUsageSupportType2; - case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_5: - return kRemoveAllUsageInfoError5; - case wvcdm::NO_USAGE_ENTRIES: - return kNoUsageEntries; + 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::KEY_CONFLICT_1: + return kKeyConflict1; + 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. + return kErrorCDMGeneric; + case wvcdm::KEY_NOT_FOUND_1: + return kKeyNotFound1; + case wvcdm::KEY_NOT_FOUND_2: + return kKeyNotFound2; + case wvcdm::KEY_NOT_FOUND_3: + return kKeyNotFound3; + case wvcdm::KEY_NOT_FOUND_4: + return kKeyNotFound4; + case wvcdm::KEY_NOT_FOUND_5: + return kKeyNotFound5; + case wvcdm::KEY_NOT_FOUND_6: + return kKeyNotFound6; + case wvcdm::KEY_REQUEST_ERROR_1: + return kKeyRequestError1; + case wvcdm::KEY_SIZE_ERROR_1: + return kKeySizeError1; + case wvcdm::KEY_SIZE_ERROR_2: + return kKeySizeError2; + 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_PARSER_NOT_INITIALIZED_4: + return kLicenseParserNotInitialized4; + case wvcdm::LICENSE_RENEWAL_NONCE_GENERATION_ERROR: + return kLicenseRenewalNonceGenerationError; + case wvcdm::LICENSE_RENEWAL_PROHIBITED: + return kLicenseRenewalProhibited; + case wvcdm::LICENSE_REQUEST_NONCE_GENERATION_ERROR: + return kLicenseRequestNonceGenerationError; + case wvcdm::LICENSE_REQUEST_SERVICE_CERTIFICATE_GENERATION_ERROR: + return kLicenseRequestServiceCertificateGenerationError; + 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::LICENSE_RESPONSE_PARSE_ERROR_4: + return kLicenseResponseParseError4; + case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_5: + return kLicenseResponseParseError5; case wvcdm::LIST_LICENSE_ERROR_1: return kListLicenseError1; case wvcdm::LIST_LICENSE_ERROR_2: @@ -462,20 +369,52 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) { return kListUsageError1; case wvcdm::LIST_USAGE_ERROR_2: return kListUsageError2; - case wvcdm::DELETE_USAGE_ERROR_1: - return kDeleteUsageError1; - case wvcdm::DELETE_USAGE_ERROR_2: - return kDeleteUsageError2; - case wvcdm::DELETE_USAGE_ERROR_3: - return kDeleteUsageError3; - case wvcdm::PRIVACY_MODE_ERROR_1: - return kPrivacyModeError1; - case wvcdm::PRIVACY_MODE_ERROR_2: - return kPrivacyModeError2; - case wvcdm::PRIVACY_MODE_ERROR_3: - return kPrivacyModeError3; - case wvcdm::EMPTY_RESPONSE_ERROR_1: - return kEmptyResponseError1; + case wvcdm::LOAD_ENTITLED_CONTENT_KEYS_ERROR: + return kLoadEntitledContentKeysError; + case wvcdm::LOAD_KEY_ERROR: + return kLoadKeyError; + case wvcdm::LOAD_SYSTEM_ID_ERROR: + return kLoadSystemIdError; + case wvcdm::LOAD_USAGE_ENTRY_GENERATION_SKEW: + return kLoadUsageEntryGenerationSkew; + case wvcdm::LOAD_USAGE_ENTRY_SIGNATURE_FAILURE: + return kLoadUsageEntrySignatureFailure; + case wvcdm::LOAD_USAGE_ENTRY_UNKNOWN_ERROR: + return kLoadUsageEntryUnknownError; + case wvcdm::LOAD_USAGE_HEADER_BAD_MAGIC: + return kLoadUsageHeaderBadMagic; + case wvcdm::LOAD_USAGE_HEADER_GENERATION_SKEW: + return kLoadUsageHeaderGenerationSkew; + case wvcdm::LOAD_USAGE_HEADER_SIGNATURE_FAILURE: + return kLoadUsageHeaderSignatureFailure; + case wvcdm::LOAD_USAGE_HEADER_UNKNOWN_ERROR: + return kLoadUsageHeaderUnknownError; + case wvcdm::LOAD_USAGE_INFO_FILE_ERROR: + return kLoadUsageInfoFileError; + case wvcdm::LOAD_USAGE_INFO_MISSING: + return kLoadUsageInfoMissing; + case wvcdm::MOVE_USAGE_ENTRY_UNKNOWN_ERROR: + return kMoveUsageEntryUnknownError; + case wvcdm::NOT_AN_ENTITLEMENT_SESSION: + return kNotAnEntitlementSession; + case wvcdm::NOT_INITIALIZED_ERROR: + return kNotInitializedError; + case wvcdm::NO_CONTENT_KEY: + return kNoContentKey; + case wvcdm::NO_CONTENT_KEY_2: + return kNoContentKey2; + case wvcdm::NO_DEVICE_KEY_1: + return kNoDeviceKey1; + case wvcdm::NO_USAGE_ENTRIES: + return kNoUsageEntries; + case wvcdm::OFFLINE_LICENSE_PROHIBITED: + return kOfflineLicenseProhibited; + case wvcdm::PARAMETER_NULL: + return kParameterNull; + case wvcdm::PARSE_REQUEST_ERROR_1: + return kParseRequestError1; + case wvcdm::PARSE_REQUEST_ERROR_2: + return kParseRequestError2; case wvcdm::PARSE_RESPONSE_ERROR_1: return kParseResponseError1; case wvcdm::PARSE_RESPONSE_ERROR_2: @@ -484,72 +423,138 @@ static android::status_t mapCdmResponseType(wvcdm::CdmResponseType res) { return kParseResponseError3; case wvcdm::PARSE_RESPONSE_ERROR_4: return kParseResponseError4; - case wvcdm::USAGE_STORE_ENTRY_RETRIEVE_LICENSE_FAILED: - return kUsageStoreEntryRetrieveLicenseFailed; - case wvcdm::USAGE_STORE_ENTRY_RETRIEVE_USAGE_INFO_FAILED: - return kUsageStoreEntryRetrieveUsageInfoFailed; - case wvcdm::USAGE_STORE_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE: - return kUsageStoreEntryRetrieveInvalidStorageType; + case wvcdm::PARSE_SERVICE_CERTIFICATE_ERROR: + return kParseServiceCertificateError; + case wvcdm::PREPARE_CENC_CONTENT_ID_FAILED: + return kPrepareCencContentIdFailed; + case wvcdm::PREPARE_WEBM_CONTENT_ID_FAILED: + return kPrepareWebmContentIdFailed; + case wvcdm::PRIVACY_MODE_ERROR_1: + return kPrivacyModeError1; + case wvcdm::PRIVACY_MODE_ERROR_2: + return kPrivacyModeError2; + case wvcdm::PRIVACY_MODE_ERROR_3: + return kPrivacyModeError3; + case wvcdm::REFRESH_KEYS_ERROR: + return kRefreshKeysError; + case wvcdm::REINIT_ERROR: + return kReinitError; + 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::REMOVE_ALL_USAGE_INFO_ERROR_1: + return kRemoveAllUsageInfoError1; + case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_2: + return kRemoveAllUsageInfoError2; + case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_5: + return kRemoveAllUsageInfoError5; case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_6: return kRemoveAllUsageInfoError6; case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_7: return kRemoveAllUsageInfoError7; - case wvcdm::CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE: - 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; case wvcdm::REMOVE_USAGE_INFO_ERROR_1: return kRemoveUsageInfoError1; case wvcdm::REMOVE_USAGE_INFO_ERROR_2: return kRemoveUsageInfoError2; case wvcdm::REMOVE_USAGE_INFO_ERROR_3: return kRemoveUsageInfoError3; - case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES_6: - return kInsufficientCryptoResources6; - case wvcdm::NOT_AN_ENTITLEMENT_SESSION: - return kNotAnEntitlementSession; - case wvcdm::LOAD_ENTITLED_CONTENT_KEYS_ERROR: - return kLoadEntitledContentKeysError; - case wvcdm::GET_PROVISIONING_METHOD_ERROR: - return kGetProvisioningError; - case wvcdm::DEVICE_CANNOT_REPROVISION: - return kDeviceCannotReprovision; - case wvcdm::SET_DECRYPT_HASH_ERROR: - return kSetDecryptHashError; - case wvcdm::GET_DECRYPT_HASH_ERROR: - return kGetDecryptHashError; - case wvcdm::INVALID_DECRYPT_HASH_FORMAT: - return kInvalidDecryptHashFormat; - case wvcdm::EMPTY_LICENSE_REQUEST_2: - return kEmptyLicenseRequest2; - case wvcdm::EMPTY_LICENSE_REQUEST_3: - return kEmptyLicenseRequest3; - case wvcdm::EMPTY_LICENSE_RESPONSE_3: - return kEmptyLicenseResponse3; - case wvcdm::EMPTY_LICENSE_RESPONSE_4: - return kEmptyLicenseResponse4; - case wvcdm::PARSE_REQUEST_ERROR_1: - return kParseRequestError1; - case wvcdm::PARSE_REQUEST_ERROR_2: - return kParseRequestError2; - case wvcdm::INVALID_LICENSE_REQUEST_TYPE_1: - return kInvalidLicenseRequestType1; - case wvcdm::INVALID_LICENSE_REQUEST_TYPE_2: - return kInvalidLicenseRequestType2; - case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_4: - return kLicenseResponseParseError4; - case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_5: - return kLicenseResponseParseError5; - case wvcdm::INVALID_LICENSE_TYPE_2: - return kInvalidLicenseType2; - case wvcdm::SIGNATURE_NOT_FOUND_2: - return kSignatureNotFound2; + case wvcdm::RENEW_KEY_ERROR_1: + return kRenewKeyError1; + case wvcdm::RENEW_KEY_ERROR_2: + return kRenewKeyError2; + case wvcdm::RESTORE_OFFLINE_LICENSE_ERROR_2: + return kRestoreOfflineLicenseError2; + case wvcdm::SESSION_FILE_HANDLE_INIT_ERROR: + return kSessionFileHandleInitError; + case wvcdm::SESSION_KEYS_NOT_FOUND: + return kSessionKeysNotFound; case wvcdm::SESSION_KEYS_NOT_FOUND_2: return kSessionKeysNotFound2; + case wvcdm::SESSION_NOT_FOUND_11: + return kSessionNotFound11; + case wvcdm::SESSION_NOT_FOUND_12: + return kSessionNotFound12; + case wvcdm::SESSION_NOT_FOUND_13: + return kSessionNotFound13; + case wvcdm::SESSION_NOT_FOUND_14: + return kSessionNotFound14; + case wvcdm::SESSION_NOT_FOUND_15: + return kSessionNotFound15; + case wvcdm::SESSION_NOT_FOUND_16: + return kSessionNotFound16; + case wvcdm::SET_DECRYPT_HASH_ERROR: + return kSetDecryptHashError; + case wvcdm::SHRINK_USAGE_TABLER_HEADER_UNKNOWN_ERROR: + return kShrinkUsageTablerHeaderUnknownError; + case wvcdm::SIGNATURE_NOT_FOUND: + return kSignatureNotFound; + case wvcdm::SIGNATURE_NOT_FOUND_2: + return kSignatureNotFound2; + case wvcdm::STORAGE_PROHIBITED: + return kStorageProhibited; + case wvcdm::STORE_LICENSE_ERROR_1: + return kStoreLicenseError1; + case wvcdm::STORE_LICENSE_ERROR_2: + return kStoreLicenseError2; + case wvcdm::STORE_USAGE_INFO_ERROR: + return kStoreUsageInfoError; + case wvcdm::UNEXPECTED_EMPTY_USAGE_ENTRY: + return kUnexpectedEmptyUsageEntry; + case wvcdm::UNKNOWN_SELECT_KEY_ERROR_1: + return kUnknownSelectKeyError1; + case wvcdm::UNKNOWN_SELECT_KEY_ERROR_2: + return kUnknownSelectKeyError2; + 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::UNSUPPORTED_INIT_DATA_FORMAT: + return kUnsupportedInitDataFormat; + case wvcdm::UPDATE_USAGE_ENTRY_UNKNOWN_ERROR: + return kUpdateUsageEntryUnknownError; + case wvcdm::USAGE_ENTRY_NUMBER_MISMATCH: + return kUsageEntryNumberMismatch; + case wvcdm::USAGE_GET_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE: + return kUsageGetEntryRetrieveInvalidStorageType; + case wvcdm::USAGE_GET_ENTRY_RETRIEVE_LICENSE_FAILED: + return kUsageGetEntryRetrieveLicenseFailed; + case wvcdm::USAGE_GET_ENTRY_RETRIEVE_USAGE_INFO_FAILED: + return kUsageGetEntryRetrieveUsageInfoFailed; + case wvcdm::USAGE_INFORMATION_SUPPORT_FAILED: + return kUsageInformationSupportFailed; + case wvcdm::USAGE_INFO_NOT_FOUND: + return kUsageInfoNotFound; + case wvcdm::USAGE_INVALID_LOAD_ENTRY: + return kUsageInvalidLoadEntry; + case wvcdm::USAGE_INVALID_NEW_ENTRY: + return kUsageInvalidNewEntry; + case wvcdm::USAGE_INVALID_PARAMETERS_1: + return kUsageInvalidParameters1; + case wvcdm::USAGE_STORE_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE: + return kUsageStoreEntryRetrieveInvalidStorageType; + case wvcdm::USAGE_STORE_ENTRY_RETRIEVE_LICENSE_FAILED: + return kUsageStoreEntryRetrieveLicenseFailed; + case wvcdm::USAGE_STORE_ENTRY_RETRIEVE_USAGE_INFO_FAILED: + return kUsageStoreEntryRetrieveUsageInfoFailed; + case wvcdm::USAGE_STORE_LICENSE_FAILED: + return kUsageStoreLicenseFailed; + case wvcdm::USAGE_STORE_USAGE_INFO_FAILED: + return kUsageStoreUsageInfoFailed; + case wvcdm::USAGE_SUPPORT_GET_API_FAILED: + return kUsageSupportGetApiFailed; + case wvcdm::WEBM_INIT_DATA_UNAVAILABLE: + return kWebmInitDataUnavailable; // This error is only returned in API 29 by the hidl service. // It should never be used in the legacy plugin.