naiveproxy/net/cert/internal/trust_store.cc

83 lines
2.1 KiB
C++
Raw Permalink Normal View History

2018-08-15 01:19:20 +03:00
// 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.h"
namespace net {
CertificateTrust CertificateTrust::ForTrustAnchor() {
CertificateTrust result;
result.type = CertificateTrustType::TRUSTED_ANCHOR;
return result;
}
CertificateTrust CertificateTrust::ForTrustAnchorEnforcingConstraints() {
CertificateTrust result;
result.type = CertificateTrustType::TRUSTED_ANCHOR_WITH_CONSTRAINTS;
return result;
}
CertificateTrust CertificateTrust::ForUnspecified() {
CertificateTrust result;
result.type = CertificateTrustType::UNSPECIFIED;
return result;
}
CertificateTrust CertificateTrust::ForDistrusted() {
CertificateTrust result;
result.type = CertificateTrustType::DISTRUSTED;
return result;
}
bool CertificateTrust::IsTrustAnchor() const {
switch (type) {
case CertificateTrustType::DISTRUSTED:
case CertificateTrustType::UNSPECIFIED:
return false;
case CertificateTrustType::TRUSTED_ANCHOR:
case CertificateTrustType::TRUSTED_ANCHOR_WITH_CONSTRAINTS:
return true;
}
NOTREACHED();
return false;
}
bool CertificateTrust::IsDistrusted() const {
switch (type) {
case CertificateTrustType::DISTRUSTED:
return true;
case CertificateTrustType::UNSPECIFIED:
case CertificateTrustType::TRUSTED_ANCHOR:
case CertificateTrustType::TRUSTED_ANCHOR_WITH_CONSTRAINTS:
return false;
}
NOTREACHED();
return false;
}
bool CertificateTrust::HasUnspecifiedTrust() const {
switch (type) {
case CertificateTrustType::UNSPECIFIED:
return true;
case CertificateTrustType::DISTRUSTED:
case CertificateTrustType::TRUSTED_ANCHOR:
case CertificateTrustType::TRUSTED_ANCHOR_WITH_CONSTRAINTS:
return false;
}
NOTREACHED();
return true;
}
TrustStore::TrustStore() = default;
void TrustStore::AsyncGetIssuersOf(const ParsedCertificate* cert,
std::unique_ptr<Request>* out_req) {
out_req->reset();
}
} // namespace net