Go to the documentation of this file.
121 #include "../crypto/internal.h"
131 for (
i = 0;
i < 8;
i++) {
142 const unsigned kWindowSize =
sizeof(bitmap->
map) * 8;
157 const unsigned kWindowSize =
sizeof(bitmap->
map) * 8;
163 if (shift >= kWindowSize) {
166 bitmap->
map <<= shift;
172 if (
idx < kWindowSize) {
179 size_t *out_consumed,
203 *out_consumed =
in.size();
208 if (ssl->
s3->aead_read_ctx->is_null_cipher()) {
213 version_ok =
version == ssl->
s3->aead_read_ctx->RecordVersion();
218 *out_consumed =
in.size();
226 if (
epoch != ssl->
d1->r_epoch ||
237 if (!ssl->
s3->aead_read_ctx->Open(
268 ssl->
s3->warning_alert_count = 0;
277 assert(ssl->
d1->w_epoch >= 1);
278 return ssl->
d1->last_aead_write_ctx.get();
281 return ssl->
s3->aead_write_ctx.get();
309 assert(ssl->
d1->w_epoch >= 1);
311 aead = ssl->
d1->last_aead_write_ctx.get();
312 seq = ssl->
d1->last_write_sequence;
322 uint16_t record_version = ssl->
s3->aead_write_ctx->RecordVersion();
323 out[1] = record_version >> 8;
324 out[2] = record_version & 0xff;
330 size_t ciphertext_len;
335 out[11] = ciphertext_len >> 8;
336 out[12] = ciphertext_len & 0xff;
346 assert(ciphertext_len == len_copy);
@ ssl_open_record_partial
static bool dtls1_bitmap_should_discard(DTLS1_BITMAP *bitmap, const uint8_t seq_num[8])
#define OPENSSL_PUT_ERROR(library, reason)
static void dtls1_bitmap_record(DTLS1_BITMAP *bitmap, const uint8_t seq_num[8])
#define DTLS1_VERSION_MAJOR
#define SSL_R_OUTPUT_ALIASES_INPUT
static const SSLAEADContext * get_write_aead(const SSL *ssl, enum dtls1_use_epoch_t use_epoch)
bool ssl_record_sequence_update(uint8_t *seq, size_t seq_len)
void ssl_do_msg_callback(const SSL *ssl, int is_write, int content_type, Span< const uint8_t > in)
#define SSL3_RT_MAX_ENCRYPTED_LENGTH
#define SSL3_RT_MAX_PLAIN_LENGTH
#define DTLS1_RT_HEADER_LENGTH
@ ssl_open_record_discard
unsigned __int64 uint64_t
static void * OPENSSL_memcpy(void *dst, const void *src, size_t n)
#define BSSL_NAMESPACE_END
struct absl::base_internal::@2940::AllocList::Header header
int64_t epoch(int year, int yday, int hour, int min, int sec)
bool dtls_seal_record(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out, uint8_t type, const uint8_t *in, size_t in_len, enum dtls1_use_epoch_t use_epoch)
size_t MaxOverhead() const
@ ssl_open_record_close_notify
bool Seal(uint8_t *out, size_t *out_len, size_t max_out, uint8_t type, uint16_t record_version, const uint8_t seqnum[8], Span< const uint8_t > header, const uint8_t *in, size_t in_len)
@ ssl_open_record_success
#define SSL_AD_RECORD_OVERFLOW
UniquePtr< SSL_SESSION > ret
size_t dtls_seal_prefix_len(const SSL *ssl, enum dtls1_use_epoch_t use_epoch)
#define CBS_get_u16_length_prefixed
static const char prefix[]
enum ssl_open_record_t ssl_process_alert(SSL *ssl, uint8_t *out_alert, Span< const uint8_t > in)
enum ssl_open_record_t dtls_open_record(SSL *ssl, uint8_t *out_type, Span< uint8_t > *out, size_t *out_consumed, uint8_t *out_alert, Span< uint8_t > in)
static BSSL_NAMESPACE_BEGIN uint64_t to_u64_be(const uint8_t in[8])
#define SSL_R_BUFFER_TOO_SMALL
size_t ExplicitNonceLen() const
@ dtls1_use_previous_epoch
@ ssl_shutdown_close_notify
static int buffers_alias(const uint8_t *a, size_t a_len, const uint8_t *b, size_t b_len)
#define SSL_R_DATA_LENGTH_TOO_LONG
#define SSL_R_RECORD_TOO_LARGE
size_t dtls_max_seal_overhead(const SSL *ssl, enum dtls1_use_epoch_t use_epoch)
constexpr Span< T > MakeSpan(T *ptr, size_t size) noexcept
bool CiphertextLen(size_t *out_len, size_t in_len, size_t extra_in_len) const
constexpr Span< const T > MakeConstSpan(T *ptr, size_t size) noexcept
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:17