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