1// Copyright (c) 2011 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/base/ssl_info.h"
6
7#include "net/base/cert_status_flags.h"
8#include "net/base/x509_certificate.h"
9
10namespace net {
11
12SSLInfo::SSLInfo()
13    : cert_status(0),
14      security_bits(-1),
15      connection_status(0),
16      is_issued_by_known_root(false) {
17}
18
19SSLInfo::SSLInfo(const SSLInfo& info)
20    : cert(info.cert),
21      cert_status(info.cert_status),
22      security_bits(info.security_bits),
23      connection_status(info.connection_status),
24      is_issued_by_known_root(info.is_issued_by_known_root),
25      public_key_hashes(info.public_key_hashes) {
26}
27
28SSLInfo::~SSLInfo() {
29}
30
31SSLInfo& SSLInfo::operator=(const SSLInfo& info) {
32  cert = info.cert;
33  cert_status = info.cert_status;
34  security_bits = info.security_bits;
35  connection_status = info.connection_status;
36  public_key_hashes = info.public_key_hashes;
37  is_issued_by_known_root = info.is_issued_by_known_root;
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  public_key_hashes.clear();
48}
49
50void SSLInfo::SetCertError(int error) {
51  cert_status |= MapNetErrorToCertStatus(error);
52}
53
54}  // namespace net
55