• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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