chromium/net/third_party/quiche/src/quiche/quic/core/crypto/web_transport_fingerprint_proof_verifier.cc

// Copyright 2020 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 "quiche/quic/core/crypto/web_transport_fingerprint_proof_verifier.h"

#include <cstdint>
#include <memory>
#include <string>
#include <utility>
#include <vector>

#include "absl/strings/escaping.h"
#include "absl/strings/match.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/str_replace.h"
#include "absl/strings/string_view.h"
#include "openssl/sha.h"
#include "quiche/quic/core/crypto/certificate_view.h"
#include "quiche/quic/core/quic_time.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/core/quic_utils.h"
#include "quiche/quic/platform/api/quic_bug_tracker.h"
#include "quiche/quic/platform/api/quic_logging.h"
#include "quiche/common/quiche_text_utils.h"

namespace quic {
namespace {

constexpr size_t kFingerprintLength =;

// Assumes that the character is normalized to lowercase beforehand.
bool IsNormalizedHexDigit(char c) {}

void NormalizeFingerprint(CertificateFingerprint& fingerprint) {}

}  // namespace

constexpr char CertificateFingerprint::kSha256[];
constexpr char WebTransportHash::kSha256[];

ProofVerifyDetails* WebTransportFingerprintProofVerifier::Details::Clone()
    const {}

WebTransportFingerprintProofVerifier::WebTransportFingerprintProofVerifier(
    const QuicClock* clock, int max_validity_days)
    :{}

bool WebTransportFingerprintProofVerifier::AddFingerprint(
    CertificateFingerprint fingerprint) {}

bool WebTransportFingerprintProofVerifier::AddFingerprint(
    WebTransportHash hash) {}

QuicAsyncStatus WebTransportFingerprintProofVerifier::VerifyProof(
    const std::string& /*hostname*/, const uint16_t /*port*/,
    const std::string& /*server_config*/,
    QuicTransportVersion /*transport_version*/, absl::string_view /*chlo_hash*/,
    const std::vector<std::string>& /*certs*/, const std::string& /*cert_sct*/,
    const std::string& /*signature*/, const ProofVerifyContext* /*context*/,
    std::string* error_details, std::unique_ptr<ProofVerifyDetails>* details,
    std::unique_ptr<ProofVerifierCallback> /*callback*/) {}

QuicAsyncStatus WebTransportFingerprintProofVerifier::VerifyCertChain(
    const std::string& /*hostname*/, const uint16_t /*port*/,
    const std::vector<std::string>& certs, const std::string& /*ocsp_response*/,
    const std::string& /*cert_sct*/, const ProofVerifyContext* /*context*/,
    std::string* error_details, std::unique_ptr<ProofVerifyDetails>* details,
    uint8_t* /*out_alert*/,
    std::unique_ptr<ProofVerifierCallback> /*callback*/) {}

std::unique_ptr<ProofVerifyContext>
WebTransportFingerprintProofVerifier::CreateDefaultContext() {}

bool WebTransportFingerprintProofVerifier::HasKnownFingerprint(
    absl::string_view der_certificate) {}

bool WebTransportFingerprintProofVerifier::HasValidExpiry(
    const CertificateView& certificate) {}

bool WebTransportFingerprintProofVerifier::IsWithinValidityPeriod(
    const CertificateView& certificate) {}

bool WebTransportFingerprintProofVerifier::IsKeyTypeAllowedByPolicy(
    const CertificateView& certificate) {}

}  // namespace quic