Home | History | Annotate | Download | only in ssl
      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 
     12 namespace net {
     13 
     14 SSLInfo::SSLInfo() {
     15   Reset();
     16 }
     17 
     18 SSLInfo::SSLInfo(const SSLInfo& info) {
     19   *this = info;
     20 }
     21 
     22 SSLInfo::~SSLInfo() {
     23 }
     24 
     25 SSLInfo& 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 
     41 void 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 
     55 void SSLInfo::SetCertError(int error) {
     56   cert_status |= MapNetErrorToCertStatus(error);
     57 }
     58 
     59 }  // namespace net
     60