77 const uint8_t *secret,
size_t secret_len);
104 const uint8_t *in,
size_t in_len,
105 uint8_t *out,
size_t *out_len);
243 const uint8_t *secret,
size_t secret_len,
244 unsigned int key_updates);
246#if defined(LWS_WITH_FUZZERS)
270typedef struct lws_quic_fuzz_taps {
271 void (*secret)(
struct lws *wsi,
const uint8_t *peer_scid,
275 void (*crypto_tx)(
struct lws *wsi,
const uint8_t *peer_scid,
276 size_t peer_scid_len,
int level,
const uint8_t *buf,
278} lws_quic_fuzz_taps_t;
290lws_quic_fuzz_set_taps(
struct lws_context *cx,
291 const lws_quic_fuzz_taps_t *taps);
318 void (*
init)(
struct lws *nwsi);
319 void (*
on_sent)(
struct lws *nwsi,
size_t bytes);
321 void (*
on_loss)(
struct lws *nwsi,
size_t bytes_lost);
322 void (*
on_discard)(
struct lws *nwsi,
size_t bytes_discarded);
LWS_VISIBLE LWS_EXTERN int lws_tls_quic_get_transport_parameters(struct lws *wsi, const uint8_t **tp, size_t *tp_len)
LWS_VISIBLE LWS_EXTERN int lws_tls_quic_api_test(void)
LWS_VISIBLE LWS_EXTERN enum lws_0rtt_status lws_tls_0rtt_status(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_tls_quic_set_transport_parameters(struct lws *wsi, const uint8_t *tp, size_t tp_len)
LWS_VISIBLE LWS_EXTERN int lws_tls_quic_migrate_wsi(struct lws *old_wsi, struct lws *new_wsi)
LWS_VISIBLE LWS_EXTERN int lws_rx_is_early_data(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_quic_initiate_key_update(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN_FOR_DATA const struct lws_cc_ops lws_cc_ops_cubic
int(* lws_tls_quic_secret_cb)(struct lws *wsi, enum lws_tls_quic_secret_type type, const uint8_t *secret, size_t secret_len)
LWS_VISIBLE LWS_EXTERN int lws_quic_seal_client_initial(uint8_t *pkt, size_t len, size_t pn_offset, uint8_t pn_len, uint64_t pn, const uint8_t *odcid, size_t odcid_len)
LWS_VISIBLE LWS_EXTERN_FOR_DATA const struct lws_cc_ops lws_cc_ops_newreno
LWS_VISIBLE LWS_EXTERN int lws_quic_seal_packet(uint8_t *pkt, size_t len, size_t pn_offset, uint8_t pn_len, uint64_t pn, enum lws_tls_quic_aead aead, const uint8_t *secret, size_t secret_len, unsigned int key_updates)
LWS_VISIBLE LWS_EXTERN int lws_tls_quic_advance_handshake(struct lws *wsi, int level, const uint8_t *in, size_t in_len, uint8_t *out, size_t *out_len)
LWS_VISIBLE LWS_EXTERN int lws_tls_quic_init(struct lws *wsi, lws_tls_quic_secret_cb cb)
@ LWS_0RTT_STATUS_REJECTED
@ LWS_0RTT_STATUS_ACCEPTED
@ LWS_0RTT_STATUS_ATTEMPTED
@ LWS_TLS_QUIC_SECRET_CLIENT_HANDSHAKE
@ LWS_TLS_QUIC_SECRET_CLIENT_APPLICATION
@ LWS_TLS_QUIC_SECRET_SERVER_HANDSHAKE
@ LWS_TLS_QUIC_SECRET_CLIENT_EARLY
@ LWS_TLS_QUIC_SECRET_SERVER_APPLICATION
@ LWS_TLS_QUIC_AEAD_AES_128_GCM
@ LWS_TLS_QUIC_AEAD_UNKNOWN
@ LWS_TLS_QUIC_AEAD_CHACHA20_POLY1305
@ LWS_TLS_QUIC_AEAD_AES_256_GCM
#define LWS_EXTERN_FOR_DATA
int(* can_send)(struct lws *nwsi, size_t bytes)
void(* init)(struct lws *nwsi)
lws_usec_t(* get_pacing_delay)(struct lws *nwsi, size_t bytes_to_send)
void(* on_discard)(struct lws *nwsi, size_t bytes_discarded)
void(* on_loss)(struct lws *nwsi, size_t bytes_lost)
void(* on_ack)(struct lws *nwsi, size_t bytes_acked, lws_usec_t rtt)
void(* on_persistent_congestion)(struct lws *nwsi)
void(* on_sent)(struct lws *nwsi, size_t bytes)