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

Unified Diff: net/cert/nss_profile_filter_chromeos.cc

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/cert/nss_profile_filter_chromeos.h ('k') | net/cert/nss_profile_filter_chromeos_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/cert/nss_profile_filter_chromeos.cc
diff --git a/net/cert/nss_profile_filter_chromeos.cc b/net/cert/nss_profile_filter_chromeos.cc
deleted file mode 100644
index 8e4167a6e9b28aa196cbc516d028d6ba88676c24..0000000000000000000000000000000000000000
--- a/net/cert/nss_profile_filter_chromeos.cc
+++ /dev/null
@@ -1,157 +0,0 @@
-// Copyright 2013 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/nss_profile_filter_chromeos.h"
-
-#include "base/strings/string_piece.h"
-#include "base/strings/stringprintf.h"
-#include "net/cert/x509_certificate.h"
-
-namespace net {
-
-namespace {
-
-std::string CertSlotsString(CERTCertificate* cert) {
- std::string result;
- crypto::ScopedPK11SlotList slots_for_cert(
- PK11_GetAllSlotsForCert(cert, NULL));
- for (PK11SlotListElement* slot_element =
- PK11_GetFirstSafe(slots_for_cert.get());
- slot_element;
- slot_element =
- PK11_GetNextSafe(slots_for_cert.get(), slot_element, PR_FALSE)) {
- if (!result.empty())
- result += ',';
- base::StringAppendF(&result,
- "%lu:%lu",
- PK11_GetModuleID(slot_element->slot),
- PK11_GetSlotID(slot_element->slot));
- }
- return result;
-}
-
-} // namespace
-
-NSSProfileFilterChromeOS::NSSProfileFilterChromeOS() {}
-
-NSSProfileFilterChromeOS::NSSProfileFilterChromeOS(
- const NSSProfileFilterChromeOS& other) {
- public_slot_.reset(other.public_slot_ ?
- PK11_ReferenceSlot(other.public_slot_.get()) :
- NULL);
- private_slot_.reset(other.private_slot_ ?
- PK11_ReferenceSlot(other.private_slot_.get()) :
- NULL);
- system_slot_.reset(
- other.system_slot_ ? PK11_ReferenceSlot(other.system_slot_.get()) : NULL);
-}
-
-NSSProfileFilterChromeOS::~NSSProfileFilterChromeOS() {}
-
-NSSProfileFilterChromeOS& NSSProfileFilterChromeOS::operator=(
- const NSSProfileFilterChromeOS& other) {
- public_slot_.reset(other.public_slot_ ?
- PK11_ReferenceSlot(other.public_slot_.get()) :
- NULL);
- private_slot_.reset(other.private_slot_ ?
- PK11_ReferenceSlot(other.private_slot_.get()) :
- NULL);
- system_slot_.reset(
- other.system_slot_ ? PK11_ReferenceSlot(other.system_slot_.get()) : NULL);
- return *this;
-}
-
-void NSSProfileFilterChromeOS::Init(crypto::ScopedPK11Slot public_slot,
- crypto::ScopedPK11Slot private_slot,
- crypto::ScopedPK11Slot system_slot) {
- // crypto::ScopedPK11Slot actually holds a reference counted object.
- // Because scoped_ptr<T> assignment is a no-op if it already points to
- // the same pointer, a reference would be leaked because .Pass() does
- // not release its reference, and the receiving object won't free
- // its copy.
- if (public_slot_.get() != public_slot.get())
- public_slot_ = public_slot.Pass();
- if (private_slot_.get() != private_slot.get())
- private_slot_ = private_slot.Pass();
- if (system_slot_.get() != system_slot.get())
- system_slot_ = system_slot.Pass();
-}
-
-bool NSSProfileFilterChromeOS::IsModuleAllowed(PK11SlotInfo* slot) const {
- // If this is one of the public/private slots for this profile or the system
- // slot, allow it.
- if (slot == public_slot_.get() || slot == private_slot_.get() ||
- slot == system_slot_.get()) {
- return true;
- }
- // Allow the root certs module.
- if (PK11_HasRootCerts(slot))
- return true;
- // If it's from the read-only slots, allow it.
- if (PK11_IsInternal(slot) && !PK11_IsRemovable(slot))
- return true;
- // If |public_slot_| or |private_slot_| is null, there isn't a way to get the
- // modules to use in the final test.
- if (!public_slot_.get() || !private_slot_.get())
- return false;
- // If this is not the internal (file-system) module or the TPM module, allow
- // it. This would allow smartcards/etc, although ChromeOS doesn't currently
- // support that. (This assumes that private_slot_ and system_slot_ are on the
- // same module.)
- DCHECK(!system_slot_.get() ||
- PK11_GetModule(private_slot_.get()) ==
- PK11_GetModule(system_slot_.get()));
- SECMODModule* module_for_slot = PK11_GetModule(slot);
- if (module_for_slot != PK11_GetModule(public_slot_.get()) &&
- module_for_slot != PK11_GetModule(private_slot_.get())) {
- return true;
- }
- return false;
-}
-
-bool NSSProfileFilterChromeOS::IsCertAllowed(CERTCertificate* cert) const {
- crypto::ScopedPK11SlotList slots_for_cert(
- PK11_GetAllSlotsForCert(cert, NULL));
- if (!slots_for_cert) {
- DVLOG(2) << "cert no slots: " << base::StringPiece(cert->nickname);
- return false;
- }
-
- for (PK11SlotListElement* slot_element =
- PK11_GetFirstSafe(slots_for_cert.get());
- slot_element;
- slot_element =
- PK11_GetNextSafe(slots_for_cert.get(), slot_element, PR_FALSE)) {
- if (IsModuleAllowed(slot_element->slot)) {
- DVLOG(3) << "cert from " << CertSlotsString(cert)
- << " allowed: " << base::StringPiece(cert->nickname);
- PK11_FreeSlotListElement(slots_for_cert.get(), slot_element);
- return true;
- }
- }
- DVLOG(2) << "cert from " << CertSlotsString(cert)
- << " filtered: " << base::StringPiece(cert->nickname);
- return false;
-}
-
-NSSProfileFilterChromeOS::CertNotAllowedForProfilePredicate::
- CertNotAllowedForProfilePredicate(const NSSProfileFilterChromeOS& filter)
- : filter_(filter) {}
-
-bool NSSProfileFilterChromeOS::CertNotAllowedForProfilePredicate::operator()(
- const scoped_refptr<X509Certificate>& cert) const {
- return !filter_.IsCertAllowed(cert->os_cert_handle());
-}
-
-NSSProfileFilterChromeOS::ModuleNotAllowedForProfilePredicate::
- ModuleNotAllowedForProfilePredicate(const NSSProfileFilterChromeOS& filter)
- : filter_(filter) {}
-
-bool NSSProfileFilterChromeOS::ModuleNotAllowedForProfilePredicate::operator()(
- const scoped_refptr<CryptoModule>& module) const {
- return !filter_.IsModuleAllowed(module->os_module_handle());
-}
-
-} // namespace net
-
« no previous file with comments | « net/cert/nss_profile_filter_chromeos.h ('k') | net/cert/nss_profile_filter_chromeos_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698