29#ifndef DETERMINISTICESPASYNCWEBSERVER_QUIC_CRYPTO_H
30#define DETERMINISTICESPASYNCWEBSERVER_QUIC_CRYPTO_H
49struct QuicInitialSecrets
51 QuicPacketKeys client;
52 QuicPacketKeys server;
62void quic_derive_initial_secrets(
const uint8_t *dcid,
size_t dcid_len, QuicInitialSecrets *out);
71void quic_keys_from_secret(
const uint8_t secret[QUIC_HKDF_HASH_LEN], QuicPacketKeys *out);
92size_t quic_packet_protect(uint8_t *pkt,
size_t cap,
size_t pn_offset, uint8_t pn_len, uint64_t full_pn,
93 size_t payload_len,
const QuicPacketKeys *keys,
bool is_long);
114size_t quic_packet_unprotect(uint8_t *pkt,
size_t pn_offset,
size_t length, uint64_t largest_pn,
115 const QuicPacketKeys *keys,
bool is_long, uint8_t *out, uint64_t *out_pn);
130void quic_retry_integrity_tag(
const uint8_t *odcid,
size_t odcid_len,
const uint8_t *retry,
size_t retry_len,
User-facing configuration for DeterministicESPAsyncWebServer.
HKDF-SHA256 (RFC 5869) and TLS 1.3 HKDF-Expand-Label (RFC 8446 sec 7.1).