Bug: 35269103 Test: Removing unnecessary code. Existing tests pass. Change-Id: I1ba8572a8b3fabbf707e77b366717c9ba3069ace
141 lines
7.3 KiB
C++
141 lines
7.3 KiB
C++
// Copyright 2016 Google Inc. All Rights Reserved.
|
|
|
|
#ifndef WVCDM_METRICS_METRICS_GROUP_H_
|
|
#define WVCDM_METRICS_METRICS_GROUP_H_
|
|
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
#include "OEMCryptoCENC.h"
|
|
#include "event_metric.h"
|
|
#include "metric_publisher.h"
|
|
#include "wv_cdm_types.h"
|
|
|
|
namespace wvcdm {
|
|
namespace metrics {
|
|
|
|
typedef enum OEMCryptoInitializationMode {
|
|
OEMCrypto_INITIALIZED_USING_IN_APP = 0,
|
|
OEMCrypto_INITIALIZED_FORCING_L3 = 1,
|
|
OEMCrypto_INITIALIZED_USING_L3_NO_L1_LIBRARY_PATH = 2,
|
|
OEMCrypto_INITIALIZED_USING_L3_L1_OPEN_FAILED = 3,
|
|
OEMCrypto_INITIALIZED_USING_L3_L1_LOAD_FAILED = 4,
|
|
OEMCrypto_INITIALIZED_USING_L3_COULD_NOT_INITIALIZE_L1 = 5,
|
|
OEMCrypto_INITIALIZED_USING_L3_WRONG_L1_VERSION = 6,
|
|
OEMCrypto_INITIALIZED_USING_L1_WITH_KEYBOX = 7,
|
|
OEMCrypto_INITIALIZED_USING_L1_WITH_CERTIFICATE = 8,
|
|
OEMCrypto_INITIALIZED_USING_L1_CERTIFICATE_MIX = 9,
|
|
OEMCrypto_INITIALIZED_USING_L3_BAD_KEYBOX = 10,
|
|
OEMCrypto_INITIALIZED_USING_L3_COULD_NOT_OPEN_FACTORY_KEYBOX = 11,
|
|
OEMCrypto_INITIALIZED_USING_L3_COULD_NOT_INSTALL_KEYBOX = 12,
|
|
OEMCrypto_INITIALIZED_USING_L1_INSTALLED_KEYBOX = 13,
|
|
OEMCrypto_INITIALIZED_USING_L3_INVALID_L1 = 14,
|
|
OEMCrypto_INITIALIZED_USING_L1_WITH_PROVISIONING_3_0 = 15
|
|
} OEMCryptoInitializationMode;
|
|
|
|
/*
|
|
* The metrics group is the group of all metrics that be be recorded. They
|
|
* are kept together to allow calls to be correlated to one another.
|
|
*/
|
|
class MetricsGroup {
|
|
public:
|
|
/* CDM ENGINE */
|
|
EventMetric<CdmResponseType> cdm_engine_add_key_;
|
|
EventMetric<CdmResponseType> cdm_engine_close_session_;
|
|
EventMetric<CdmResponseType> cdm_engine_decrypt_;
|
|
EventMetric<bool> cdm_engine_find_session_for_key_;
|
|
EventMetric<CdmResponseType> cdm_engine_generate_key_request_;
|
|
EventMetric<CdmResponseType> cdm_engine_get_provisioning_request_;
|
|
EventMetric<CdmResponseType> cdm_engine_get_usage_info_;
|
|
EventMetric<CdmResponseType> cdm_engine_handle_provisioning_response_;
|
|
EventMetric<> cdm_engine_life_span_;
|
|
EventMetric<CdmResponseType> cdm_engine_open_key_set_session_;
|
|
EventMetric<CdmResponseType> cdm_engine_open_session_;
|
|
EventMetric<CdmResponseType> cdm_engine_query_key_status_;
|
|
EventMetric<CdmResponseType> cdm_engine_release_all_usage_info_;
|
|
EventMetric<CdmResponseType> cdm_engine_release_usage_info_;
|
|
EventMetric<CdmResponseType> cdm_engine_remove_keys_;
|
|
EventMetric<CdmResponseType> cdm_engine_restore_key_;
|
|
EventMetric<CdmResponseType, CdmSecurityLevel> cdm_engine_unprovision_;
|
|
/* CDM SESSION */
|
|
EventMetric<> cdm_session_life_span_;
|
|
EventMetric<CdmResponseType> cdm_session_renew_key_;
|
|
EventMetric<CdmResponseType> cdm_session_restore_offline_session_;
|
|
EventMetric<CdmResponseType> cdm_session_restore_usage_session_;
|
|
/* CRYPTO SESSION */
|
|
EventMetric<CdmResponseType> crypto_session_delete_all_usage_reports_;
|
|
EventMetric<CdmResponseType> crypto_session_delete_multiple_usage_information_;
|
|
EventMetric<CdmResponseType, Pow2Bucket, CdmEncryptionAlgorithm> crypto_session_generic_decrypt_;
|
|
EventMetric<CdmResponseType, Pow2Bucket, CdmEncryptionAlgorithm> crypto_session_generic_encrypt_;
|
|
EventMetric<CdmResponseType, Pow2Bucket, CdmSigningAlgorithm> crypto_session_generic_sign_;
|
|
EventMetric<CdmResponseType, Pow2Bucket, CdmSigningAlgorithm> crypto_session_generic_verify_;
|
|
EventMetric<bool> crypto_session_get_device_unique_id_;
|
|
EventMetric<CdmSecurityLevel> crypto_session_get_security_level_;
|
|
EventMetric<bool, uint32_t> crypto_session_get_system_id_;
|
|
EventMetric<bool> crypto_session_get_token_;
|
|
EventMetric<> crypto_session_life_span_;
|
|
EventMetric<bool> crypto_session_load_certificate_private_key_;
|
|
EventMetric<CdmResponseType, SecurityLevel> crypto_session_open_;
|
|
EventMetric<CdmResponseType> crypto_session_update_usage_information_;
|
|
EventMetric<bool> crypto_session_usage_information_support_;
|
|
/* OEMCRYPTO */
|
|
EventMetric<uint32_t, SecurityLevel> oemcrypto_api_version_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_close_session_;
|
|
EventMetric<OEMCryptoResult, SecurityLevel, Pow2Bucket> oemcrypto_copy_buffer_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_deactivate_usage_entry_;
|
|
EventMetric<OEMCryptoResult, Pow2Bucket> oemcrypto_decrypt_cenc_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_delete_usage_entry_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_delete_usage_table_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_derive_keys_from_session_key_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_force_delete_usage_entry_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_generate_derived_keys_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_generate_nonce_;
|
|
EventMetric<OEMCryptoResult, Pow2Bucket> oemcrypto_generate_rsa_signature_;
|
|
EventMetric<OEMCryptoResult, Pow2Bucket> oemcrypto_generate_signature_;
|
|
EventMetric<OEMCryptoResult, Pow2Bucket> oemcrypto_generic_decrypt_;
|
|
EventMetric<OEMCryptoResult, Pow2Bucket> oemcrypto_generic_encrypt_;
|
|
EventMetric<OEMCryptoResult, Pow2Bucket> oemcrypto_generic_sign_;
|
|
EventMetric<OEMCryptoResult, Pow2Bucket> oemcrypto_generic_verify_;
|
|
EventMetric<OEMCryptoResult, SecurityLevel> oemcrypto_get_device_id_;
|
|
EventMetric<OEMCryptoResult, SecurityLevel> oemcrypto_get_hdcp_capability_;
|
|
EventMetric<OEMCryptoResult, Pow2Bucket, SecurityLevel> oemcrypto_get_key_data_;
|
|
EventMetric<OEMCryptoResult, SecurityLevel> oemcrypto_get_max_number_of_sessions_;
|
|
EventMetric<OEMCryptoResult, SecurityLevel> oemcrypto_get_number_of_open_sessions_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_get_oem_public_certificate_;
|
|
EventMetric<OEMCrypto_ProvisioningMethod, SecurityLevel> oemcrypto_get_provisioning_method_;
|
|
EventMetric<OEMCryptoResult, Pow2Bucket> oemcrypto_get_random_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_initialize_;
|
|
EventMetric<OEMCryptoResult, SecurityLevel> oemcrypto_install_keybox_;
|
|
EventMetric<bool, SecurityLevel> oemcrypto_is_anti_rollback_hw_present_;
|
|
EventMetric<OEMCryptoResult, SecurityLevel> oemcrypto_is_keybox_valid_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_load_device_rsa_key_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_load_keys_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_load_test_keybox_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_load_test_rsa_key_;
|
|
EventMetric<OEMCryptoResult, SecurityLevel> oemcrypto_open_session_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_refresh_keys_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_report_usage_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_rewrap_device_rsa_key_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_rewrap_device_rsa_key_30_;
|
|
EventMetric<std::string, SecurityLevel> oemcrypto_security_level_;
|
|
EventMetric<uint8_t, SecurityLevel> oemcrypto_security_patch_level_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_select_key_;
|
|
EventMetric<OEMCryptoResult, SecurityLevel> oemcrypto_supports_usage_table_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_update_usage_table_;
|
|
EventMetric<OEMCryptoResult> oemcrypto_wrap_keybox_;
|
|
|
|
/* Internal OEMCrypto Metrics */
|
|
EventMetric<OEMCryptoInitializationMode> oemcrypto_initialization_mode_;
|
|
EventMetric<uint32_t, uint32_t> oemcrypto_l1_api_version_;
|
|
|
|
MetricsGroup();
|
|
~MetricsGroup();
|
|
|
|
private:
|
|
void Publish(MetricNotification* subscriber);
|
|
|
|
};
|
|
} // namespace metrics
|
|
} // namespace wvcdm
|
|
#endif
|