Output metrics in YAML format
Merge from http://go/wvgerrit/158917 Use go/yamllint as reference and obfuscate portion of output to run on an online yaml validator. Sample output: http://go/cl/481370906 Test: Netflix, Play TV and Movies, Youtube Test: adb shell dumpsys android.hardware.drm.IDrmFactory/widevine Test: ./build_and_run_all_unit_tests.sh Bug: 239462891 Change-Id: I1abf1aa50aa25b97b1f6c10995c324d6de04d056
This commit is contained in:
171
libwvdrmengine/cdm/util/src/error_string_util.cpp
Normal file
171
libwvdrmengine/cdm/util/src/error_string_util.cpp
Normal file
@@ -0,0 +1,171 @@
|
||||
// Copyright 2022 Google LLC. All Rights Reserved. This file and proprietary
|
||||
// source code may only be used and distributed under the Widevine License
|
||||
// Agreement.
|
||||
//
|
||||
|
||||
#include "error_string_util.h"
|
||||
|
||||
#include "OEMCryptoCENC.h"
|
||||
#include "wv_cdm_types.h"
|
||||
|
||||
namespace wvutil {
|
||||
const std::string OEMCryptoResultToString(int oemcrypto_result) {
|
||||
switch (oemcrypto_result) {
|
||||
case OEMCrypto_SUCCESS:
|
||||
return "SUCCESS";
|
||||
case OEMCrypto_ERROR_INIT_FAILED:
|
||||
return "INIT_FAILED";
|
||||
case OEMCrypto_ERROR_TERMINATE_FAILED:
|
||||
return "TERMINATE_FAILED";
|
||||
case OEMCrypto_ERROR_OPEN_FAILURE:
|
||||
return "OPEN_FAILURE";
|
||||
case OEMCrypto_ERROR_CLOSE_FAILURE:
|
||||
return "CLOSE_FAILURE";
|
||||
case OEMCrypto_ERROR_ENTER_SECURE_PLAYBACK_FAILED:
|
||||
return "ENTER_SECURE_PLAYBACK_FAILED";
|
||||
case OEMCrypto_ERROR_EXIT_SECURE_PLAYBACK_FAILED:
|
||||
return "EXIT_SECURE_PLAYBACK_FAILED";
|
||||
case OEMCrypto_ERROR_SHORT_BUFFER:
|
||||
return "SHORT_BUFFER";
|
||||
case OEMCrypto_ERROR_NO_DEVICE_KEY:
|
||||
return "NO_DEVICE_KEY";
|
||||
case OEMCrypto_ERROR_NO_ASSET_KEY:
|
||||
return "NO_ASSET_KEY";
|
||||
case OEMCrypto_ERROR_KEYBOX_INVALID:
|
||||
return "KEYBOX_INVALID";
|
||||
case OEMCrypto_ERROR_NO_KEYDATA:
|
||||
return "NO_KEYDATA";
|
||||
case OEMCrypto_ERROR_NO_CW:
|
||||
return "NO_CW";
|
||||
case OEMCrypto_ERROR_DECRYPT_FAILED:
|
||||
return "DECRYPT_FAILED";
|
||||
case OEMCrypto_ERROR_WRITE_KEYBOX:
|
||||
return "WRITE_KEYBOX";
|
||||
case OEMCrypto_ERROR_WRAP_KEYBOX:
|
||||
return "WRAP_KEYBOX";
|
||||
case OEMCrypto_ERROR_BAD_MAGIC:
|
||||
return "BAD_MAGIC";
|
||||
case OEMCrypto_ERROR_BAD_CRC:
|
||||
return "BAD_CRC";
|
||||
case OEMCrypto_ERROR_NO_DEVICEID:
|
||||
return "NO_DEVICEID";
|
||||
case OEMCrypto_ERROR_RNG_FAILED:
|
||||
return "RNG_FAILED";
|
||||
case OEMCrypto_ERROR_RNG_NOT_SUPPORTED:
|
||||
return "RNG_NOT_SUPPORTED";
|
||||
case OEMCrypto_ERROR_SETUP:
|
||||
return "SETUP";
|
||||
case OEMCrypto_ERROR_OPEN_SESSION_FAILED:
|
||||
return "OPEN_SESSION_FAILED";
|
||||
case OEMCrypto_ERROR_CLOSE_SESSION_FAILED:
|
||||
return "CLOSE_SESSION_FAILED";
|
||||
case OEMCrypto_ERROR_INVALID_SESSION:
|
||||
return "INVALID_SESSION";
|
||||
case OEMCrypto_ERROR_NOT_IMPLEMENTED:
|
||||
return "NOT_IMPLEMENTED";
|
||||
case OEMCrypto_ERROR_NO_CONTENT_KEY:
|
||||
return "NO_CONTENT_KEY";
|
||||
case OEMCrypto_ERROR_CONTROL_INVALID:
|
||||
return "CONTROL_INVALID";
|
||||
case OEMCrypto_ERROR_UNKNOWN_FAILURE:
|
||||
return "UNKNOWN_FAILURE";
|
||||
case OEMCrypto_ERROR_INVALID_CONTEXT:
|
||||
return "INVALID_CONTEXT";
|
||||
case OEMCrypto_ERROR_SIGNATURE_FAILURE:
|
||||
return "SIGNATURE_FAILURE";
|
||||
case OEMCrypto_ERROR_TOO_MANY_SESSIONS:
|
||||
return "TOO_MANY_SESSIONS";
|
||||
case OEMCrypto_ERROR_INVALID_NONCE:
|
||||
return "INVALID_NONCE";
|
||||
case OEMCrypto_ERROR_TOO_MANY_KEYS:
|
||||
return "TOO_MANY_KEYS";
|
||||
case OEMCrypto_ERROR_DEVICE_NOT_RSA_PROVISIONED:
|
||||
return "DEVICE_NOT_RSA_PROVISIONED";
|
||||
case OEMCrypto_ERROR_INVALID_RSA_KEY:
|
||||
return "INVALID_RSA_KEY";
|
||||
case OEMCrypto_ERROR_KEY_EXPIRED:
|
||||
return "KEY_EXPIRED";
|
||||
case OEMCrypto_ERROR_INSUFFICIENT_RESOURCES:
|
||||
return "INSUFFICIENT_RESOURCES";
|
||||
case OEMCrypto_ERROR_INSUFFICIENT_HDCP:
|
||||
return "INSUFFICIENT_HDCP";
|
||||
case OEMCrypto_ERROR_BUFFER_TOO_LARGE:
|
||||
return "BUFFER_TOO_LARGE";
|
||||
case OEMCrypto_WARNING_GENERATION_SKEW:
|
||||
return "OEMCrypto_WARNING_GENERATION_SKEW";
|
||||
case OEMCrypto_ERROR_GENERATION_SKEW:
|
||||
return "GENERATION_SKEW";
|
||||
case OEMCrypto_LOCAL_DISPLAY_ONLY:
|
||||
return "OEMCrypto_LOCAL_DISPLAY_ONLY";
|
||||
case OEMCrypto_ERROR_ANALOG_OUTPUT:
|
||||
return "ANALOG_OUTPUT";
|
||||
case OEMCrypto_ERROR_WRONG_PST:
|
||||
return "WRONG_PST";
|
||||
case OEMCrypto_ERROR_WRONG_KEYS:
|
||||
return "WRONG_KEYS";
|
||||
case OEMCrypto_ERROR_MISSING_MASTER:
|
||||
return "MISSING_MASTER";
|
||||
case OEMCrypto_ERROR_LICENSE_INACTIVE:
|
||||
return "LICENSE_INACTIVE";
|
||||
case OEMCrypto_ERROR_ENTRY_NEEDS_UPDATE:
|
||||
return "ENTRY_NEEDS_UPDATE";
|
||||
case OEMCrypto_ERROR_ENTRY_IN_USE:
|
||||
return "ENTRY_IN_USE";
|
||||
case OEMCrypto_ERROR_USAGE_TABLE_UNRECOVERABLE:
|
||||
return "USAGE_TABLE_UNRECOVERABLE";
|
||||
case OEMCrypto_KEY_NOT_LOADED:
|
||||
return "OEMCrypto_KEY_NOT_LOADED";
|
||||
case OEMCrypto_KEY_NOT_ENTITLED:
|
||||
return "OEMCrypto_KEY_NOT_ENTITLED";
|
||||
case OEMCrypto_ERROR_BAD_HASH:
|
||||
return "BAD_HASH";
|
||||
case OEMCrypto_ERROR_OUTPUT_TOO_LARGE:
|
||||
return "OUTPUT_TOO_LARGE";
|
||||
case OEMCrypto_ERROR_SESSION_LOST_STATE:
|
||||
return "SESSION_LOST_STATE";
|
||||
case OEMCrypto_ERROR_SYSTEM_INVALIDATED:
|
||||
return "SYSTEM_INVALIDATED";
|
||||
case OEMCrypto_ERROR_LICENSE_RELOAD:
|
||||
return "LICENSE_RELOAD";
|
||||
case OEMCrypto_ERROR_MULTIPLE_USAGE_ENTRIES:
|
||||
return "MULTIPLE_USAGE_ENTRIES";
|
||||
case OEMCrypto_WARNING_MIXED_OUTPUT_PROTECTION:
|
||||
return "MIXED_OUTPUT_PROTECTION";
|
||||
case OEMCrypto_ERROR_INVALID_ENTITLED_KEY_SESSION:
|
||||
return "INVALID_ENTITLED_KEY_SESSION";
|
||||
case OEMCrypto_ERROR_NEEDS_KEYBOX_PROVISIONING:
|
||||
return "NEEDS_KEYBOX_PROVISIONING";
|
||||
case OEMCrypto_ERROR_UNSUPPORTED_CIPHER:
|
||||
return "OEMCrypto_ERROR_UNSUPPORTED_CIPHER";
|
||||
case OEMCrypto_ERROR_DVR_FORBIDDEN:
|
||||
return "OEMCrypto_ERROR_DVR_FORBIDDEN";
|
||||
case OEMCrypto_ERROR_INSUFFICIENT_PRIVILEGE:
|
||||
return "OEMCrypto_ERROR_INSUFFICIENT_PRIVILEGE";
|
||||
case OEMCrypto_ERROR_INVALID_KEY:
|
||||
return "INVALID_KEY";
|
||||
// ODK Values.
|
||||
case ODK_ERROR_CORE_MESSAGE:
|
||||
return "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 Values.
|
||||
case OPK_ERROR_INCOMPATIBLE_VERSION:
|
||||
return "INCOMPATIBLE_VERSION";
|
||||
case OPK_ERROR_REMOTE_CALL:
|
||||
return "REMOTE_CALL";
|
||||
case OPK_ERROR_NO_PERSISTENT_DATA:
|
||||
return "NO_PERSISTENT_DATA";
|
||||
default:
|
||||
return "Invalid OEMCrypto error.";
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace wvutil
|
||||
Reference in New Issue
Block a user