Go to the documentation of this file.
85 enum ssl_encryption_level_t *out_level,
105 fprintf(
stderr,
"Error parsing record header.\n");
109 auto level =
static_cast<ssl_encryption_level_t
>(level_id);
116 std::vector<uint8_t> discard(remaining_bytes);
123 "Got record at level %s, but keys were not configured.\n",
127 if (cipher_suite != expect_cipher) {
128 fprintf(
stderr,
"Got cipher suite 0x%04x at level %s, wanted 0x%04x.\n",
133 std::vector<uint8_t> read_secret(secret.size());
134 if (remaining_bytes < secret.size()) {
138 remaining_bytes -= secret.size();
140 fprintf(
stderr,
"Error reading record secret.\n");
143 if (read_secret != secret) {
144 fprintf(
stderr,
"Encryption secret at level %s did not match.\n",
149 *out_len = remaining_bytes;
156 ssl_encryption_level_t
level;
165 std::vector<uint8_t>
buf(
len);
188 ssl_encryption_level_t
level;
203 std::vector<uint8_t>
buf(
len);
246 size_t tlv_len = secret.size() +
len;
250 header[2] = (cipher_suite >> 8) & 0xff;
251 header[3] = cipher_suite & 0xff;
252 header[4] = (tlv_len >> 24) & 0xff;
253 header[5] = (tlv_len >> 16) & 0xff;
254 header[6] = (tlv_len >> 8) & 0xff;
255 header[7] = tlv_len & 0xff;
278 uint8_t alert_msg[] = {2, alert};
#define SSL_ERROR_WANT_READ
bool WriteRecord(enum ssl_encryption_level_t level, uint8_t type, const uint8_t *data, size_t len)
bool WriteApplicationData(const uint8_t *in, size_t len)
bool ReadHeader(uint8_t *out_type, enum ssl_encryption_level_t *out_level, size_t *out_len)
MockQuicTransport(bssl::UniquePtr< BIO > bio, SSL *ssl)
#define SSL_process_quic_post_handshake
memcpy(mem, inblock.get(), min(CONTAINING_RECORD(inblock.get(), MEMBLOCK, data) ->size, size))
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
std::vector< EncryptionLevel > read_levels_
std::vector< uint8_t > pending_app_data_
#define SSL_provide_quic_data
bssl::UniquePtr< BIO > bio_
struct absl::base_internal::@2940::AllocList::Header header
bool SetReadSecret(enum ssl_encryption_level_t level, const SSL_CIPHER *cipher, const uint8_t *secret, size_t secret_len)
bool SendAlert(enum ssl_encryption_level_t level, uint8_t alert)
#define SSL3_RT_HANDSHAKE
int ReadApplicationData(uint8_t *out, size_t max_out)
ssl_encryption_application
bool SetWriteSecret(enum ssl_encryption_level_t level, const SSL_CIPHER *cipher, const uint8_t *secret, size_t secret_len)
UniquePtr< SSL_SESSION > ret
const char * LevelToString(ssl_encryption_level_t level)
ssl_encryption_early_data
#define SSL_in_early_data
bool WriteHandshakeData(enum ssl_encryption_level_t level, const uint8_t *data, size_t len)
#define SSL3_RT_APPLICATION_DATA
#define SSL_CIPHER_get_protocol_id
constexpr Span< T > MakeSpan(T *ptr, size_t size) noexcept
std::vector< EncryptionLevel > write_levels_
grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:30