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
3// found in the LICENSE file.
4
5#ifndef NET_CERT_CT_VERIFY_RESULT_H_
6#define NET_CERT_CT_VERIFY_RESULT_H_
7
8#include <vector>
9
10#include "net/base/net_export.h"
11#include "net/cert/signed_certificate_timestamp_and_status.h"
12
13namespace net {
14
15namespace ct {
16
17enum class CTPolicyCompliance;
18
19// Holds Signed Certificate Timestamps, depending on their verification
20// results, and information about CT policies that were applied on the
21// connection.
22struct NET_EXPORT CTVerifyResult {
23 CTVerifyResult();
24 CTVerifyResult(const CTVerifyResult& other);
25 ~CTVerifyResult();
26
27 // All SCTs and their statuses
28 SignedCertificateTimestampAndStatusList scts;
29
30 // The result of evaluating whether the connection complies with the
31 // CT certificate policy.
32 CTPolicyCompliance policy_compliance;
33 // True if the connection was required to comply with the CT certificate
34 // policy. This value is not meaningful if |policy_compliance| is
35 // COMPLIANCE_DETAILS_NOT_AVAILABLE.
36 bool policy_compliance_required;
37};
38
39// Returns a list of SCTs from |sct_and_status_list| whose status matches
40// |match_status|.
41SCTList NET_EXPORT SCTsMatchingStatus(
42 const SignedCertificateTimestampAndStatusList& sct_and_status_list,
43 SCTVerifyStatus match_status);
44
45} // namespace ct
46
47} // namespace net
48
49#endif // NET_CERT_CT_VERIFY_RESULT_H_
50