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