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