// Copyright (c) 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. #ifndef QUICHE_QUIC_CORE_CRYPTO_CERT_COMPRESSOR_H_ #define QUICHE_QUIC_CORE_CRYPTO_CERT_COMPRESSOR_H_ #include <string> #include <vector> #include "absl/strings/string_view.h" #include "quiche/quic/core/crypto/crypto_protocol.h" #include "quiche/quic/platform/api/quic_export.h" namespace quic { // CertCompressor provides functions for compressing and decompressing // certificate chains using two techniquies: // 1) The peer may provide a list of a 64-bit, FNV-1a hashes of certificates // that they already have. In the event that one of them is to be // compressed, it can be replaced with just the hash. // 2) Otherwise the certificates are compressed with zlib using a pre-shared // dictionary that consists of the certificates handled with the above // methods and a small chunk of common substrings. class QUICHE_EXPORT CertCompressor { … }; } // namespace quic #endif // QUICHE_QUIC_CORE_CRYPTO_CERT_COMPRESSOR_H_