• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 The Chromium Authors
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 "cert_issuer_source_static.h"
6 
7 namespace bssl {
8 
9 CertIssuerSourceStatic::CertIssuerSourceStatic() = default;
10 CertIssuerSourceStatic::~CertIssuerSourceStatic() = default;
11 
AddCert(std::shared_ptr<const ParsedCertificate> cert)12 void CertIssuerSourceStatic::AddCert(
13     std::shared_ptr<const ParsedCertificate> cert) {
14   intermediates_.insert(std::make_pair(
15       cert->normalized_subject().AsStringView(), std::move(cert)));
16 }
17 
Clear()18 void CertIssuerSourceStatic::Clear() {
19   intermediates_.clear();
20 }
21 
SyncGetIssuersOf(const ParsedCertificate * cert,ParsedCertificateList * issuers)22 void CertIssuerSourceStatic::SyncGetIssuersOf(const ParsedCertificate* cert,
23                                               ParsedCertificateList* issuers) {
24   auto range =
25       intermediates_.equal_range(cert->normalized_issuer().AsStringView());
26   for (auto it = range.first; it != range.second; ++it)
27     issuers->push_back(it->second);
28 }
29 
AsyncGetIssuersOf(const ParsedCertificate * cert,std::unique_ptr<Request> * out_req)30 void CertIssuerSourceStatic::AsyncGetIssuersOf(
31     const ParsedCertificate* cert,
32     std::unique_ptr<Request>* out_req) {
33   // CertIssuerSourceStatic never returns asynchronous results.
34   out_req->reset();
35 }
36 
37 }  // namespace net
38