1 // Copyright 2022 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CRYPTO_UNEXPORTABLE_KEY_METRICS_H_ 6 #define CRYPTO_UNEXPORTABLE_KEY_METRICS_H_ 7 8 #include "crypto/crypto_export.h" 9 10 namespace crypto { 11 12 // Records UMA metrics of TPM availability, latency and successful usage. 13 // Does the work on a new background task. 14 CRYPTO_EXPORT void MaybeMeasureTpmOperations(); 15 16 // internal namespace to be used by tests only 17 namespace internal { 18 19 // Note that values here are used in a recorded histogram. Don't change 20 // the values of existing members. 21 enum class TPMSupport { 22 kNone = 0, 23 kRSA = 1, 24 kECDSA = 2, 25 kMaxValue = 2, 26 }; 27 28 // Note that values here are used in a recorded histogram. Don't change 29 // the values of existing members. 30 enum class TPMType { 31 kNone = 0, 32 kHW = 1, 33 kVirtual = 2, 34 kBoth = 3, 35 kMaxValue = 3, 36 }; 37 38 // Exported for testing 39 CRYPTO_EXPORT void MeasureTpmOperationsInternalForTesting(); 40 } // namespace internal 41 42 } // namespace crypto 43 44 #endif // CRYPTO_UNEXPORTABLE_KEY_METRICS_H_ 45