OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_CERT_SCT_STATUS_FLAGS_H_ | 5 #ifndef NET_CERT_SCT_STATUS_FLAGS_H_ |
6 #define NET_CERT_SCT_STATUS_FLAGS_H_ | 6 #define NET_CERT_SCT_STATUS_FLAGS_H_ |
7 | 7 |
| 8 #include <stdint.h> |
| 9 |
| 10 #include "net/base/net_export.h" |
| 11 |
8 namespace net { | 12 namespace net { |
9 | 13 |
10 namespace ct { | 14 namespace ct { |
11 | 15 |
12 // The possible verification statuses for a SignedCertificateTimestamp. | 16 // The possible verification statuses for a SignedCertificateTimestamp. |
13 // Note: The numeric values are used within histograms and should not change | 17 // Note: The numeric values are used within histograms and should not change |
14 // or be re-assigned. | 18 // or be re-assigned. |
15 enum SCTVerifyStatus { | 19 enum SCTVerifyStatus : uint32_t { |
16 // Not a real status, this just prevents a default int value from being | 20 // Not a real status, this just prevents a default int value from being |
17 // mis-interpreseted as a valid status. | 21 // mis-interpreseted as a valid status. |
18 // Also used to count SCTs that cannot be decoded in the histogram. | 22 // Also used to count SCTs that cannot be decoded in the histogram. |
19 SCT_STATUS_NONE = 0, | 23 SCT_STATUS_NONE = 0, |
20 | 24 |
21 // The SCT is from an unknown log, so we cannot verify its signature. | 25 // The SCT is from an unknown log, so we cannot verify its signature. |
22 SCT_STATUS_LOG_UNKNOWN = 1, | 26 SCT_STATUS_LOG_UNKNOWN = 1, |
23 | 27 |
24 // This value is deprecated and should not be used. It has been split | 28 // Obsolete. Kept here to avoid reuse. |
25 // into INVALID_SIGNATURE and INVALID_TIMESTAMP to represent the | 29 // SCT_STATUS_INVALID = 2, |
26 // different reasons an SCT could be invalid. Though it is no longer | |
27 // in use, it is preserved here because it may be present in | |
28 // serialized messages. | |
29 SCT_STATUS_INVALID = 2, | |
30 | 30 |
31 // The SCT is from a known log, and the signature is valid. | 31 // The SCT is from a known log, and the signature is valid. |
32 SCT_STATUS_OK = 3, | 32 SCT_STATUS_OK = 3, |
33 | 33 |
34 // The SCT is from a known log, but the signature is invalid. | 34 // The SCT is from a known log, but the signature is invalid. |
35 SCT_STATUS_INVALID_SIGNATURE = 4, | 35 SCT_STATUS_INVALID_SIGNATURE = 4, |
36 | 36 |
37 // The SCT is from a known log, but the timestamp is in the future. | 37 // The SCT is from a known log, but the timestamp is in the future. |
38 SCT_STATUS_INVALID_TIMESTAMP = 5, | 38 SCT_STATUS_INVALID_TIMESTAMP = 5, |
39 | 39 |
40 // Used to bound the enum values. Since this enum is passed over IPC, | 40 // Used to bound the enum values. Since this enum is passed over IPC, |
41 // the last value must be a valid one (rather than one past a valid one). | 41 // the last value must be a valid one (rather than one past a valid one). |
42 SCT_STATUS_MAX = SCT_STATUS_INVALID_TIMESTAMP, | 42 SCT_STATUS_MAX = SCT_STATUS_INVALID_TIMESTAMP, |
43 }; | 43 }; |
44 | 44 |
| 45 // Returns true if |status| denotes a valid value in SCTVerifyStatus, which |
| 46 // is all current values in the enum except SCT_STATUS_NONE. |
| 47 NET_EXPORT bool IsValidSCTStatus(uint32_t status); |
| 48 |
45 } // namespace ct | 49 } // namespace ct |
46 | 50 |
47 } // namespace net | 51 } // namespace net |
48 | 52 |
49 #endif // NET_CERT_SCT_STATUS_FLAGS_H_ | 53 #endif // NET_CERT_SCT_STATUS_FLAGS_H_ |
OLD | NEW |