// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CRYPTO_UNEXPORTABLE_KEY_METRICS_H_ #define CRYPTO_UNEXPORTABLE_KEY_METRICS_H_ #include "crypto/crypto_export.h" namespace crypto { // Records UMA metrics of TPM availability, latency and successful usage. // Does the work on a new background task. CRYPTO_EXPORT void MaybeMeasureTpmOperations(); // internal namespace to be used by tests only namespace internal { // Note that values here are used in a recorded histogram. Don't change // the values of existing members. enum class TPMSupport { kNone = 0, kRSA = 1, kECDSA = 2, kMaxValue = 2, }; // Note that values here are used in a recorded histogram. Don't change // the values of existing members. enum class TPMType { kNone = 0, kHW = 1, kVirtual = 2, kBoth = 3, kMaxValue = 3, }; // Exported for testing CRYPTO_EXPORT void MeasureTpmOperationsInternalForTesting(); } // namespace internal } // namespace crypto #endif // CRYPTO_UNEXPORTABLE_KEY_METRICS_H_