#include <grpc/support/port_platform.h>
#include "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h"
#include <string.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include "src/core/lib/gpr/useful.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/slice/slice_internal.h"
const size_t kInitialIovecBufferSize = …;
static void ensure_iovec_buf_size(alts_grpc_record_protocol* rp,
const grpc_slice_buffer* sb) { … }
void alts_grpc_record_protocol_convert_slice_buffer_to_iovec(
alts_grpc_record_protocol* rp, const grpc_slice_buffer* sb) { … }
void alts_grpc_record_protocol_copy_slice_buffer(const grpc_slice_buffer* src,
unsigned char* dst) { … }
iovec_t alts_grpc_record_protocol_get_header_iovec(
alts_grpc_record_protocol* rp) { … }
tsi_result alts_grpc_record_protocol_init(alts_grpc_record_protocol* rp,
gsec_aead_crypter* crypter,
size_t overflow_size, bool is_client,
bool is_integrity_only,
bool is_protect) { … }
tsi_result alts_grpc_record_protocol_protect(
alts_grpc_record_protocol* self, grpc_slice_buffer* unprotected_slices,
grpc_slice_buffer* protected_slices) { … }
tsi_result alts_grpc_record_protocol_unprotect(
alts_grpc_record_protocol* self, grpc_slice_buffer* protected_slices,
grpc_slice_buffer* unprotected_slices) { … }
void alts_grpc_record_protocol_destroy(alts_grpc_record_protocol* self) { … }
size_t alts_grpc_record_protocol_max_unprotected_data_size(
const alts_grpc_record_protocol* self, size_t max_protected_frame_size) { … }