Functions
frame_handler.cc File Reference
#include <grpc/support/port_platform.h>
#include "src/core/tsi/alts/frame_protector/frame_handler.h"
#include <limits.h>
#include <stdint.h>
#include <string.h>
#include <algorithm>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include "src/core/lib/gprpp/memory.h"
Include dependency graph for frame_handler.cc:

Go to the source code of this file.

Functions

alts_frame_readeralts_create_frame_reader ()
 
alts_frame_writeralts_create_frame_writer ()
 
void alts_destroy_frame_reader (alts_frame_reader *reader)
 
void alts_destroy_frame_writer (alts_frame_writer *writer)
 
size_t alts_get_num_writer_bytes_remaining (alts_frame_writer *writer)
 
unsigned char * alts_get_output_buffer (alts_frame_reader *reader)
 
size_t alts_get_output_bytes_read (alts_frame_reader *reader)
 
size_t alts_get_reader_bytes_remaining (alts_frame_reader *reader)
 
bool alts_has_read_frame_length (alts_frame_reader *reader)
 
bool alts_is_frame_reader_done (alts_frame_reader *reader)
 
bool alts_is_frame_writer_done (alts_frame_writer *writer)
 
bool alts_read_frame_bytes (alts_frame_reader *reader, const unsigned char *bytes, size_t *bytes_size)
 
bool alts_reset_frame_reader (alts_frame_reader *reader, unsigned char *buffer)
 
bool alts_reset_frame_writer (alts_frame_writer *writer, const unsigned char *buffer, size_t length)
 
void alts_reset_reader_output_buffer (alts_frame_reader *reader, unsigned char *buffer)
 
bool alts_write_frame_bytes (alts_frame_writer *writer, unsigned char *output, size_t *bytes_size)
 
static uint32_t load_32_le (const unsigned char *buffer)
 
static void store_32_le (uint32_t value, unsigned char *buffer)
 

Function Documentation

◆ alts_create_frame_reader()

alts_frame_reader* alts_create_frame_reader ( )

This method creates a frame reader instance and initializes its internal states.

Definition at line 122 of file frame_handler.cc.

◆ alts_create_frame_writer()

alts_frame_writer* alts_create_frame_writer ( )

This method creates a frame writer instance and initializes its internal states.

Definition at line 51 of file frame_handler.cc.

◆ alts_destroy_frame_reader()

void alts_destroy_frame_reader ( alts_frame_reader reader)

This method destroys a frame reader instance.

  • reader: a frame reader instance.

Definition at line 219 of file frame_handler.cc.

◆ alts_destroy_frame_writer()

void alts_destroy_frame_writer ( alts_frame_writer writer)

This method destroys a frame writer instance.

  • writer: a frame writer instance.

Definition at line 119 of file frame_handler.cc.

◆ alts_get_num_writer_bytes_remaining()

size_t alts_get_num_writer_bytes_remaining ( alts_frame_writer writer)

This method returns the number of bytes left to write before a complete frame is formed.

  • writer: a frame writer instance.

Definition at line 114 of file frame_handler.cc.

◆ alts_get_output_buffer()

unsigned char* alts_get_output_buffer ( alts_frame_reader reader)

This method returns output_buffer of a frame reader instance.

  • reader: a frame reader instance.

Definition at line 215 of file frame_handler.cc.

◆ alts_get_output_bytes_read()

size_t alts_get_output_bytes_read ( alts_frame_reader reader)

This method returns output_bytes_read of a frame reader instance.

  • reader: a frame reader instance.

Definition at line 211 of file frame_handler.cc.

◆ alts_get_reader_bytes_remaining()

size_t alts_get_reader_bytes_remaining ( alts_frame_reader reader)

This method returns the number of bytes the frame reader intends to write. It may only be called if alts_has_read_frame_length() returns true.

  • reader: a frame reader instance.

Definition at line 137 of file frame_handler.cc.

◆ alts_has_read_frame_length()

bool alts_has_read_frame_length ( alts_frame_reader reader)

This method checks if a frame length has been read.

  • reader: a frame reader instance.

The method returns true if a frame length has been read and false otherwise.

Definition at line 133 of file frame_handler.cc.

◆ alts_is_frame_reader_done()

bool alts_is_frame_reader_done ( alts_frame_reader reader)

This method checks if reset can be called to start processing a new frame. If true and reset was previously called, a full frame has been processed and the content of the frame is available in output_buffer.

  • reader: a frame reader instance.

Definition at line 127 of file frame_handler.cc.

◆ alts_is_frame_writer_done()

bool alts_is_frame_writer_done ( alts_frame_writer writer)

This method checks if a reset can be called to write a new frame. It returns true if it's the first time to frame a payload, or the current frame has been finished processing. It returns false if it's not ready yet to start a new frame (e.g., more payload data needs to be accumulated to process the current frame).

if (alts_is_frame_writer_done(writer)) { // a new frame can be written, call reset. alts_reset_frame_writer(writer, payload_buffer, payload_size); } else { // accumulate more payload data until a full frame can be written. }

  • writer: a frame writer instance.

Definition at line 109 of file frame_handler.cc.

◆ alts_read_frame_bytes()

bool alts_read_frame_bytes ( alts_frame_reader reader,
const unsigned char *  bytes,
size_t *  bytes_size 
)

This method processes up to the number of bytes given in bytes_size. It may choose not to process all the bytes, if, for instance, more bytes are given to the method than required to complete the current frame.

  • reader: a frame reader instance.
  • bytes: a buffer that stores data to be processed.
  • bytes_size: an in/out parameter that stores the size of bytes before the call and gets written the number of bytes processed.

The method returns true on success and false otherwise.

Definition at line 155 of file frame_handler.cc.

◆ alts_reset_frame_reader()

bool alts_reset_frame_reader ( alts_frame_reader reader,
unsigned char *  buffer 
)

This method resets internal states of a frame reader (including setting its output_buffer with buffer), and prepares to write processed bytes to an output_buffer. It does not take ownership of buffer. The buffer must outlive reader.

  • reader: a frame reader instance.
  • buffer: an output buffer used to store deframed results.

The method returns true on success and false otherwise.

Definition at line 146 of file frame_handler.cc.

◆ alts_reset_frame_writer()

bool alts_reset_frame_writer ( alts_frame_writer writer,
const unsigned char *  buffer,
size_t  length 
)

This method resets internal states of a frame writer and prepares to write a single frame. It does not take ownership of payload_buffer. The payload_buffer must outlive the writer.

  • writer: a frame writer instance.
  • buffer: a buffer storing full payload data to be framed.
  • length: size of payload data.

The method returns true on success and false otherwise.

Definition at line 55 of file frame_handler.cc.

◆ alts_reset_reader_output_buffer()

void alts_reset_reader_output_buffer ( alts_frame_reader reader,
unsigned char *  buffer 
)

This method resets output_buffer but does not otherwise modify other internal states of a frame reader instance. After being set, the new output_buffer will hold the deframed payload held by the original output_buffer. It does not take ownership of buffer. The buffer must outlive the reader. To distinguish between two reset methods on a frame reader,

if (alts_fh_is_frame_reader_done(reader)) { // if buffer contains a full payload to be deframed, call reset. alts_reset_frame_reader(reader, buffer); }

// if remaining buffer space is not enough to hold a full payload if (buffer_space_remaining < alts_get_reader_bytes_remaining(reader)) { // allocate enough space for a new buffer, copy back data processed so far, // and call reset. alts_reset_reader_output_buffer(reader, new_buffer). }

  • reader: a frame reader instance.
  • buffer: a buffer used to set reader's output_buffer.

Definition at line 141 of file frame_handler.cc.

◆ alts_write_frame_bytes()

bool alts_write_frame_bytes ( alts_frame_writer writer,
unsigned char *  output,
size_t *  bytes_size 
)

This method writes up to bytes_size bytes of a frame to output.

  • writer: a frame writer instance.
  • output: an output buffer used to store the frame.
  • bytes_size: an in/out parameter that stores the size of output buffer before the call, and gets written the number of frame bytes written to the buffer.

The method returns true on success and false otherwise.

Definition at line 74 of file frame_handler.cc.

◆ load_32_le()

static uint32_t load_32_le ( const unsigned char *  buffer)
static

Definition at line 35 of file frame_handler.cc.

◆ store_32_le()

static void store_32_le ( uint32_t  value,
unsigned char *  buffer 
)
static

Definition at line 43 of file frame_handler.cc.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:13