wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
Loading...
Searching...
No Matches
initial.h
Go to the documentation of this file.
1#ifndef QUIC_TLS_INITIAL_H
2#define QUIC_TLS_INITIAL_H
3
6#include "transport/version/version/version.h"
7
14
16#define QUIC_INITIAL_KEY 16
18#define QUIC_AEAD_KEY_MAX 32
20#define QUIC_INITIAL_IV 12
23#define QUIC_INITIAL_HP 16
24
33
45 quic_span dcid, int is_server, u32 version, quic_initial_keys* out);
46
47#endif
RFC 5869 HKDF over HMAC-SHA-256, plus the TLS 1.3 / QUIC HKDF-Expand-Label construction (RFC 8446 7....
void quic_initial_derive(quic_span dcid, int is_server, u32 version, quic_initial_keys *out)
Derive the client (is_server=0) or server (is_server=1) Initial keys from the Destination Connection ...
#define QUIC_INITIAL_IV
AEAD IV length in bytes.
Definition initial.h:20
#define QUIC_AEAD_KEY_MAX
Largest AEAD key this SDK derives (ChaCha20-Poly1305, RFC 8446 5.3).
Definition initial.h:18
Value-type views that fold the SDK's recurring argument shapes into single parameters,...
One direction's packet protection keys (RFC 9001 5.1/5.2).
Definition initial.h:28
u8 iv[QUIC_INITIAL_IV]
AEAD IV.
Definition initial.h:30
u8 hp[QUIC_AEAD_KEY_MAX]
header protection key
Definition initial.h:31
u8 key[QUIC_AEAD_KEY_MAX]
AEAD packet protection key.
Definition initial.h:29
Read-only view of a byte range.
Definition span.h:30
unsigned int u32
unsigned 32-bit integer
Definition syscall.h:14
unsigned char u8
unsigned 8-bit integer / byte
Definition syscall.h:17