1// Copyright (c) 2012 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#include "net/ssl/ssl_info.h"
6
7#include "base/pickle.h"
8#include "net/cert/cert_status_flags.h"
9#include "net/cert/signed_certificate_timestamp.h"
10#include "net/cert/x509_certificate.h"
11
12namespace net {
13
14SSLInfo::SSLInfo() {
15  Reset();
16}
17
18SSLInfo::SSLInfo(const SSLInfo& info) {
19  *this = info;
20}
21
22SSLInfo::~SSLInfo() {
23}
24
25SSLInfo& SSLInfo::operator=(const SSLInfo& info) {
26  cert = info.cert;
27  cert_status = info.cert_status;
28  security_bits = info.security_bits;
29  connection_status = info.connection_status;
30  is_issued_by_known_root = info.is_issued_by_known_root;
31  client_cert_sent = info.client_cert_sent;
32  channel_id_sent = info.channel_id_sent;
33  handshake_type = info.handshake_type;
34  public_key_hashes = info.public_key_hashes;
35  signed_certificate_timestamps = info.signed_certificate_timestamps;
36  pinning_failure_log = info.pinning_failure_log;
37
38  return *this;
39}
40
41void SSLInfo::Reset() {
42  cert = NULL;
43  cert_status = 0;
44  security_bits = -1;
45  connection_status = 0;
46  is_issued_by_known_root = false;
47  client_cert_sent = false;
48  channel_id_sent = false;
49  handshake_type = HANDSHAKE_UNKNOWN;
50  public_key_hashes.clear();
51  signed_certificate_timestamps.clear();
52  pinning_failure_log.clear();
53}
54
55void SSLInfo::SetCertError(int error) {
56  cert_status |= MapNetErrorToCertStatus(error);
57}
58
59}  // namespace net
60