// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef NET_CERT_SIGNED_CERTIFICATE_TIMESTAMP_H_ #define NET_CERT_SIGNED_CERTIFICATE_TIMESTAMP_H_ #include <string> #include <vector> #include "base/memory/ref_counted.h" #include "base/time/time.h" #include "net/base/hash_value.h" #include "net/base/net_export.h" namespace base { class Pickle; class PickleIterator; } // Structures related to Certificate Transparency (RFC6962). namespace net::ct { // Contains the data necessary to reconstruct the signed_entry of a // SignedCertificateTimestamp, from RFC 6962, Section 3.2. // // All the data necessary to validate a SignedCertificateTimestamp is present // within the SignedCertificateTimestamp, except for the signature_type, // entry_type, and the actual entry. The only supported signature_type at // present is certificate_timestamp. The entry_type is implicit from the // context in which it is received (those in the X.509 extension are // precert_entry, all others are x509_entry). The signed_entry itself is // reconstructed from the certificate being verified, or from the corresponding // precertificate. // // The SignedEntryData contains this reconstructed data, and can be used to // either generate or verify the signature in SCTs. struct NET_EXPORT SignedEntryData { … }; // Helper structure to represent Digitally Signed data, as described in // Sections 4.7 and 7.4.1.4.1 of RFC 5246. struct NET_EXPORT DigitallySigned { … }; // SignedCertificateTimestamp struct in RFC 6962, Section 3.2. struct NET_EXPORT SignedCertificateTimestamp : public base::RefCountedThreadSafe<SignedCertificateTimestamp> { … }; SCTList; } // namespace net::ct #endif // NET_CERT_SIGNED_CERTIFICATE_TIMESTAMP_H_