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

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

Issue 2329593002: Add optional context for certificate errors. (Closed)
Patch Set: Address Matt's comments 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
« no previous file with comments | « net/cert/internal/cert_error_params.h ('k') | net/cert/internal/cert_error_scoper.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/memory/ptr_util.h"
8 #include "base/strings/string_number_conversions.h"
9 #include "net/der/input.h"
10
11 namespace net {
12
13 namespace {
14
15 // Parameters subclass for describing (and pretty-printing) 1 or 2 DER
16 // blobs. It makes a copy of the der::Inputs.
17 class CertErrorParams2Der : public CertErrorParams {
18 public:
19 CertErrorParams2Der(const char* name1,
20 const der::Input& der1,
21 const char* name2,
22 const der::Input& der2)
23 : name1_(name1),
24 der1_(der1.AsString()),
25 name2_(name2),
26 der2_(der2.AsString()) {}
27
28 std::string ToDebugString() const override {
29 std::string result;
30 AppendDer(name1_, der1_, &result);
31 if (name2_) {
32 result += "\n";
33 AppendDer(name2_, der2_, &result);
34 }
35 return result;
36 }
37
38 private:
39 static void AppendDer(const char* name,
40 const std::string& der,
41 std::string* out) {
42 *out += name;
43 *out += ": " + base::HexEncode(der.data(), der.size());
44 }
45
46 const char* name1_;
47 std::string der1_;
48
49 const char* name2_;
50 std::string der2_;
51 };
52
53 // Parameters subclass for describing (and pretty-printing) a single size_t.
54 class CertErrorParamsSizeT : public CertErrorParams {
55 public:
56 CertErrorParamsSizeT(const char* name, size_t value)
57 : name_(name), value_(value) {}
58
59 std::string ToDebugString() const override {
60 return name_ + std::string(": ") + base::SizeTToString(value_);
61 }
62
63 private:
64 const char* name_;
65 size_t value_;
66 };
67
68 } // namespace
69
70 CertErrorParams::CertErrorParams() = default;
71 CertErrorParams::~CertErrorParams() = default;
72
73 std::unique_ptr<CertErrorParams> CreateCertErrorParams1Der(
74 const char* name1,
75 const der::Input& der1) {
76 return base::MakeUnique<CertErrorParams2Der>(name1, der1, nullptr,
77 der::Input());
78 }
79
80 std::unique_ptr<CertErrorParams> CreateCertErrorParams2Der(
81 const char* name1,
82 const der::Input& der1,
83 const char* name2,
84 const der::Input& der2) {
85 return base::MakeUnique<CertErrorParams2Der>(name1, der1, name2, der2);
86 }
87
88 std::unique_ptr<CertErrorParams> CreateCertErrorParamsSizeT(const char* name,
89 size_t value) {
90 return base::MakeUnique<CertErrorParamsSizeT>(name, value);
91 }
92
93 } // namespace net
OLDNEW
« no previous file with comments | « net/cert/internal/cert_error_params.h ('k') | net/cert/internal/cert_error_scoper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698