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