Merge "Simplify parameter validation"
This commit is contained in:
@@ -270,17 +270,17 @@ enum CdmResponseType {
|
||||
LOAD_USAGE_HEADER_SIGNATURE_FAILURE = 216,
|
||||
LOAD_USAGE_HEADER_BAD_MAGIC = 217,
|
||||
LOAD_USAGE_HEADER_UNKNOWN_ERROR = 218,
|
||||
INVALID_PARAMETERS_ENG_17 = 219,
|
||||
INVALID_PARAMETERS_ENG_18 = 220,
|
||||
/* previously INVALID_PARAMETERS_ENG_17 = 219, */
|
||||
/* preivously INVALID_PARAMETERS_ENG_18 = 220, */
|
||||
INSUFFICIENT_CRYPTO_RESOURCES_3 = 221,
|
||||
CREATE_USAGE_ENTRY_UNKNOWN_ERROR = 222,
|
||||
LOAD_USAGE_ENTRY_GENERATION_SKEW = 223,
|
||||
LOAD_USAGE_ENTRY_SIGNATURE_FAILURE = 224,
|
||||
LOAD_USAGE_ENTRY_UNKNOWN_ERROR = 225,
|
||||
INVALID_PARAMETERS_ENG_19 = 226,
|
||||
INVALID_PARAMETERS_ENG_20 = 227,
|
||||
/* previously INVALID_PARAMETERS_ENG_19 = 226, */
|
||||
/* previsouly INVALID_PARAMETERS_ENG_20 = 227, */
|
||||
UPDATE_USAGE_ENTRY_UNKNOWN_ERROR = 228,
|
||||
INVALID_PARAMETERS_ENG_21 = 229,
|
||||
/* previously INVALID_PARAMETERS_ENG_21 = 229, */
|
||||
SHRINK_USAGE_TABLER_HEADER_UNKNOWN_ERROR = 230,
|
||||
MOVE_USAGE_ENTRY_UNKNOWN_ERROR = 231,
|
||||
COPY_OLD_USAGE_ENTRY_UNKNOWN_ERROR = 232,
|
||||
|
||||
@@ -25,6 +25,16 @@
|
||||
#include "usage_table_header.h"
|
||||
#include "wv_cdm_constants.h"
|
||||
|
||||
// Stringify turns macro arguments into static C strings.
|
||||
// Example: STRINGIFY(this_argument) -> "this_argument"
|
||||
#define STRINGIFY(PARAM...) #PARAM
|
||||
|
||||
#define RETURN_IF_NULL(PARAM, ret_value) \
|
||||
if ((PARAM) == nullptr) { \
|
||||
LOGE("Output parameter |" STRINGIFY(PARAM) "| not provided"); \
|
||||
return ret_value; \
|
||||
}
|
||||
|
||||
#define RETURN_IF_UNINITIALIZED(ret_value) \
|
||||
if (!IsInitialized()) { \
|
||||
LOGE("Crypto session is not initialized"); \
|
||||
@@ -286,10 +296,8 @@ void CryptoSession::Terminate() {
|
||||
}
|
||||
|
||||
CdmResponseType CryptoSession::GetTokenFromKeybox(std::string* token) {
|
||||
if (token == nullptr) {
|
||||
LOGE("Output parameter |token| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(token, PARAMETER_NULL);
|
||||
|
||||
std::string temp_buffer(KEYBOX_KEY_DATA_SIZE, '\0');
|
||||
size_t buf_size = temp_buffer.size();
|
||||
uint8_t* buf = reinterpret_cast<uint8_t*>(&temp_buffer[0]);
|
||||
@@ -311,10 +319,8 @@ CdmResponseType CryptoSession::GetTokenFromKeybox(std::string* token) {
|
||||
}
|
||||
|
||||
CdmResponseType CryptoSession::GetTokenFromOemCert(std::string* token) {
|
||||
if (token == nullptr) {
|
||||
LOGE("Output parameter |token| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(token, PARAMETER_NULL);
|
||||
|
||||
OEMCryptoResult status;
|
||||
if (!oem_token_.empty()) {
|
||||
token->assign(oem_token_);
|
||||
@@ -351,9 +357,8 @@ CdmResponseType CryptoSession::GetTokenFromOemCert(std::string* token) {
|
||||
|
||||
CdmResponseType CryptoSession::GetProvisioningToken(std::string* token) {
|
||||
if (token == nullptr) {
|
||||
LOGE("Output parameter |token| not provided");
|
||||
metrics_->crypto_session_get_token_.Increment(PARAMETER_NULL);
|
||||
return PARAMETER_NULL;
|
||||
RETURN_IF_NULL(token, PARAMETER_NULL);
|
||||
}
|
||||
|
||||
if (!IsInitialized()) {
|
||||
@@ -414,10 +419,7 @@ CdmSecurityLevel CryptoSession::GetSecurityLevel(
|
||||
|
||||
CdmResponseType CryptoSession::GetInternalDeviceUniqueId(
|
||||
std::string* device_id) {
|
||||
if (device_id == nullptr) {
|
||||
LOGE("Output parameter |device_id| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(device_id, PARAMETER_NULL);
|
||||
RETURN_IF_UNINITIALIZED(CRYPTO_SESSION_NOT_INITIALIZED);
|
||||
|
||||
std::vector<uint8_t> id;
|
||||
@@ -460,10 +462,8 @@ CdmResponseType CryptoSession::GetInternalDeviceUniqueId(
|
||||
|
||||
CdmResponseType CryptoSession::GetExternalDeviceUniqueId(
|
||||
std::string* device_id) {
|
||||
if (device_id == nullptr) {
|
||||
LOGE("Output parameter |device_id| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(device_id, PARAMETER_NULL);
|
||||
|
||||
std::string temp;
|
||||
CdmResponseType status = GetInternalDeviceUniqueId(&temp);
|
||||
|
||||
@@ -512,13 +512,9 @@ bool CryptoSession::GetApiVersion(SecurityLevel security_level,
|
||||
}
|
||||
|
||||
bool CryptoSession::GetSystemId(uint32_t* system_id) {
|
||||
if (system_id == nullptr) {
|
||||
LOGE("Output parameter |system_id| not provided");
|
||||
return false;
|
||||
}
|
||||
if (!IsInitialized() || !open_) {
|
||||
return false;
|
||||
}
|
||||
RETURN_IF_NULL(system_id, false);
|
||||
RETURN_IF_UNINITIALIZED(false);
|
||||
RETURN_IF_NOT_OPEN(false);
|
||||
*system_id = system_id_;
|
||||
return true;
|
||||
}
|
||||
@@ -527,10 +523,7 @@ bool CryptoSession::GetSystemId(uint32_t* system_id) {
|
||||
// This method assumes that OEMCrypto has been initialized before making this
|
||||
// call.
|
||||
CdmResponseType CryptoSession::GetSystemIdInternal(uint32_t* system_id) {
|
||||
if (system_id == nullptr) {
|
||||
LOGE("Output parameter |system_id| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(system_id, PARAMETER_NULL);
|
||||
|
||||
if (pre_provision_token_type_ == kClientTokenKeybox) {
|
||||
std::string token;
|
||||
@@ -579,10 +572,7 @@ bool CryptoSession::ExtractSystemIdFromOemCert(const std::string& oem_cert,
|
||||
}
|
||||
|
||||
CdmResponseType CryptoSession::GetProvisioningId(std::string* provisioning_id) {
|
||||
if (provisioning_id == nullptr) {
|
||||
LOGE("Output parameter |provisioning_id| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(provisioning_id, PARAMETER_NULL);
|
||||
RETURN_IF_UNINITIALIZED(CRYPTO_SESSION_NOT_INITIALIZED);
|
||||
|
||||
if (pre_provision_token_type_ == kClientTokenOemCert) {
|
||||
@@ -783,10 +773,7 @@ void CryptoSession::Close() {
|
||||
CdmResponseType CryptoSession::PrepareRequest(const std::string& message,
|
||||
bool is_provisioning,
|
||||
std::string* signature) {
|
||||
if (signature == nullptr) {
|
||||
LOGE("Output parameter |signature| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(signature, PARAMETER_NULL);
|
||||
|
||||
if (is_provisioning && (pre_provision_token_type_ == kClientTokenKeybox)) {
|
||||
CdmResponseType status = GenerateDerivedKeys(message);
|
||||
@@ -801,10 +788,7 @@ CdmResponseType CryptoSession::PrepareRequest(const std::string& message,
|
||||
|
||||
CdmResponseType CryptoSession::PrepareRenewalRequest(const std::string& message,
|
||||
std::string* signature) {
|
||||
if (signature == nullptr) {
|
||||
LOGE("Output parameter |signature| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(signature, PARAMETER_NULL);
|
||||
|
||||
return GenerateSignature(message, signature);
|
||||
}
|
||||
@@ -1009,10 +993,7 @@ CdmResponseType CryptoSession::GenerateDerivedKeys(
|
||||
CdmResponseType CryptoSession::GenerateSignature(const std::string& message,
|
||||
std::string* signature) {
|
||||
LOGV("Generating signature: id = %u", oec_session_id_);
|
||||
if (signature == nullptr) {
|
||||
LOGE("Output parameter |signature| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(signature, PARAMETER_NULL);
|
||||
|
||||
OEMCryptoResult sts;
|
||||
size_t length = signature->size();
|
||||
@@ -1049,10 +1030,7 @@ CdmResponseType CryptoSession::GenerateSignature(const std::string& message,
|
||||
CdmResponseType CryptoSession::GenerateRsaSignature(const std::string& message,
|
||||
std::string* signature) {
|
||||
LOGV("Generating RSA signature: id = %u", oec_session_id_);
|
||||
if (signature == nullptr) {
|
||||
LOGE("Output parameter |signature| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(signature, PARAMETER_NULL);
|
||||
|
||||
OEMCryptoResult sts;
|
||||
signature->resize(kRsaSignatureLength);
|
||||
@@ -1287,10 +1265,7 @@ CdmResponseType CryptoSession::GenerateUsageReport(
|
||||
int64_t* seconds_since_last_played) {
|
||||
LOGV("Generating usage report: id = %u", oec_session_id_);
|
||||
|
||||
if (usage_report == nullptr) {
|
||||
LOGE("Output parameter |usage_report| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(usage_report, PARAMETER_NULL);
|
||||
|
||||
uint8_t* pst = reinterpret_cast<uint8_t*>(
|
||||
const_cast<char*>(provider_session_token.data()));
|
||||
@@ -1476,10 +1451,7 @@ bool CryptoSession::IsAntiRollbackHwPresent() {
|
||||
}
|
||||
|
||||
CdmResponseType CryptoSession::GenerateNonce(uint32_t* nonce) {
|
||||
if (nonce == nullptr) {
|
||||
LOGE("Output parameter |nonce| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(nonce, PARAMETER_NULL);
|
||||
|
||||
OEMCryptoResult result;
|
||||
WithOecWriteLock("GenerateNonce", [&] {
|
||||
@@ -1645,14 +1617,9 @@ CdmResponseType CryptoSession::GetHdcpCapabilities(SecurityLevel security_level,
|
||||
LOGV("Getting HDCP capabilities: id = %u, security_level = %d",
|
||||
oec_session_id_, static_cast<int>(security_level));
|
||||
RETURN_IF_UNINITIALIZED(CRYPTO_SESSION_NOT_INITIALIZED);
|
||||
if (current == nullptr) {
|
||||
LOGE("Output parameter |current| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
if (max == nullptr) {
|
||||
LOGE("Output parameter |max| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(current, PARAMETER_NULL);
|
||||
RETURN_IF_NULL(max, PARAMETER_NULL);
|
||||
|
||||
OEMCryptoResult status;
|
||||
WithOecReadLock("GetHdcpCapabilities", [&] {
|
||||
status = OEMCrypto_GetHDCPCapability(security_level, current, max);
|
||||
@@ -1674,10 +1641,7 @@ bool CryptoSession::GetSupportedCertificateTypes(
|
||||
SupportedCertificateTypes* support) {
|
||||
LOGV("Getting supported certificate types: id = %u", oec_session_id_);
|
||||
RETURN_IF_UNINITIALIZED(false);
|
||||
if (support == nullptr) {
|
||||
LOGE("Output parameter |support| not provided");
|
||||
return false;
|
||||
}
|
||||
RETURN_IF_NULL(support, false);
|
||||
|
||||
uint32_t oec_support;
|
||||
WithOecReadLock("GetSupportedCertificateTypes", [&] {
|
||||
@@ -1691,10 +1655,8 @@ bool CryptoSession::GetSupportedCertificateTypes(
|
||||
|
||||
CdmResponseType CryptoSession::GetRandom(size_t data_length,
|
||||
uint8_t* random_data) {
|
||||
if (random_data == nullptr) {
|
||||
LOGE("Output parameter |random_data| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(random_data, PARAMETER_NULL);
|
||||
|
||||
OEMCryptoResult sts;
|
||||
WithOecReadLock("GetRandom",
|
||||
[&] { sts = OEMCrypto_GetRandom(random_data, data_length); });
|
||||
@@ -1708,10 +1670,7 @@ CdmResponseType CryptoSession::GetNumberOfOpenSessions(
|
||||
LOGV("Getting number of open sessions: id = %u, security_level = %d",
|
||||
oec_session_id_, static_cast<int>(security_level));
|
||||
RETURN_IF_UNINITIALIZED(CRYPTO_SESSION_NOT_INITIALIZED);
|
||||
if (count == nullptr) {
|
||||
LOGE("Output parameter |count| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(count, PARAMETER_NULL);
|
||||
|
||||
size_t sessions_count;
|
||||
OEMCryptoResult status;
|
||||
@@ -1735,11 +1694,7 @@ CdmResponseType CryptoSession::GetMaxNumberOfSessions(
|
||||
LOGV("Getting max number of sessions: id = %u, security_level = %d",
|
||||
oec_session_id_, static_cast<int>(security_level));
|
||||
RETURN_IF_UNINITIALIZED(CRYPTO_SESSION_NOT_INITIALIZED);
|
||||
|
||||
if (max == nullptr) {
|
||||
LOGE("Output parameter |max| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(max, PARAMETER_NULL);
|
||||
|
||||
size_t max_sessions = 0;
|
||||
OEMCryptoResult status;
|
||||
@@ -1761,10 +1716,7 @@ CdmResponseType CryptoSession::GetMaxNumberOfSessions(
|
||||
CdmResponseType CryptoSession::GetSrmVersion(uint16_t* srm_version) {
|
||||
LOGV("Getting SRM version");
|
||||
RETURN_IF_UNINITIALIZED(CRYPTO_SESSION_NOT_INITIALIZED);
|
||||
if (srm_version == nullptr) {
|
||||
LOGE("Output parameter |srm_version| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(srm_version, PARAMETER_NULL);
|
||||
|
||||
OEMCryptoResult status;
|
||||
WithOecReadLock("GetSrmVersion", [&] {
|
||||
@@ -1817,10 +1769,8 @@ bool CryptoSession::GetResourceRatingTier(SecurityLevel security_level,
|
||||
LOGV("Getting resource rating tier: security_level = %d",
|
||||
static_cast<int>(security_level));
|
||||
RETURN_IF_UNINITIALIZED(false);
|
||||
if (tier == nullptr) {
|
||||
LOGE("Output parameter |tier| not provided");
|
||||
return false;
|
||||
}
|
||||
RETURN_IF_NULL(tier, false);
|
||||
|
||||
WithOecReadLock("GetResourceRatingTier", [&] {
|
||||
*tier = OEMCrypto_ResourceRatingTier(security_level);
|
||||
metrics_->oemcrypto_resource_rating_tier_.Record(*tier);
|
||||
@@ -1847,10 +1797,8 @@ bool CryptoSession::GetBuildInformation(SecurityLevel security_level,
|
||||
LOGV("Getting build information: security_level = %d",
|
||||
static_cast<int>(security_level));
|
||||
RETURN_IF_UNINITIALIZED(false);
|
||||
if (info == nullptr) {
|
||||
LOGE("Output parameter |info| not provided");
|
||||
return false;
|
||||
}
|
||||
RETURN_IF_NULL(info, false);
|
||||
|
||||
const char* build_information;
|
||||
WithOecReadLock("GetBuildInformation", [&] {
|
||||
build_information = OEMCrypto_BuildInformation(security_level);
|
||||
@@ -1902,10 +1850,7 @@ CdmResponseType CryptoSession::SetDecryptHash(uint32_t frame_number,
|
||||
|
||||
CdmResponseType CryptoSession::GetDecryptHashError(std::string* error_string) {
|
||||
LOGV("Getting decrypt hash error");
|
||||
if (error_string == nullptr) {
|
||||
LOGE("Output parameter |error_string| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(error_string, PARAMETER_NULL);
|
||||
error_string->clear();
|
||||
|
||||
uint32_t failed_frame_number = 0;
|
||||
@@ -1944,10 +1889,7 @@ CdmResponseType CryptoSession::GenericEncrypt(const std::string& in_buffer,
|
||||
CdmEncryptionAlgorithm algorithm,
|
||||
std::string* out_buffer) {
|
||||
LOGV("Generic encrypt: id = %u", oec_session_id_);
|
||||
if (out_buffer == nullptr) {
|
||||
LOGE("Output parameter |out_buffer| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(out_buffer, PARAMETER_NULL);
|
||||
|
||||
OEMCrypto_Algorithm oec_algorithm = GenericEncryptionAlgorithm(algorithm);
|
||||
if (iv.size() != GenericEncryptionBlockSize(algorithm) ||
|
||||
@@ -2008,10 +1950,7 @@ CdmResponseType CryptoSession::GenericDecrypt(const std::string& in_buffer,
|
||||
CdmEncryptionAlgorithm algorithm,
|
||||
std::string* out_buffer) {
|
||||
LOGV("Generic decrypt: id = %u", oec_session_id_);
|
||||
if (out_buffer == nullptr) {
|
||||
LOGE("Output parameter |out_buffer| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(out_buffer, PARAMETER_NULL);
|
||||
|
||||
OEMCrypto_Algorithm oec_algorithm = GenericEncryptionAlgorithm(algorithm);
|
||||
if (iv.size() != GenericEncryptionBlockSize(algorithm) ||
|
||||
@@ -2071,10 +2010,7 @@ CdmResponseType CryptoSession::GenericSign(const std::string& message,
|
||||
CdmSigningAlgorithm algorithm,
|
||||
std::string* signature) {
|
||||
LOGV("Generic sign: id = %u", oec_session_id_);
|
||||
if (signature == nullptr) {
|
||||
LOGE("Output parameter |signature| not provided");
|
||||
return PARAMETER_NULL;
|
||||
}
|
||||
RETURN_IF_NULL(signature, PARAMETER_NULL);
|
||||
|
||||
OEMCrypto_Algorithm oec_algorithm = GenericSigningAlgorithm(algorithm);
|
||||
if (oec_algorithm == kInvalidAlgorithm) {
|
||||
@@ -2192,10 +2128,7 @@ CdmResponseType CryptoSession::GetUsageSupportType(
|
||||
CdmUsageSupportType* usage_support_type) {
|
||||
LOGV("Getting usage support type: id = %u", oec_session_id_);
|
||||
|
||||
if (usage_support_type == nullptr) {
|
||||
LOGE("Output parameter |usage_support_type| not provided");
|
||||
return INVALID_PARAMETERS_ENG_23;
|
||||
}
|
||||
RETURN_IF_NULL(usage_support_type, PARAMETER_NULL);
|
||||
|
||||
if (usage_support_type_ != kUnknownUsageSupport) {
|
||||
*usage_support_type = usage_support_type_;
|
||||
@@ -2224,10 +2157,7 @@ CdmResponseType CryptoSession::CreateUsageTableHeader(
|
||||
CdmUsageTableHeader* usage_table_header) {
|
||||
LOGV("Creating usage table header: id = %u", oec_session_id_);
|
||||
|
||||
if (usage_table_header == nullptr) {
|
||||
LOGE("Output parameter |usage_table_header| not provided");
|
||||
return INVALID_PARAMETERS_ENG_17;
|
||||
}
|
||||
RETURN_IF_NULL(usage_table_header, PARAMETER_NULL);
|
||||
|
||||
usage_table_header->resize(kEstimatedInitialUsageTableHeader);
|
||||
|
||||
@@ -2305,10 +2235,7 @@ CdmResponseType CryptoSession::LoadUsageTableHeader(
|
||||
CdmResponseType CryptoSession::CreateUsageEntry(uint32_t* entry_number) {
|
||||
LOGV("Creating usage entry: id = %u", oec_session_id_);
|
||||
|
||||
if (entry_number == nullptr) {
|
||||
LOGE("Output parameter |entry_number| not provided");
|
||||
return INVALID_PARAMETERS_ENG_18;
|
||||
}
|
||||
RETURN_IF_NULL(entry_number, PARAMETER_NULL);
|
||||
|
||||
OEMCryptoResult result;
|
||||
WithOecWriteLock("CreateUsageEntry", [&] {
|
||||
@@ -2380,15 +2307,8 @@ CdmResponseType CryptoSession::UpdateUsageEntry(
|
||||
CdmUsageTableHeader* usage_table_header, CdmUsageEntry* usage_entry) {
|
||||
LOGV("Updating usage entry: id = %u", oec_session_id_);
|
||||
|
||||
if (usage_table_header == nullptr) {
|
||||
LOGE("Output parameter |usage_table_header| not provided");
|
||||
return INVALID_PARAMETERS_ENG_19;
|
||||
}
|
||||
|
||||
if (usage_entry == nullptr) {
|
||||
LOGE("Output parameter |usage_entry| not provided");
|
||||
return INVALID_PARAMETERS_ENG_20;
|
||||
}
|
||||
RETURN_IF_NULL(usage_table_header, PARAMETER_NULL);
|
||||
RETURN_IF_NULL(usage_entry, PARAMETER_NULL);
|
||||
|
||||
size_t usage_table_header_len = 0;
|
||||
size_t usage_entry_len = 0;
|
||||
@@ -2429,10 +2349,7 @@ CdmResponseType CryptoSession::ShrinkUsageTableHeader(
|
||||
uint32_t new_entry_count, CdmUsageTableHeader* usage_table_header) {
|
||||
LOGV("Shrinking usage table header: id = %u", oec_session_id_);
|
||||
|
||||
if (usage_table_header == nullptr) {
|
||||
LOGE("Output parameter |usage_table_header| not provided");
|
||||
return INVALID_PARAMETERS_ENG_21;
|
||||
}
|
||||
RETURN_IF_NULL(usage_table_header, PARAMETER_NULL);
|
||||
|
||||
size_t usage_table_header_len = 0;
|
||||
OEMCryptoResult result;
|
||||
|
||||
@@ -350,21 +350,6 @@ void PrintTo(const enum CdmResponseType& value, ::std::ostream* os) {
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user