Moved OEMCryptoResult string converter.
[ Merge of http://go/wvgerrit/170073 ] Removed the file "error_string_util.cpp" and its header, moving the OEMCryptoResult to string converter to "wv_cdm_types.cpp". This extra file served little purpose, and created a dependency on the CDM utils to the CDM itself. This is part of the effort to fix the formatting of WV metrics; making enum-to-string conversion uniform throughout the CDM. Bug: 239462891 Test: adb shell dumpsys android.hardware.drm.IDrmFactory/widevine -m Test: Manual testing with Google TV Change-Id: I4bf95d26b623f5b8fa86bdb2578cbc4ee65125cb
This commit is contained in:
@@ -42,9 +42,8 @@ bool CdmResponseType::operator==(const CdmResponseType& other) const {
|
||||
std::string CdmResponseType::ToString() const {
|
||||
std::string result = CdmResponseEnumToString(code_);
|
||||
if (!HasOemcResult()) return result;
|
||||
// TODO(sigquit): Consider using a string representation of OEMCryptoResult.
|
||||
result.append(" (oemc_result = ");
|
||||
result.append(std::to_string(oemc_result_));
|
||||
result.append(OemCryptoResultToString(oemc_result_));
|
||||
if (HasCryptoSessionMethod()) {
|
||||
result.append(", method = ");
|
||||
result.append(crypto_session_method_);
|
||||
@@ -867,7 +866,7 @@ const char* CdmResponseEnumToString(CdmResponseEnum cdm_response_enum) {
|
||||
case STORE_ATSC_LICENSE_ERROR:
|
||||
return "STORE_ATSC_LICENSE_ERROR";
|
||||
}
|
||||
return UnknownEnumValueToString(cdm_response_enum);
|
||||
return UnknownValueRep(cdm_response_enum);
|
||||
}
|
||||
|
||||
const char* UnknownEnumValueToString(int value) {
|
||||
@@ -884,4 +883,168 @@ const char* IdPtrToString(const std::string* id) {
|
||||
if (id == nullptr) return kNullIdRep;
|
||||
return id->empty() ? kEmptyIdRep : id->c_str();
|
||||
}
|
||||
|
||||
const char* OemCryptoResultToString(OEMCryptoResult result) {
|
||||
switch (result) {
|
||||
/* OEMCrypto return values */
|
||||
case OEMCrypto_SUCCESS:
|
||||
return "SUCCESS";
|
||||
case OEMCrypto_ERROR_INIT_FAILED:
|
||||
return "ERROR_INIT_FAILED";
|
||||
case OEMCrypto_ERROR_TERMINATE_FAILED:
|
||||
return "ERROR_TERMINATE_FAILED";
|
||||
case OEMCrypto_ERROR_OPEN_FAILURE:
|
||||
return "ERROR_OPEN_FAILURE";
|
||||
case OEMCrypto_ERROR_CLOSE_FAILURE:
|
||||
return "ERROR_CLOSE_FAILURE";
|
||||
case OEMCrypto_ERROR_ENTER_SECURE_PLAYBACK_FAILED:
|
||||
return "ERROR_ENTER_SECURE_PLAYBACK_FAILED";
|
||||
case OEMCrypto_ERROR_EXIT_SECURE_PLAYBACK_FAILED:
|
||||
return "ERROR_EXIT_SECURE_PLAYBACK_FAILED";
|
||||
case OEMCrypto_ERROR_SHORT_BUFFER:
|
||||
return "ERROR_SHORT_BUFFER";
|
||||
case OEMCrypto_ERROR_NO_DEVICE_KEY:
|
||||
return "ERROR_NO_DEVICE_KEY";
|
||||
case OEMCrypto_ERROR_NO_ASSET_KEY:
|
||||
return "ERROR_NO_ASSET_KEY";
|
||||
case OEMCrypto_ERROR_KEYBOX_INVALID:
|
||||
return "ERROR_KEYBOX_INVALID";
|
||||
case OEMCrypto_ERROR_NO_KEYDATA:
|
||||
return "ERROR_NO_KEYDATA";
|
||||
case OEMCrypto_ERROR_NO_CW:
|
||||
return "ERROR_NO_CW";
|
||||
case OEMCrypto_ERROR_DECRYPT_FAILED:
|
||||
return "ERROR_DECRYPT_FAILED";
|
||||
case OEMCrypto_ERROR_WRITE_KEYBOX:
|
||||
return "ERROR_WRITE_KEYBOX";
|
||||
case OEMCrypto_ERROR_WRAP_KEYBOX:
|
||||
return "ERROR_WRAP_KEYBOX";
|
||||
case OEMCrypto_ERROR_BAD_MAGIC:
|
||||
return "ERROR_BAD_MAGIC";
|
||||
case OEMCrypto_ERROR_BAD_CRC:
|
||||
return "ERROR_BAD_CRC";
|
||||
case OEMCrypto_ERROR_NO_DEVICEID:
|
||||
return "ERROR_NO_DEVICEID";
|
||||
case OEMCrypto_ERROR_RNG_FAILED:
|
||||
return "ERROR_RNG_FAILED";
|
||||
case OEMCrypto_ERROR_RNG_NOT_SUPPORTED:
|
||||
return "ERROR_RNG_NOT_SUPPORTED";
|
||||
case OEMCrypto_ERROR_SETUP:
|
||||
return "ERROR_SETUP";
|
||||
case OEMCrypto_ERROR_OPEN_SESSION_FAILED:
|
||||
return "ERROR_OPEN_SESSION_FAILED";
|
||||
case OEMCrypto_ERROR_CLOSE_SESSION_FAILED:
|
||||
return "ERROR_CLOSE_SESSION_FAILED";
|
||||
case OEMCrypto_ERROR_INVALID_SESSION:
|
||||
return "ERROR_INVALID_SESSION";
|
||||
case OEMCrypto_ERROR_NOT_IMPLEMENTED:
|
||||
return "ERROR_NOT_IMPLEMENTED";
|
||||
case OEMCrypto_ERROR_NO_CONTENT_KEY:
|
||||
return "ERROR_NO_CONTENT_KEY";
|
||||
case OEMCrypto_ERROR_CONTROL_INVALID:
|
||||
return "ERROR_CONTROL_INVALID";
|
||||
case OEMCrypto_ERROR_UNKNOWN_FAILURE:
|
||||
return "ERROR_UNKNOWN_FAILURE";
|
||||
case OEMCrypto_ERROR_INVALID_CONTEXT:
|
||||
return "ERROR_INVALID_CONTEXT";
|
||||
case OEMCrypto_ERROR_SIGNATURE_FAILURE:
|
||||
return "ERROR_SIGNATURE_FAILURE";
|
||||
case OEMCrypto_ERROR_TOO_MANY_SESSIONS:
|
||||
return "ERROR_TOO_MANY_SESSIONS";
|
||||
case OEMCrypto_ERROR_INVALID_NONCE:
|
||||
return "ERROR_INVALID_NONCE";
|
||||
case OEMCrypto_ERROR_TOO_MANY_KEYS:
|
||||
return "ERROR_TOO_MANY_KEYS";
|
||||
case OEMCrypto_ERROR_DEVICE_NOT_RSA_PROVISIONED:
|
||||
return "ERROR_DEVICE_NOT_RSA_PROVISIONED";
|
||||
case OEMCrypto_ERROR_INVALID_RSA_KEY:
|
||||
return "ERROR_INVALID_RSA_KEY";
|
||||
case OEMCrypto_ERROR_KEY_EXPIRED:
|
||||
return "ERROR_KEY_EXPIRED";
|
||||
case OEMCrypto_ERROR_INSUFFICIENT_RESOURCES:
|
||||
return "ERROR_INSUFFICIENT_RESOURCES";
|
||||
case OEMCrypto_ERROR_INSUFFICIENT_HDCP:
|
||||
return "ERROR_INSUFFICIENT_HDCP";
|
||||
case OEMCrypto_ERROR_BUFFER_TOO_LARGE:
|
||||
return "ERROR_BUFFER_TOO_LARGE";
|
||||
case OEMCrypto_WARNING_GENERATION_SKEW:
|
||||
return "WARNING_GENERATION_SKEW";
|
||||
case OEMCrypto_ERROR_GENERATION_SKEW:
|
||||
return "ERROR_GENERATION_SKEW";
|
||||
case OEMCrypto_LOCAL_DISPLAY_ONLY:
|
||||
return "LOCAL_DISPLAY_ONLY";
|
||||
case OEMCrypto_ERROR_ANALOG_OUTPUT:
|
||||
return "ERROR_ANALOG_OUTPUT";
|
||||
case OEMCrypto_ERROR_WRONG_PST:
|
||||
return "ERROR_WRONG_PST";
|
||||
case OEMCrypto_ERROR_WRONG_KEYS:
|
||||
return "ERROR_WRONG_KEYS";
|
||||
case OEMCrypto_ERROR_MISSING_MASTER:
|
||||
return "ERROR_MISSING_MASTER";
|
||||
case OEMCrypto_ERROR_LICENSE_INACTIVE:
|
||||
return "ERROR_LICENSE_INACTIVE";
|
||||
case OEMCrypto_ERROR_ENTRY_NEEDS_UPDATE:
|
||||
return "ERROR_ENTRY_NEEDS_UPDATE";
|
||||
case OEMCrypto_ERROR_ENTRY_IN_USE:
|
||||
return "ERROR_ENTRY_IN_USE";
|
||||
case OEMCrypto_ERROR_USAGE_TABLE_UNRECOVERABLE:
|
||||
return "ERROR_USAGE_TABLE_UNRECOVERABLE";
|
||||
case OEMCrypto_KEY_NOT_LOADED:
|
||||
return "KEY_NOT_LOADED";
|
||||
case OEMCrypto_KEY_NOT_ENTITLED:
|
||||
return "KEY_NOT_ENTITLED";
|
||||
case OEMCrypto_ERROR_BAD_HASH:
|
||||
return "ERROR_BAD_HASH";
|
||||
case OEMCrypto_ERROR_OUTPUT_TOO_LARGE:
|
||||
return "ERROR_OUTPUT_TOO_LARGE";
|
||||
case OEMCrypto_ERROR_SESSION_LOST_STATE:
|
||||
return "ERROR_SESSION_LOST_STATE";
|
||||
case OEMCrypto_ERROR_SYSTEM_INVALIDATED:
|
||||
return "ERROR_SYSTEM_INVALIDATED";
|
||||
case OEMCrypto_ERROR_LICENSE_RELOAD:
|
||||
return "ERROR_LICENSE_RELOAD";
|
||||
case OEMCrypto_ERROR_MULTIPLE_USAGE_ENTRIES:
|
||||
return "ERROR_MULTIPLE_USAGE_ENTRIES";
|
||||
case OEMCrypto_WARNING_MIXED_OUTPUT_PROTECTION:
|
||||
return "WARNING_MIXED_OUTPUT_PROTECTION";
|
||||
case OEMCrypto_ERROR_INVALID_ENTITLED_KEY_SESSION:
|
||||
return "ERROR_INVALID_ENTITLED_KEY_SESSION";
|
||||
case OEMCrypto_ERROR_NEEDS_KEYBOX_PROVISIONING:
|
||||
return "ERROR_NEEDS_KEYBOX_PROVISIONING";
|
||||
case OEMCrypto_ERROR_UNSUPPORTED_CIPHER:
|
||||
return "ERROR_UNSUPPORTED_CIPHER";
|
||||
case OEMCrypto_ERROR_DVR_FORBIDDEN:
|
||||
return "ERROR_DVR_FORBIDDEN";
|
||||
case OEMCrypto_ERROR_INSUFFICIENT_PRIVILEGE:
|
||||
return "ERROR_INSUFFICIENT_PRIVILEGE";
|
||||
case OEMCrypto_ERROR_INVALID_KEY:
|
||||
return "ERROR_INVALID_KEY";
|
||||
/* ODK return values */
|
||||
case ODK_ERROR_CORE_MESSAGE:
|
||||
return "ERROR_CORE_MESSAGE";
|
||||
case ODK_SET_TIMER:
|
||||
return "SET_TIMER";
|
||||
case ODK_DISABLE_TIMER:
|
||||
return "DISABLE_TIMER";
|
||||
case ODK_TIMER_EXPIRED:
|
||||
return "TIMER_EXPIRED";
|
||||
case ODK_UNSUPPORTED_API:
|
||||
return "UNSUPPORTED_API";
|
||||
case ODK_STALE_RENEWAL:
|
||||
return "STALE_RENEWAL";
|
||||
/* OPK return values */
|
||||
case OPK_ERROR_REMOTE_CALL:
|
||||
return "ERROR_REMOTE_CALL";
|
||||
case OPK_ERROR_INCOMPATIBLE_VERSION:
|
||||
return "ERROR_INCOMPATIBLE_VERSION";
|
||||
case OPK_ERROR_NO_PERSISTENT_DATA:
|
||||
return "ERROR_NO_PERSISTENT_DATA";
|
||||
case OPK_ERROR_PREHOOK_FAILURE:
|
||||
return "ERROR_PREHOOK_FAILURE";
|
||||
case OPK_ERROR_POSTHOOK_FAILURE:
|
||||
return "ERROR_POSTHOOK_FAILURE";
|
||||
}
|
||||
return UnknownValueRep(result);
|
||||
}
|
||||
|
||||
} // namespace wvcdm
|
||||
|
||||
Reference in New Issue
Block a user