[ Merge of http://go/wvgerrit/168397 ] When CdmResponseType (enum) was transformed to CdmResponseType (struct), the test printers where not updated to print the result of failed comparisons. In addition, several logs statements were updated haphazardly, leaving inconsistencies and potential compiler-specific behavior. This CL replaces CdmResponseType std::string operator with a ToString() method. This is to make it consistent with Google's C++ style guide on conversion operators vs methods. The string conversion function is now defined in wv_cdm_types.cpp instead of inline in the header file. The PrintTo function has been implemented along with the other CDM test printers in test_printers.cpp. Bug: 273989359 Test: run_x86_64_tests Test: MediaDrmParameterizedTests on redfin Test: Forrest drm_compliance Change-Id: Ibfaa17029046b75b1c8c278f7bd7e04a24379848
471 lines
18 KiB
C++
471 lines
18 KiB
C++
//
|
|
// Copyright 2021 Google LLC. All Rights Reserved. This file and proprietary
|
|
// source code may only be used and distributed under the Widevine License
|
|
// Agreement.
|
|
//
|
|
|
|
#ifndef WV_MAP_ERRORS_INL_H_
|
|
#define WV_MAP_ERRORS_INL_H_
|
|
|
|
#include "WVErrors.h"
|
|
#include "WVTypes.h"
|
|
#include "media/stagefright/MediaErrors.h"
|
|
#include "utils/Errors.h"
|
|
#include "wv_cdm_types.h"
|
|
|
|
namespace wvdrm {
|
|
|
|
using ::aidl::android::hardware::drm::Status;
|
|
|
|
static inline WvStatus mapCdmResponseType(wvcdm::CdmResponseType res) {
|
|
Status err = Status::ERROR_DRM_UNKNOWN;
|
|
switch (res.code()) {
|
|
case wvcdm::KEY_ADDED:
|
|
case wvcdm::KEY_MESSAGE:
|
|
case wvcdm::KEY_CANCELED:
|
|
// KEY_ADDED, KEY_MESSAGE, and KEY_CANCELLED are all alternative
|
|
// success messages for certain CDM methods instead of NO_ERROR.
|
|
case wvcdm::NO_ERROR:
|
|
err = Status::OK;
|
|
break;
|
|
|
|
case wvcdm::DECRYPT_NOT_READY:
|
|
case wvcdm::KEY_NOT_FOUND_IN_SESSION:
|
|
case wvcdm::NEED_KEY:
|
|
case wvcdm::NO_MATCHING_ENTITLEMENT_KEY:
|
|
// TODO(http://b/119690361): there are several NO_CONTENT_* errors.
|
|
// that should probably all turn into NO_LICENSE. Here, and below, and
|
|
// everywhere.
|
|
case wvcdm::NO_CONTENT_KEY_3:
|
|
err = Status::ERROR_DRM_NO_LICENSE;
|
|
break;
|
|
|
|
case wvcdm::NEED_PROVISIONING:
|
|
err = Status::ERROR_DRM_NOT_PROVISIONED;
|
|
break;
|
|
|
|
case wvcdm::DEVICE_REVOKED:
|
|
err = Status::ERROR_DRM_DEVICE_REVOKED;
|
|
break;
|
|
|
|
case wvcdm::INSUFFICIENT_CRYPTO_RESOURCES:
|
|
err = Status::ERROR_DRM_RESOURCE_BUSY;
|
|
break;
|
|
|
|
case wvcdm::RELEASE_USAGE_INFO_ERROR:
|
|
case wvcdm::RELEASE_USAGE_INFO_FAILED:
|
|
case wvcdm::SYSTEM_INVALIDATED_ERROR:
|
|
err = Status::ERROR_DRM_INVALID_STATE;
|
|
break;
|
|
|
|
case wvcdm::SESSION_NOT_FOUND_FOR_DECRYPT:
|
|
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_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_23:
|
|
err = Status::ERROR_DRM_SESSION_NOT_OPENED;
|
|
break;
|
|
|
|
case wvcdm::DECRYPT_ERROR:
|
|
case wvcdm::SECURE_BUFFER_REQUIRED:
|
|
err = Status::ERROR_DRM_CANNOT_HANDLE;
|
|
break;
|
|
|
|
case wvcdm::ANALOG_OUTPUT_ERROR:
|
|
case wvcdm::INSUFFICIENT_OUTPUT_PROTECTION:
|
|
err = Status::ERROR_DRM_INSUFFICIENT_OUTPUT_PROTECTION;
|
|
break;
|
|
|
|
case wvcdm::KEYSET_ID_NOT_FOUND_4:
|
|
err = Status::BAD_VALUE;
|
|
break;
|
|
|
|
// The following cases follow the order in wv_cdm_types.h
|
|
// to make it easier to keep track of newly defined errors.
|
|
case wvcdm::CERT_PROVISIONING_GET_KEYBOX_ERROR_1:
|
|
case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_1:
|
|
case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_3:
|
|
case wvcdm::INVALID_DEVICE_CERTIFICATE_TYPE:
|
|
case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_1:
|
|
case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_2:
|
|
case wvcdm::UNPROVISION_ERROR_4:
|
|
case wvcdm::PARSE_SERVICE_CERTIFICATE_ERROR:
|
|
case wvcdm::CLIENT_ID_RSA_INIT_ERROR:
|
|
case wvcdm::INCORRECT_CRYPTO_MODE:
|
|
case wvcdm::INVALID_PARAMETERS_ENG_5:
|
|
case wvcdm::COPY_OLD_USAGE_ENTRY_UNKNOWN_ERROR:
|
|
case wvcdm::UNEXPECTED_EMPTY_USAGE_ENTRY:
|
|
case wvcdm::INVALID_USAGE_ENTRY_NUMBER_MODIFICATION:
|
|
case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_6:
|
|
case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_7:
|
|
case wvcdm::DELETE_USAGE_ERROR_3:
|
|
case wvcdm::LOAD_SYSTEM_ID_ERROR:
|
|
case wvcdm::RSA_SIGNATURE_GENERATION_ERROR:
|
|
case wvcdm::REWRAP_DEVICE_RSA_KEY_ERROR:
|
|
case wvcdm::PARSE_OKP_RESPONSE_ERROR:
|
|
case wvcdm::OKP_ALREADY_PROVISIONED:
|
|
ALOGW("Returns UNKNOWN error for legacy status: %u", res.ToInt());
|
|
err = Status::ERROR_DRM_UNKNOWN;
|
|
break;
|
|
|
|
case wvcdm::KEY_PROHIBITED_FOR_SECURITY_LEVEL:
|
|
err = Status::ERROR_DRM_INSUFFICIENT_SECURITY;
|
|
break;
|
|
case wvcdm::OUTPUT_TOO_LARGE_ERROR:
|
|
err = Status::ERROR_DRM_FRAME_TOO_LARGE;
|
|
break;
|
|
case wvcdm::SESSION_LOST_STATE_ERROR:
|
|
err = Status::ERROR_DRM_SESSION_LOST_STATE;
|
|
break;
|
|
case wvcdm::LICENSE_REQUEST_NONCE_GENERATION_ERROR:
|
|
case wvcdm::LICENSE_RENEWAL_NONCE_GENERATION_ERROR:
|
|
case wvcdm::CERT_PROVISIONING_NONCE_GENERATION_ERROR:
|
|
case wvcdm::NONCE_GENERATION_ERROR:
|
|
// These are likely nonce flood errors
|
|
err = Status::ERROR_DRM_RESOURCE_CONTENTION;
|
|
break;
|
|
|
|
case wvcdm::CANNOT_DECRYPT_ZERO_SUBSAMPLES:
|
|
err = Status::CANNOT_DECRYPT_ZERO_SUBSAMPLES;
|
|
break;
|
|
case wvcdm::CLIENT_ID_AES_ENCRYPT_ERROR:
|
|
case wvcdm::CLIENT_ID_AES_INIT_ERROR:
|
|
case wvcdm::CLIENT_ID_RSA_ENCRYPT_ERROR:
|
|
err = Status::CRYPTO_LIBRARY_ERROR;
|
|
break;
|
|
case wvcdm::PROVISIONING_NOT_ALLOWED_FOR_ATSC:
|
|
err = Status::ERROR_DRM_CANNOT_HANDLE;
|
|
break;
|
|
case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_4:
|
|
case wvcdm::CLIENT_IDENTIFICATION_TOKEN_ERROR_1:
|
|
case wvcdm::CREATE_USAGE_ENTRY_UNKNOWN_ERROR:
|
|
case wvcdm::CREATE_USAGE_TABLE_ERROR:
|
|
case wvcdm::DEACTIVATE_USAGE_ENTRY_ERROR:
|
|
case wvcdm::EMPTY_LICENSE_RENEWAL:
|
|
case wvcdm::EXTRACT_SYSTEM_ID_FROM_OEM_CERT_ERROR:
|
|
case wvcdm::GENERATE_DERIVED_KEYS_ERROR:
|
|
case wvcdm::GENERATE_DERIVED_KEYS_ERROR_2:
|
|
case wvcdm::GENERATE_SIGNATURE_ERROR:
|
|
case wvcdm::GENERATE_USAGE_REPORT_ERROR:
|
|
case wvcdm::GET_DECRYPT_HASH_ERROR:
|
|
case wvcdm::GET_DEVICE_ID_ERROR:
|
|
case wvcdm::GET_HDCP_CAPABILITY_FAILED:
|
|
case wvcdm::GET_MAX_NUMBER_OF_OPEN_SESSIONS_ERROR:
|
|
case wvcdm::GET_NUMBER_OF_OPEN_SESSIONS_ERROR:
|
|
case wvcdm::GET_PROVISIONING_METHOD_ERROR:
|
|
case wvcdm::GET_SIGNATURE_HASH_ALGORITHM_ERROR_1:
|
|
case wvcdm::GET_SIGNATURE_HASH_ALGORITHM_ERROR_2:
|
|
case wvcdm::GET_SIGNATURE_HASH_ALGORITHM_ERROR_3:
|
|
case wvcdm::GET_SRM_VERSION_ERROR:
|
|
case wvcdm::GET_TOKEN_FROM_KEYBOX_ERROR:
|
|
case wvcdm::GET_TOKEN_FROM_OEM_CERT_ERROR:
|
|
case wvcdm::INVALID_DECRYPT_HASH_FORMAT:
|
|
case wvcdm::INVALID_SESSION_1:
|
|
case wvcdm::INVALID_SESSION_2:
|
|
case wvcdm::KEYBOX_TOKEN_TOO_SHORT:
|
|
case wvcdm::LOAD_USAGE_ENTRY_UNKNOWN_ERROR:
|
|
case wvcdm::LOAD_USAGE_HEADER_UNKNOWN_ERROR:
|
|
case wvcdm::MOVE_USAGE_ENTRY_UNKNOWN_ERROR:
|
|
case wvcdm::OPEN_CRYPTO_SESSION_ERROR:
|
|
case wvcdm::RANDOM_GENERATION_ERROR:
|
|
case wvcdm::SET_DECRYPT_HASH_ERROR:
|
|
case wvcdm::SHRINK_USAGE_TABLE_HEADER_UNKNOWN_ERROR:
|
|
case wvcdm::UNKNOWN_CLIENT_TOKEN_TYPE:
|
|
case wvcdm::UNKNOWN_SELECT_KEY_ERROR_1:
|
|
case wvcdm::UNKNOWN_SELECT_KEY_ERROR_2:
|
|
case wvcdm::UPDATE_USAGE_ENTRY_UNKNOWN_ERROR:
|
|
case wvcdm::USAGE_SUPPORT_GET_API_FAILED:
|
|
err = Status::GENERAL_OEM_ERROR;
|
|
break;
|
|
case wvcdm::CANNOT_DECRYPT_ZERO_SAMPLES:
|
|
case wvcdm::CERT_PROVISIONING_REQUEST_ERROR_1:
|
|
case wvcdm::CRYPTO_SESSION_NOT_INITIALIZED:
|
|
case wvcdm::CRYPTO_SESSION_NOT_OPEN:
|
|
case wvcdm::DEVICE_CANNOT_REPROVISION:
|
|
case wvcdm::DEVICE_CERTIFICATE_ERROR_1:
|
|
case wvcdm::DUPLICATE_SESSION_ID_SPECIFIED:
|
|
case wvcdm::EMPTY_KEYSET_ID_ENG_5:
|
|
case wvcdm::EMPTY_RESPONSE_ERROR_1:
|
|
case wvcdm::EMPTY_SESSION_ID:
|
|
case wvcdm::INCORRECT_USAGE_SUPPORT_TYPE_1:
|
|
case wvcdm::INCORRECT_USAGE_SUPPORT_TYPE_2:
|
|
case wvcdm::INVALID_IV_SIZE:
|
|
case wvcdm::INVALID_KEY_SYSTEM:
|
|
case wvcdm::INVALID_PARAMETERS_ENG_22:
|
|
case wvcdm::INVALID_PARAMETERS_ENG_23:
|
|
case wvcdm::INVALID_PARAMETERS_ENG_24:
|
|
case wvcdm::INVALID_PARAMETERS_LIC_1:
|
|
case wvcdm::INVALID_PARAMETERS_LIC_2:
|
|
case wvcdm::INVALID_PARAMETERS_LIC_6:
|
|
case wvcdm::INVALID_PARAMETERS_LIC_7:
|
|
case wvcdm::INVALID_PROVISIONING_PARAMETERS_1:
|
|
case wvcdm::INVALID_PROVISIONING_PARAMETERS_2:
|
|
case wvcdm::INVALID_PROVISIONING_REQUEST_PARAM_1:
|
|
case wvcdm::INVALID_PROVISIONING_REQUEST_PARAM_2:
|
|
case wvcdm::INVALID_SESSION_ID:
|
|
case wvcdm::KEYSET_ID_NOT_FOUND_1:
|
|
case wvcdm::KEYSET_ID_NOT_FOUND_2:
|
|
case wvcdm::KEYSET_ID_NOT_FOUND_3:
|
|
case wvcdm::KEY_CONFLICT_1:
|
|
case wvcdm::KEY_NOT_FOUND_2:
|
|
case wvcdm::KEY_REQUEST_ERROR_1:
|
|
case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_1:
|
|
case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_2:
|
|
case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_3:
|
|
case wvcdm::LICENSE_PARSER_NOT_INITIALIZED_4:
|
|
case wvcdm::LICENSE_REQUEST_SERVICE_CERTIFICATE_GENERATION_ERROR:
|
|
case wvcdm::LICENSE_USAGE_ENTRY_MISSING:
|
|
case wvcdm::LOAD_ENTITLED_CONTENT_KEYS_ERROR:
|
|
case wvcdm::LOAD_USAGE_ENTRY_GENERATION_SKEW:
|
|
case wvcdm::LOAD_USAGE_ENTRY_INVALID_SESSION:
|
|
case wvcdm::LOAD_USAGE_ENTRY_SIGNATURE_FAILURE:
|
|
case wvcdm::LOAD_USAGE_HEADER_BAD_MAGIC:
|
|
case wvcdm::LOAD_USAGE_HEADER_GENERATION_SKEW:
|
|
case wvcdm::LOAD_USAGE_HEADER_SIGNATURE_FAILURE:
|
|
case wvcdm::LOAD_USAGE_INFO_MISSING:
|
|
case wvcdm::MOVE_USAGE_ENTRY_DESTINATION_IN_USE:
|
|
case wvcdm::NOT_IMPLEMENTED_ERROR:
|
|
case wvcdm::NOT_INITIALIZED_ERROR:
|
|
case wvcdm::NO_SRM_VERSION:
|
|
case wvcdm::NO_USAGE_ENTRIES:
|
|
case wvcdm::PARAMETER_NULL:
|
|
case wvcdm::PREPARE_CENC_CONTENT_ID_FAILED:
|
|
case wvcdm::PREPARE_WEBM_CONTENT_ID_FAILED:
|
|
case wvcdm::REINIT_ERROR:
|
|
case wvcdm::REMOVE_OFFLINE_LICENSE_ERROR_2:
|
|
case wvcdm::REMOVE_USAGE_INFO_ERROR_3:
|
|
case wvcdm::SESSION_NOT_FOUND_11:
|
|
case wvcdm::SESSION_NOT_FOUND_12:
|
|
case wvcdm::SESSION_NOT_FOUND_13:
|
|
case wvcdm::SESSION_NOT_FOUND_14:
|
|
case wvcdm::SESSION_NOT_FOUND_15:
|
|
case wvcdm::SESSION_NOT_FOUND_16:
|
|
case wvcdm::SHRINK_USAGE_TABLE_HEADER_ENTRY_IN_USE:
|
|
case wvcdm::STORAGE_PROHIBITED:
|
|
case wvcdm::STORE_LICENSE_ERROR_2:
|
|
case wvcdm::UNSUPPORTED_SIGNATURE_HASH_ALGORITHM_1:
|
|
case wvcdm::UNSUPPORTED_SIGNATURE_HASH_ALGORITHM_2:
|
|
case wvcdm::UNSUPPORTED_SIGNATURE_HASH_ALGORITHM_3:
|
|
case wvcdm::UNSUPPORTED_SIGNATURE_HASH_ALGORITHM_4:
|
|
case wvcdm::USAGE_ENTRY_NUMBER_MISMATCH:
|
|
case wvcdm::USAGE_GET_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE:
|
|
case wvcdm::USAGE_INFORMATION_SUPPORT_FAILED:
|
|
case wvcdm::USAGE_INVALID_LOAD_ENTRY:
|
|
case wvcdm::USAGE_INVALID_NEW_ENTRY:
|
|
case wvcdm::USAGE_INVALID_PARAMETERS_1:
|
|
case wvcdm::USAGE_INVALID_PARAMETERS_2:
|
|
case wvcdm::USAGE_STORE_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE:
|
|
case wvcdm::CLIENT_TOKEN_NOT_SET:
|
|
err = Status::GENERAL_PLUGIN_ERROR;
|
|
break;
|
|
case wvcdm::CLIENT_ID_GENERATE_RANDOM_ERROR:
|
|
err = Status::ERROR_DRM_RESOURCE_CONTENTION;
|
|
break;
|
|
case wvcdm::CENC_INIT_DATA_UNAVAILABLE:
|
|
case wvcdm::INIT_DATA_NOT_FOUND:
|
|
case wvcdm::INVALID_PARAMETERS_LIC_3:
|
|
case wvcdm::INVALID_PARAMETERS_LIC_4:
|
|
case wvcdm::UNSUPPORTED_INIT_DATA:
|
|
case wvcdm::UNSUPPORTED_INIT_DATA_FORMAT:
|
|
case wvcdm::WEBM_INIT_DATA_UNAVAILABLE:
|
|
err = Status::INIT_DATA_INVALID;
|
|
break;
|
|
case wvcdm::EMPTY_KEYSET_ID:
|
|
case wvcdm::EMPTY_KEYSET_ID_ENG_1:
|
|
case wvcdm::EMPTY_KEYSET_ID_ENG_2:
|
|
case wvcdm::EMPTY_KEYSET_ID_ENG_3:
|
|
case wvcdm::EMPTY_KEYSET_ID_ENG_4:
|
|
case wvcdm::EMPTY_LICENSE_RESPONSE_1:
|
|
case wvcdm::EMPTY_LICENSE_RESPONSE_2:
|
|
case wvcdm::EMPTY_PROVISIONING_RESPONSE:
|
|
case wvcdm::INVALID_PARAMETERS_ENG_13:
|
|
case wvcdm::INVALID_PARAMETERS_ENG_14:
|
|
case wvcdm::INVALID_PARAMETERS_ENG_15:
|
|
case wvcdm::INVALID_PARAMETERS_ENG_16:
|
|
case wvcdm::INVALID_QUERY_KEY:
|
|
case wvcdm::KEY_NOT_FOUND_1:
|
|
case wvcdm::SAMPLE_AND_SUBSAMPLE_SIZE_MISMATCH:
|
|
err = Status::BAD_VALUE;
|
|
break;
|
|
case wvcdm::KEY_NOT_FOUND_3:
|
|
case wvcdm::KEY_NOT_FOUND_4:
|
|
case wvcdm::KEY_NOT_FOUND_5:
|
|
case wvcdm::KEY_NOT_FOUND_6:
|
|
err = Status::KEY_NOT_LOADED;
|
|
break;
|
|
case wvcdm::ADD_KEY_ERROR:
|
|
case wvcdm::CORE_MESSAGE_NOT_FOUND:
|
|
case wvcdm::EMPTY_KEY_DATA_1:
|
|
case wvcdm::EMPTY_KEY_DATA_2:
|
|
case wvcdm::INVALID_LICENSE_RESPONSE:
|
|
case wvcdm::INVALID_LICENSE_TYPE:
|
|
case wvcdm::INVALID_SRM_LIST:
|
|
case wvcdm::KEY_SIZE_ERROR_1:
|
|
case wvcdm::KEY_SIZE_ERROR_2:
|
|
case wvcdm::LICENSE_ID_NOT_FOUND:
|
|
case wvcdm::LICENSE_RESPONSE_NOT_SIGNED:
|
|
case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_1:
|
|
case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_2:
|
|
case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_3:
|
|
case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_4:
|
|
case wvcdm::LICENSE_RESPONSE_PARSE_ERROR_5:
|
|
case wvcdm::LOAD_KEY_ERROR:
|
|
case wvcdm::LOAD_LICENSE_ERROR:
|
|
case wvcdm::LOAD_RENEWAL_ERROR:
|
|
case wvcdm::LOAD_SRM_ERROR:
|
|
case wvcdm::NOT_AN_ENTITLEMENT_SESSION:
|
|
case wvcdm::NO_CONTENT_KEY:
|
|
case wvcdm::NO_CONTENT_KEY_2:
|
|
case wvcdm::NO_DEVICE_KEY_1:
|
|
case wvcdm::REFRESH_KEYS_ERROR:
|
|
case wvcdm::SESSION_KEYS_NOT_FOUND:
|
|
case wvcdm::SIGNATURE_NOT_FOUND:
|
|
err = Status::LICENSE_PARSE_ERROR;
|
|
break;
|
|
case wvcdm::LICENSE_RENEWAL_PROHIBITED:
|
|
case wvcdm::OFFLINE_LICENSE_PROHIBITED:
|
|
err = Status::LICENSE_POLICY_ERROR;
|
|
break;
|
|
case wvcdm::PARSE_REQUEST_ERROR_2:
|
|
case wvcdm::RELEASE_LICENSE_ERROR_1:
|
|
case wvcdm::SESSION_KEYS_NOT_FOUND_2:
|
|
err = Status::LICENSE_RELEASE_ERROR;
|
|
break;
|
|
case wvcdm::KEY_ERROR:
|
|
case wvcdm::RELEASE_KEY_ERROR:
|
|
case wvcdm::RENEW_KEY_ERROR_1:
|
|
err = Status::LICENSE_REQUEST_REJECTED;
|
|
break;
|
|
case wvcdm::EMPTY_LICENSE_REQUEST_2:
|
|
case wvcdm::EMPTY_LICENSE_REQUEST_3:
|
|
case wvcdm::EMPTY_LICENSE_RESPONSE_3:
|
|
case wvcdm::EMPTY_LICENSE_RESPONSE_4:
|
|
case wvcdm::INVALID_LICENSE_REQUEST_TYPE_1:
|
|
case wvcdm::INVALID_LICENSE_REQUEST_TYPE_2:
|
|
case wvcdm::INVALID_LICENSE_TYPE_2:
|
|
case wvcdm::PARSE_REQUEST_ERROR_1:
|
|
case wvcdm::RESTORE_OFFLINE_LICENSE_ERROR_2:
|
|
case wvcdm::SIGNATURE_NOT_FOUND_2:
|
|
err = Status::LICENSE_RESTORE_ERROR;
|
|
break;
|
|
case wvcdm::GET_RELEASED_LICENSE_ERROR:
|
|
case wvcdm::RESTORE_OFFLINE_LICENSE_ERROR_3:
|
|
case wvcdm::USAGE_ENTRY_ALREADY_LOADED:
|
|
err = Status::LICENSE_STATE_ERROR;
|
|
break;
|
|
case wvcdm::DEVICE_CERTIFICATE_ERROR_2:
|
|
case wvcdm::DEVICE_CERTIFICATE_ERROR_3:
|
|
case wvcdm::DEVICE_CERTIFICATE_ERROR_4:
|
|
case wvcdm::LICENSE_PARSER_INIT_ERROR:
|
|
case wvcdm::PARSE_RESPONSE_ERROR_1:
|
|
case wvcdm::PARSE_RESPONSE_ERROR_2:
|
|
case wvcdm::PARSE_RESPONSE_ERROR_3:
|
|
case wvcdm::PARSE_RESPONSE_ERROR_4:
|
|
err = Status::MALFORMED_CERTIFICATE;
|
|
break;
|
|
case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_2:
|
|
case wvcdm::INVALID_DECRYPT_PARAMETERS_ENG_4:
|
|
err = Status::MEDIA_FRAMEWORK_ERROR;
|
|
break;
|
|
case wvcdm::PRIVACY_MODE_ERROR_1:
|
|
case wvcdm::PRIVACY_MODE_ERROR_2:
|
|
case wvcdm::PRIVACY_MODE_ERROR_3:
|
|
err = Status::MISSING_CERTIFICATE;
|
|
break;
|
|
case wvcdm::LOAD_DEVICE_RSA_KEY_ERROR:
|
|
err = Status::PROVISIONING_CERTIFICATE_ERROR;
|
|
break;
|
|
case wvcdm::CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE:
|
|
case wvcdm::SERVICE_CERTIFICATE_PROVIDER_ID_EMPTY:
|
|
err = Status::PROVISIONING_CONFIGURATION_ERROR;
|
|
break;
|
|
case wvcdm::CERT_PROVISIONING_INVALID_CERT_TYPE:
|
|
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_1:
|
|
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_2:
|
|
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_3:
|
|
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_4:
|
|
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_9:
|
|
case wvcdm::LOAD_PROVISIONING_ERROR:
|
|
err = Status::PROVISIONING_PARSE_ERROR;
|
|
break;
|
|
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_10:
|
|
err = Status::PROVISIONING_REQUEST_REJECTED;
|
|
break;
|
|
case wvcdm::EMPTY_PROVISIONING_CERTIFICATE_1:
|
|
case wvcdm::EMPTY_PROVISIONING_CERTIFICATE_2:
|
|
err = Status::RETRYABLE_PROVISIONING_ERROR;
|
|
break;
|
|
case wvcdm::RELEASE_LICENSE_ERROR_2:
|
|
err = Status::SECURE_STOP_RELEASE_ERROR;
|
|
break;
|
|
case wvcdm::GET_LICENSE_ERROR:
|
|
case wvcdm::GET_OFFLINE_LICENSE_STATE_ERROR_1:
|
|
case wvcdm::GET_OFFLINE_LICENSE_STATE_ERROR_2:
|
|
case wvcdm::GET_USAGE_INFO_ERROR_1:
|
|
case wvcdm::GET_USAGE_INFO_ERROR_2:
|
|
case wvcdm::GET_USAGE_INFO_ERROR_3:
|
|
case wvcdm::GET_USAGE_INFO_ERROR_4:
|
|
case wvcdm::LIST_LICENSE_ERROR_1:
|
|
case wvcdm::LIST_LICENSE_ERROR_2:
|
|
case wvcdm::LIST_USAGE_ERROR_1:
|
|
case wvcdm::LIST_USAGE_ERROR_2:
|
|
case wvcdm::LOAD_USAGE_INFO_FILE_ERROR:
|
|
case wvcdm::REMOVE_OFFLINE_LICENSE_ERROR_1:
|
|
case wvcdm::REMOVE_USAGE_INFO_ERROR_2:
|
|
case wvcdm::SESSION_FILE_HANDLE_INIT_ERROR:
|
|
case wvcdm::UNPROVISION_ERROR_1:
|
|
case wvcdm::USAGE_GET_ENTRY_RETRIEVE_LICENSE_FAILED:
|
|
case wvcdm::USAGE_GET_ENTRY_RETRIEVE_USAGE_INFO_FAILED:
|
|
case wvcdm::USAGE_INFO_NOT_FOUND:
|
|
case wvcdm::USAGE_STORE_ENTRY_RETRIEVE_LICENSE_FAILED:
|
|
case wvcdm::USAGE_STORE_ENTRY_RETRIEVE_USAGE_INFO_FAILED:
|
|
err = Status::STORAGE_READ_FAILURE;
|
|
break;
|
|
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_7:
|
|
case wvcdm::CERT_PROVISIONING_RESPONSE_ERROR_8:
|
|
case wvcdm::DELETE_USAGE_ERROR_1:
|
|
case wvcdm::DELETE_USAGE_ERROR_2:
|
|
case wvcdm::RELEASE_KEY_REQUEST_ERROR:
|
|
case wvcdm::REMOVE_ALL_USAGE_INFO_ERROR_5:
|
|
case wvcdm::REMOVE_USAGE_INFO_ERROR_1:
|
|
case wvcdm::RENEW_KEY_ERROR_2:
|
|
case wvcdm::STORE_LICENSE_ERROR_1:
|
|
case wvcdm::STORE_USAGE_INFO_ERROR:
|
|
case wvcdm::UNPROVISION_ERROR_2:
|
|
case wvcdm::UNPROVISION_ERROR_3:
|
|
case wvcdm::USAGE_STORE_LICENSE_FAILED:
|
|
case wvcdm::USAGE_STORE_USAGE_INFO_FAILED:
|
|
case wvcdm::STORE_ATSC_LICENSE_DEVICE_FILES_INIT_ERROR:
|
|
case wvcdm::STORE_ATSC_LICENSE_ERROR:
|
|
err = Status::STORAGE_WRITE_FAILURE;
|
|
break;
|
|
default:
|
|
err = Status::ERROR_DRM_UNKNOWN;
|
|
}
|
|
return WvStatus(err, res);
|
|
}
|
|
|
|
static inline WvStatus mapCdmResponseType(wvcdm::CdmResponseEnum res) {
|
|
return mapCdmResponseType(wvcdm::CdmResponseType(res));
|
|
}
|
|
|
|
static inline bool isCdmResponseTypeSuccess(wvcdm::CdmResponseType res) {
|
|
return mapCdmResponseType(res) == Status::OK;
|
|
}
|
|
|
|
} // namespace wvdrm
|
|
|
|
#endif // WV_MAP_ERRORS_INL_H_
|