1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
23345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// Use of this source code is governed by a BSD-style license that can be
33345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// found in the LICENSE file.
43345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
53345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "net/base/ssl_info.h"
63345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "net/base/cert_status_flags.h"
83345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "net/base/x509_certificate.h"
93345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
103345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merricknamespace net {
113345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
123345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickSSLInfo::SSLInfo()
133345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    : cert_status(0),
143345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      security_bits(-1),
15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      connection_status(0),
16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      is_issued_by_known_root(false) {
173345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
183345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
193345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickSSLInfo::SSLInfo(const SSLInfo& info)
203345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick    : cert(info.cert),
213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      cert_status(info.cert_status),
223345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      security_bits(info.security_bits),
23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      connection_status(info.connection_status),
24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      is_issued_by_known_root(info.is_issued_by_known_root),
25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      public_key_hashes(info.public_key_hashes) {
263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
283345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickSSLInfo::~SSLInfo() {
293345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
313345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickSSLInfo& SSLInfo::operator=(const SSLInfo& info) {
323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  cert = info.cert;
333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  cert_status = info.cert_status;
343345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  security_bits = info.security_bits;
353345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  connection_status = info.connection_status;
36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  public_key_hashes = info.public_key_hashes;
37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  is_issued_by_known_root = info.is_issued_by_known_root;
383345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  return *this;
393345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
403345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
413345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickvoid SSLInfo::Reset() {
423345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  cert = NULL;
433345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  cert_status = 0;
443345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  security_bits = -1;
453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  connection_status = 0;
46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  is_issued_by_known_root = false;
47ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  public_key_hashes.clear();
483345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
493345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
503345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickvoid SSLInfo::SetCertError(int error) {
513345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  cert_status |= MapNetErrorToCertStatus(error);
523345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
533345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
543345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}  // namespace net
55