- add sources.
[platform/framework/web/crosswalk.git] / src / net / ssl / ssl_info.cc
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/cert/cert_status_flags.h"
8 #include "net/cert/x509_certificate.h"
9
10 namespace net {
11
12 SSLInfo::SSLInfo() {
13   Reset();
14 }
15
16 SSLInfo::SSLInfo(const SSLInfo& info) {
17   *this = info;
18 }
19
20 SSLInfo::~SSLInfo() {
21 }
22
23 SSLInfo& 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
37 void 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
50 void SSLInfo::SetCertError(int error) {
51   cert_status |= MapNetErrorToCertStatus(error);
52 }
53
54 }  // namespace net