#include "quiche/quic/core/crypto/crypto_secret_boxer.h"
#include <cstdint>
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "absl/strings/string_view.h"
#include "openssl/aead.h"
#include "openssl/err.h"
#include "quiche/quic/core/crypto/quic_random.h"
#include "quiche/quic/platform/api/quic_logging.h"
#include "quiche/common/platform/api/quiche_mutex.h"
namespace quic {
static const size_t kSIVNonceSize = …;
static const size_t kBoxKeySize = …;
struct CryptoSecretBoxer::State { … };
CryptoSecretBoxer::CryptoSecretBoxer() { … }
CryptoSecretBoxer::~CryptoSecretBoxer() { … }
size_t CryptoSecretBoxer::GetKeySize() { … }
static const EVP_AEAD* (*const kAEAD)() = …;
bool CryptoSecretBoxer::SetKeys(const std::vector<std::string>& keys) { … }
std::string CryptoSecretBoxer::Box(QuicRandom* rand,
absl::string_view plaintext) const { … }
bool CryptoSecretBoxer::Unbox(absl::string_view in_ciphertext,
std::string* out_storage,
absl::string_view* out) const { … }
}