Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(649)

Side by Side Diff: net/cert/internal/cert_error_params.cc

Issue 2329593002: Add optional context for certificate errors. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 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/cert/internal/cert_error_params.h"
6
7 #include "base/logging.h"
8 #include "base/memory/ptr_util.h"
9 #include "base/strings/string_number_conversions.h"
10 #include "net/der/input.h"
11
12 namespace net {
13
14 namespace {
15
16 // Parameters subclass for describing (and pretty-printing) 1 or 2 DER
17 // blobs. It makes a copy of the der::Inputs.
18 class CertErrorParams2Der : public CertErrorParams {
19 public:
20 CertErrorParams2Der(const char* name1,
21 const der::Input& der1,
22 const char* name2,
23 const der::Input& der2)
24 : name1_(name1),
25 der1_(der1.AsString()),
26 name2_(name2),
27 der2_(der2.AsString()) {}
28
29 std::string ToDebugString() const override {
30 std::string result;
31 AppendDer(name1_, der1_, &result);
32 if (name2_) {
33 result += "\n";
34 AppendDer(name2_, der2_, &result);
35 }
36 return result;
37 }
38
39 private:
40 static void AppendDer(const char* name,
41 const std::string& der,
42 std::string* out) {
43 *out += name;
44 *out += ": " + base::HexEncode(der.data(), der.size());
45 }
46
47 const char* name1_;
48 std::string der1_;
49
50 const char* name2_;
51 std::string der2_;
52 };
53
54 // Parameters subclass for describing (and pretty-printing) a single size_t.
55 class CertErrorParamsSizeT : public CertErrorParams {
56 public:
57 CertErrorParamsSizeT(const char* name, size_t value)
58 : name_(name), value_(value) {}
59
60 std::string ToDebugString() const override {
61 return name_ + std::string(": ") + base::SizeTToString(value_);
62 }
63
64 private:
65 const char* name_;
66 size_t value_;
67 };
68
69 } // namespace
70
71 CertErrorParams::CertErrorParams() = default;
72 CertErrorParams::~CertErrorParams() = default;
73
74 std::unique_ptr<CertErrorParams> CreateCertErrorParams1Der(
75 const char* name1,
76 const der::Input& der1) {
77 return base::MakeUnique<CertErrorParams2Der>(name1, der1, nullptr,
78 der::Input());
79 }
80
81 std::unique_ptr<CertErrorParams> CreateCertErrorParams2Der(
82 const char* name1,
83 const der::Input& der1,
84 const char* name2,
85 const der::Input& der2) {
86 return base::MakeUnique<CertErrorParams2Der>(name1, der1, name2, der2);
87 }
88
89 std::unique_ptr<CertErrorParams> CreateCertErrorParamsSizeT(const char* name,
90 size_t value) {
91 return base::MakeUnique<CertErrorParamsSizeT>(name, value);
92 }
93
94 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698