OSSL_QTX
int ossl_qtx_provide_secret(OSSL_QTX *qtx,
int ossl_qtx_discard_enc_level(OSSL_QTX *qtx, uint32_t enc_level);
int ossl_qtx_is_enc_level_provisioned(OSSL_QTX *qtx, uint32_t enc_level);
int ossl_qtx_calculate_plaintext_payload_len(OSSL_QTX *qtx, uint32_t enc_level,
int ossl_qtx_calculate_ciphertext_payload_len(OSSL_QTX *qtx, uint32_t enc_level,
int ossl_qtx_write_pkt(OSSL_QTX *qtx, const OSSL_QTX_PKT *pkt);
void ossl_qtx_finish_dgram(OSSL_QTX *qtx);
int ossl_qtx_flush_net(OSSL_QTX *qtx);
int ossl_qtx_pop_net(OSSL_QTX *qtx, BIO_MSG *msg);
size_t ossl_qtx_get_queue_len_datagrams(OSSL_QTX *qtx);
size_t ossl_qtx_get_queue_len_bytes(OSSL_QTX *qtx);
size_t ossl_qtx_get_cur_dgram_len_bytes(OSSL_QTX *qtx);
size_t ossl_qtx_get_unflushed_pkt_count(OSSL_QTX *qtx);
void ossl_qtx_set_bio(OSSL_QTX *qtx, BIO *bio);
int ossl_qtx_set_mdpl(OSSL_QTX *qtx, size_t mdpl);
size_t ossl_qtx_get_mdpl(OSSL_QTX *qtx);
int ossl_qtx_trigger_key_update(OSSL_QTX *qtx);
uint64_t ossl_qtx_get_cur_epoch_pkt_count(OSSL_QTX *qtx, uint32_t enc_level);
uint64_t ossl_qtx_get_max_epoch_pkt_count(OSSL_QTX *qtx, uint32_t enc_level);
uint64_t ossl_qtx_get_key_epoch(OSSL_QTX *qtx);
OSSL_QTX *ossl_qtx_new(const OSSL_QTX_ARGS *args);
void ossl_qtx_free(OSSL_QTX *qtx);
void ossl_qtx_set_mutator(OSSL_QTX *qtx, ossl_mutate_packet_cb mutatecb,
void ossl_qtx_set_msg_callback(OSSL_QTX *qtx, ossl_msg_cb msg_callback,
void ossl_qtx_set_msg_callback_arg(OSSL_QTX *qtx, void *msg_callback_arg);
void ossl_qtx_set_qlog_cb(OSSL_QTX *qtx, QLOG *(*get_qlog_cb)(void *arg),
OSSL_QTX *qtx; /* QUIC Record Layer TX we are using */
OSSL_QTX *qtx;
int ossl_qtx_pop_net(OSSL_QTX *qtx, BIO_MSG *msg)
void ossl_qtx_set_bio(OSSL_QTX *qtx, BIO *bio)
int ossl_qtx_set_mdpl(OSSL_QTX *qtx, size_t mdpl)
size_t ossl_qtx_get_mdpl(OSSL_QTX *qtx)
size_t ossl_qtx_get_queue_len_datagrams(OSSL_QTX *qtx)
size_t ossl_qtx_get_queue_len_bytes(OSSL_QTX *qtx)
size_t ossl_qtx_get_cur_dgram_len_bytes(OSSL_QTX *qtx)
size_t ossl_qtx_get_unflushed_pkt_count(OSSL_QTX *qtx)
int ossl_qtx_trigger_key_update(OSSL_QTX *qtx)
uint64_t ossl_qtx_get_cur_epoch_pkt_count(OSSL_QTX *qtx, uint32_t enc_level)
uint64_t ossl_qtx_get_max_epoch_pkt_count(OSSL_QTX *qtx, uint32_t enc_level)
void ossl_qtx_set_msg_callback(OSSL_QTX *qtx, ossl_msg_cb msg_callback,
void ossl_qtx_set_msg_callback_arg(OSSL_QTX *qtx, void *msg_callback_arg)
uint64_t ossl_qtx_get_key_epoch(OSSL_QTX *qtx)
OSSL_QTX *ossl_qtx_new(const OSSL_QTX_ARGS *args)
OSSL_QTX *qtx;
qtx = OPENSSL_zalloc(sizeof(OSSL_QTX));
void ossl_qtx_free(OSSL_QTX *qtx)
void ossl_qtx_set_mutator(OSSL_QTX *qtx, ossl_mutate_packet_cb mutatecb,
void ossl_qtx_set_qlog_cb(OSSL_QTX *qtx, QLOG *(*get_qlog_cb)(void *arg),
int ossl_qtx_provide_secret(OSSL_QTX *qtx,
int ossl_qtx_discard_enc_level(OSSL_QTX *qtx, uint32_t enc_level)
int ossl_qtx_is_enc_level_provisioned(OSSL_QTX *qtx, uint32_t enc_level)
static TXE *qtx_ensure_free_txe(OSSL_QTX *qtx, size_t alloc_len)
static TXE *qtx_resize_txe(OSSL_QTX *qtx, TXE_LIST *txl, TXE *txe, size_t n)
static TXE *qtx_reserve_txe(OSSL_QTX *qtx, TXE_LIST *txl,
static void qtx_pending_to_free(OSSL_QTX *qtx)
static void qtx_add_to_pending(OSSL_QTX *qtx, TXE *txe)
int ossl_qtx_calculate_ciphertext_payload_len(OSSL_QTX *qtx, uint32_t enc_level,
int ossl_qtx_calculate_plaintext_payload_len(OSSL_QTX *qtx, uint32_t enc_level,
static int qtx_write_hdr(OSSL_QTX *qtx, const QUIC_PKT_HDR *hdr, TXE *txe,
static int qtx_encrypt_into_txe(OSSL_QTX *qtx, struct iovec_cur *cur, TXE *txe,
static int qtx_write(OSSL_QTX *qtx, const OSSL_QTX_PKT *pkt, TXE *txe,
static TXE *qtx_ensure_cons(OSSL_QTX *qtx)
static QLOG *qtx_get_qlog(OSSL_QTX *qtx)
static int qtx_mutate_write(OSSL_QTX *qtx, const OSSL_QTX_PKT *pkt, TXE *txe,
int ossl_qtx_write_pkt(OSSL_QTX *qtx, const OSSL_QTX_PKT *pkt)
void ossl_qtx_finish_dgram(OSSL_QTX *qtx)
int ossl_qtx_flush_net(OSSL_QTX *qtx)
OSSL_QTX *qtx = NULL;