Index: net/cert/internal/trust_store_static.cc |
diff --git a/net/cert/internal/trust_store_static.cc b/net/cert/internal/trust_store_static.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9702b9d7a04e4835c254ac4888642245015915de |
--- /dev/null |
+++ b/net/cert/internal/trust_store_static.cc |
@@ -0,0 +1,47 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "net/cert/internal/trust_store_static.h" |
+ |
+namespace net { |
+ |
+TrustStoreStatic::TrustStoreStatic() = default; |
+TrustStoreStatic::~TrustStoreStatic() = default; |
+ |
+void TrustStoreStatic::AddTrustedCertificate( |
+ scoped_refptr<ParsedCertificate> anchor) { |
+ cert_source_.AddCert(anchor); |
+ |
+ ParsedCertificate* anchor_ptr = anchor.get(); |
+ anchors_.insert(std::make_pair(GetKey(anchor_ptr), std::move(anchor))); |
+} |
+ |
+// static |
+TrustStoreStatic::Key TrustStoreStatic::GetKey(const ParsedCertificate* cert) { |
+ return Key(cert->normalized_subject().AsStringPiece(), |
+ cert->tbs().spki_tlv.AsStringPiece()); |
+} |
+ |
+void TrustStoreStatic::IsTrustedCertificate( |
+ scoped_refptr<ParsedCertificate> cert, |
+ const TrustCallback& callback, |
+ bool* out_trusted, |
+ std::unique_ptr<TrustStore::Request>* out_req) const { |
+ out_req->reset(); |
+ *out_trusted = anchors_.find(GetKey(cert.get())) != anchors_.end(); |
+} |
+ |
+void TrustStoreStatic::SyncGetIssuersOf(const ParsedCertificate* cert, |
+ ParsedCertificateList* issuers) { |
+ cert_source_.SyncGetIssuersOf(std::move(cert), issuers); |
+} |
+ |
+void TrustStoreStatic::AsyncGetIssuersOf( |
+ scoped_refptr<ParsedCertificate> cert, |
+ const IssuerCallback& callback, |
+ std::unique_ptr<CertIssuerSource::Request>* out_req) { |
+ cert_source_.AsyncGetIssuersOf(std::move(cert), callback, out_req); |
+} |
+ |
+} // namespace net |