0
Files
src/net/quic/mock_decrypter.h
David Benjamin 9f3b62e782 Replace absl::string_view with std::string_view in //net
This CL was done with the following:

  git grep -l absl::string_view | xargs sed -i -e 's/absl::string_view/std::string_view/'

Then I fixed couple of includes and ran git cl format.

Note that although many of these absl::string_views existed to
talk to QUICHE, which still prefers the Abseil spelling, in Chromium we
make the two types the same, so we can freely migrate ahead of QUICHE
here.

(In the interest of not doing a whole lot of manual work, I've not
reevaluated IWYU by hand on these files. If the file previously
included a header for absl::string_view, it now includes the header
for std::string_view. If it previously relied on QUICHE to do it,
it continues to rely on QUICHE for it. We really need IWYU
tooling...)

Bug: 691162
Change-Id: Id8519b3c48c4c2f2e7dbcd03d64c9c629842337b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4902195
Reviewed-by: Adam Rice <ricea@chromium.org>
Auto-Submit: David Benjamin <davidben@chromium.org>
Commit-Queue: David Benjamin <davidben@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1204042}
2023-10-02 16:03:42 +00:00

61 lines
2.2 KiB
C++

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef NET_QUIC_MOCK_DECRYPTER_H_
#define NET_QUIC_MOCK_DECRYPTER_H_
#include <cstddef>
#include <cstdint>
#include "base/compiler_specific.h"
#include "net/base/net_export.h"
#include "net/third_party/quiche/src/quiche/quic/core/crypto/quic_decrypter.h"
#include "net/third_party/quiche/src/quiche/quic/core/quic_types.h"
namespace net {
// A MockDecrypter is a QuicDecrypter that strips the last 12 bytes of
// ciphertext (which should be zeroes, but are ignored), and returns the
// remaining ciphertext untouched and ignores the associated data. This is used
// to allow fuzzing to mutate plaintext packets.
class MockDecrypter : public quic::QuicDecrypter {
public:
explicit MockDecrypter(quic::Perspective perspective);
MockDecrypter(const MockDecrypter&) = delete;
MockDecrypter& operator=(const MockDecrypter&) = delete;
~MockDecrypter() override = default;
// QuicCrypter implementation
bool SetKey(std::string_view key) override;
bool SetNoncePrefix(std::string_view nonce_prefix) override;
bool SetIV(std::string_view iv) override;
bool SetHeaderProtectionKey(std::string_view key) override;
size_t GetKeySize() const override;
size_t GetIVSize() const override;
size_t GetNoncePrefixSize() const override;
// QuicDecrypter implementation
bool SetPreliminaryKey(std::string_view key) override;
bool SetDiversificationNonce(
const quic::DiversificationNonce& nonce) override;
bool DecryptPacket(uint64_t packet_number,
std::string_view associated_data,
std::string_view ciphertext,
char* output,
size_t* output_length,
size_t max_output_length) override;
std::string GenerateHeaderProtectionMask(
quic::QuicDataReader* sample_reader) override;
uint32_t cipher_id() const override;
quic::QuicPacketCount GetIntegrityLimit() const override;
std::string_view GetKey() const override;
std::string_view GetNoncePrefix() const override;
};
} // namespace net
#endif // NET_QUIC_MOCK_DECRYPTER_H_