diff --git a/libwvdrmengine/cdm/core/src/crypto_session.cpp b/libwvdrmengine/cdm/core/src/crypto_session.cpp index cb2693ab..f66a0dab 100644 --- a/libwvdrmengine/cdm/core/src/crypto_session.cpp +++ b/libwvdrmengine/cdm/core/src/crypto_session.cpp @@ -225,34 +225,43 @@ bool CryptoSession::GetProvisioningToken(std::string* token) { CdmSecurityLevel CryptoSession::GetSecurityLevel() { LOGV("CryptoSession::GetSecurityLevel"); if (!initialized_) { + M_RECORD(metrics_, oemcrypto_security_level_, 0, + kSecurityLevelUninitialized, requested_security_level_); return kSecurityLevelUninitialized; } - std::string security_level; - M_TIME( - security_level = OEMCrypto_SecurityLevel( - requested_security_level_), - metrics_, - oemcrypto_security_level_, - security_level, - requested_security_level_); + wvcdm::metrics::TimerMetric timer; + timer.Start(); + + std::string security_level = + OEMCrypto_SecurityLevel(requested_security_level_); + double clock_time = timer.AsUs(); if ((security_level.size() != 2) || (security_level.at(0) != 'L')) { + M_RECORD(metrics_, oemcrypto_security_level_, clock_time, + kSecurityLevelUnknown, requested_security_level_); return kSecurityLevelUnknown; } + CdmSecurityLevel cdm_security_level; switch (security_level.at(1)) { case '1': - return kSecurityLevelL1; + cdm_security_level = kSecurityLevelL1; + break; case '2': - return kSecurityLevelL2; + cdm_security_level = kSecurityLevelL2; + break; case '3': - return kSecurityLevelL3; + cdm_security_level = kSecurityLevelL3; + break; default: - return kSecurityLevelUnknown; + cdm_security_level = kSecurityLevelUnknown; + break; } - return kSecurityLevelUnknown; + M_RECORD(metrics_, oemcrypto_security_level_, clock_time, + cdm_security_level, requested_security_level_); + return cdm_security_level; } bool CryptoSession::GetInternalDeviceUniqueId(std::string* device_id) { diff --git a/libwvdrmengine/cdm/metrics/include/metrics_collections.h b/libwvdrmengine/cdm/metrics/include/metrics_collections.h index 2b5e4fdd..04a3644e 100644 --- a/libwvdrmengine/cdm/metrics/include/metrics_collections.h +++ b/libwvdrmengine/cdm/metrics/include/metrics_collections.h @@ -139,7 +139,7 @@ class CryptoMetrics { EventMetric oemcrypto_report_usage_; EventMetric oemcrypto_rewrap_device_rsa_key_; EventMetric oemcrypto_rewrap_device_rsa_key_30_; - EventMetric oemcrypto_security_level_; + EventMetric oemcrypto_security_level_; EventMetric oemcrypto_security_patch_level_; EventMetric oemcrypto_select_key_; EventMetric oemcrypto_supports_usage_table_; diff --git a/libwvdrmengine/cdm/metrics/src/metrics_collections.cpp b/libwvdrmengine/cdm/metrics/src/metrics_collections.cpp index 936cae8b..93b35e05 100644 --- a/libwvdrmengine/cdm/metrics/src/metrics_collections.cpp +++ b/libwvdrmengine/cdm/metrics/src/metrics_collections.cpp @@ -72,22 +72,22 @@ CryptoMetrics::CryptoMetrics() : "/drm/widevine/crypto_session/generic_decrypt/time", "error", "length", - "algorithm"), + "encryption_algorithm"), crypto_session_generic_encrypt_( "/drm/widevine/crypto_session/generic_encrypt/time", "error", "length", - "algorithm"), + "encryption_algorithm"), crypto_session_generic_sign_( "/drm/widevine/crypto_session/generic_sign/time", "error", "length", - "algorithm"), + "signing_algorithm"), crypto_session_generic_verify_( "/drm/widevine/crypto_session/generic_verify/time", "error", "length", - "algorithm"), + "signing_algorithm"), crypto_session_get_device_unique_id_( "/drm/widevine/crypto_session/get_device_unique_id/time", "success"), @@ -97,7 +97,7 @@ CryptoMetrics::CryptoMetrics() : crypto_session_get_system_id_( "/drm/widevine/crypto_session/get_system_id/time", "success", - "id"), + "system_id"), crypto_session_get_token_( "/drm/widevine/crypto_session/get_token/time", "success"), @@ -109,7 +109,7 @@ CryptoMetrics::CryptoMetrics() : crypto_session_open_( "/drm/widevine/crypto_session/open/time", "error", - "security_level"), + "requested_security_level"), crypto_session_update_usage_information_( "/drm/widevine/crypto_session/update_usage_information/time", "error"), @@ -119,163 +119,163 @@ CryptoMetrics::CryptoMetrics() : oemcrypto_api_version_( "/drm/widevine/oemcrypto/api_version/time", "version", - "security_level"), + "requested_security_level"), oemcrypto_close_session_( "/drm/widevine/oemcrypto/close_session/time", - "error"), + "oemcrypto_error"), oemcrypto_copy_buffer_( "/drm/widevine/oemcrypto/copy_buffer/time", - "error", - "security_level", + "oemcrypto_error", + "requested_security_level", "length"), oemcrypto_deactivate_usage_entry_( "/drm/widevine/oemcrypto/deactivate_usage_entry/time", - "error"), + "oemcrypto_error"), oemcrypto_decrypt_cenc_( "/drm/widevine/oemcrypto/decrypt_cenc/time", - "error", + "oemcrypto_error", "length"), oemcrypto_delete_usage_entry_( "/drm/widevine/oemcrypto/delete_usage_entry/time", - "error"), + "oemcrypto_error"), oemcrypto_delete_usage_table_( "/drm/widevine/oemcrypto/delete_usage_table/time", - "error"), + "oemcrypto_error"), oemcrypto_derive_keys_from_session_key_( "/drm/widevine/oemcrypto/derive_keys_from_session_key/time", - "error"), + "oemcrypto_error"), oemcrypto_force_delete_usage_entry_( "/drm/widevine/oemcrypto/force_delete_usage_entry/time", - "error"), + "oemcrypto_error"), oemcrypto_generate_derived_keys_( "/drm/widevine/oemcrypto/generate_derived_keys/time", - "error"), + "oemcrypto_error"), oemcrypto_generate_nonce_( "/drm/widevine/oemcrypto/generate_nonce/time", - "error"), + "oemcrypto_error"), oemcrypto_generate_rsa_signature_( "/drm/widevine/oemcrypto/generate_rsa_signature/time", - "error", + "oemcrypto_error", "length"), oemcrypto_generate_signature_( "/drm/widevine/oemcrypto/generate_signature/time", - "error", + "oemcrypto_error", "length"), oemcrypto_generic_decrypt_( "/drm/widevine/oemcrypto/generic_decrypt/time", - "error", + "oemcrypto_error", "length"), oemcrypto_generic_encrypt_( "/drm/widevine/oemcrypto/generic_encrypt/time", - "error", + "oemcrypto_error", "length"), oemcrypto_generic_sign_( "/drm/widevine/oemcrypto/generic_sign/time", - "error", + "oemcrypto_error", "length"), oemcrypto_generic_verify_( "/drm/widevine/oemcrypto/generic_verify/time", - "error", + "oemcrypto_error", "length"), oemcrypto_get_device_id_( "/drm/widevine/oemcrypto/get_device_id/time", - "error", - "security_level"), + "oemcrypto_error", + "requested_security_level"), oemcrypto_get_hdcp_capability_( "/drm/widevine/oemcrypto/get_hdcp_capability/time", - "error", - "security_level"), + "oemcrypto_error", + "requested_security_level"), oemcrypto_get_key_data_( "/drm/widevine/oemcrypto/get_key_data/time", - "error", + "oemcrypto_error", "length", - "security_level"), + "requested_security_level"), oemcrypto_get_max_number_of_sessions_( "/drm/widevine/oemcrypto/get_max_number_of_sessions/time", - "error", - "security_level"), + "oemcrypto_error", + "requested_security_level"), oemcrypto_get_number_of_open_sessions_( "/drm/widevine/oemcrypto/get_number_of_open_sessions/time", - "error", - "security_level"), + "oemcrypto_error", + "requested_security_level"), oemcrypto_get_oem_public_certificate_( "/drm/widevine/oemcrypto/get_oem_public_certificate/time", - "error"), + "oemcrypto_error"), oemcrypto_get_provisioning_method_( "/drm/widevine/oemcrypto/get_provisioning_method/time", "method", - "security_level"), + "requested_security_level"), oemcrypto_get_random_( "/drm/widevine/oemcrypto/get_random/time", - "error", + "oemcrypto_error", "length"), oemcrypto_initialize_( "/drm/widevine/oemcrypto/initialize/time", - "error"), + "oemcrypto_error"), oemcrypto_install_keybox_( "/drm/widevine/oemcrypto/install_keybox/time", - "error", - "security_level"), + "oemcrypto_error", + "requested_security_level"), oemcrypto_is_anti_rollback_hw_present_( "/drm/widevine/oemcrypto/is_anti_rollback_hw_present/time", "success", - "security_level"), + "requested_security_level"), oemcrypto_is_keybox_valid_( "/drm/widevine/oemcrypto/is_keybox_valid/time", - "error", - "security_level"), + "oemcrypto_error", + "requested_security_level"), oemcrypto_load_device_rsa_key_( "/drm/widevine/oemcrypto/load_device_rsa_key/time", - "error"), + "oemcrypto_error"), oemcrypto_load_keys_( "/drm/widevine/oemcrypto/load_keys/time", - "error"), + "oemcrypto_error"), oemcrypto_load_test_keybox_( "/drm/widevine/oemcrypto/load_test_keybox/time", - "error"), + "oemcrypto_error"), oemcrypto_load_test_rsa_key_( "/drm/widevine/oemcrypto/load_test_rsa_key/time", - "error"), + "oemcrypto_error"), oemcrypto_open_session_( "/drm/widevine/oemcrypto/open_session/time", - "error", - "security_level"), + "oemcrypto_error", + "requested_security_level"), oemcrypto_refresh_keys_( "/drm/widevine/oemcrypto/refresh_keys/time", - "error"), + "oemcrypto_error"), oemcrypto_report_usage_( "/drm/widevine/oemcrypto/report_usage/time", - "error"), + "oemcrypto_error"), oemcrypto_rewrap_device_rsa_key_( "/drm/widevine/oemcrypto/rewrap_device_rsa_key/time", - "error"), + "oemcrypto_error"), oemcrypto_rewrap_device_rsa_key_30_( "/drm/widevine/oemcrypto/rewrap_device_rsa_key_30/time", - "error"), + "oemcrypto_error"), oemcrypto_security_level_( "/drm/widevine/oemcrypto/security_level/time", - "result", - "security_level"), + "security_level", + "requested_security_level"), oemcrypto_security_patch_level_( "/drm/widevine/oemcrypto/security_patch_level/time", "patch", - "security_level"), + "requested_security_level"), oemcrypto_select_key_( "/drm/widevine/oemcrypto/select_key/time", - "error"), + "oemcrypto_error"), oemcrypto_supports_usage_table_( "/drm/widevine/oemcrypto/supports_usage_table/time", - "error", - "security_level"), + "oemcrypto_error", + "requested_security_level"), oemcrypto_update_usage_table_( "/drm/widevine/oemcrypto/update_usage_table/time", - "error"), + "oemcrypto_error"), oemcrypto_wrap_keybox_( "/drm/widevine/oemcrypto/wrap_keybox/time", - "error"), + "oemcrypto_error"), oemcrypto_initialization_mode_( "/drm/widevine/oemcrypto/initialization_mode", - "message"), + "initialization_mode"), oemcrypto_l1_api_version_( "/drm/widevine/oemcrypto/l1_api_version", "version", diff --git a/libwvdrmengine/cdm/metrics/test/metrics_collections_test.cpp b/libwvdrmengine/cdm/metrics/test/metrics_collections_test.cpp index 7a724e19..56672149 100644 --- a/libwvdrmengine/cdm/metrics/test/metrics_collections_test.cpp +++ b/libwvdrmengine/cdm/metrics/test/metrics_collections_test.cpp @@ -92,7 +92,7 @@ TEST_F(EngineMetricsTest, EngineAndCryptoMetrics) { actual_metrics.metric(0).name()); EXPECT_EQ( "/drm/widevine/crypto_session/generic_decrypt/time/count" - "{error:0&length:1024&algorithm:1}", + "{error:0&length:1024&encryption_algorithm:1}", actual_metrics.metric(4).name()); EXPECT_EQ( "/drm/widevine/crypto_session/get_device_unique_id/time/mean{success:0}", @@ -154,7 +154,7 @@ TEST_F(EngineMetricsTest, EngineMetricsWithCompletedSessions) { actual_metrics.metric_sub_group(0).metric(0).value().string_value()); EXPECT_EQ( "/drm/widevine/crypto_session/generic_decrypt/time/count" - "{error:0&length:1024&algorithm:1}", + "{error:0&length:1024&encryption_algorithm:1}", actual_metrics.metric_sub_group(0).metric(1).name()); } @@ -272,7 +272,7 @@ TEST_F(SessionMetricsTest, AllSessionMetrics) { actual_metrics.metric(4).name()); EXPECT_EQ(1.0, actual_metrics.metric(4).value().double_value()); EXPECT_EQ("/drm/widevine/crypto_session/generic_decrypt/time/count" - "{error:0&length:1024&algorithm:1}", + "{error:0&length:1024&encryption_algorithm:1}", actual_metrics.metric(9).name()); } @@ -402,7 +402,8 @@ TEST_F(CryptoMetricsTest, AllCryptoMetrics) { .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); crypto_metrics.oemcrypto_rewrap_device_rsa_key_30_ .Record(1.0, OEMCrypto_ERROR_INIT_FAILED); - crypto_metrics.oemcrypto_security_level_.Record(1.0, "test", kLevelDefault); + crypto_metrics.oemcrypto_security_level_ + .Record(1.0, kSecurityLevelL2, kLevelDefault); crypto_metrics.oemcrypto_security_patch_level_ .Record(1.0, 123, kLevelDefault); crypto_metrics.oemcrypto_select_key_