QSC Post Quantum Cryptographic Library 1.3.0.0 (C1)
A post quantum secure library written in Ansi C
Loading...
Searching...
No Matches
tlsdefs.h File Reference

Defines fixed TLS protocol constants and HKDF label constants. More...

#include "tlstypes.h"

Go to the source code of this file.

Macros

#define QSC_TLS_PROTOCOL_VERSION_12   0x0303U
 Defines the TLS 1.2 legacy protocol version field value.
#define QSC_TLS_PROTOCOL_VERSION_13   0x0304U
 Defines the TLS 1.3 protocol version field value.
#define QSC_TLS_RECORD_HEADER_SIZE   5U
 Defines the size of a TLS record header in bytes.
#define QSC_TLS_ALERT_SIZE   2U
 Defines the size of a TLS alert payload in bytes.
#define QSC_TLS_INNER_CONTENT_TYPE_SIZE   1U
 Defines the size of the TLSInnerPlaintext content type trailer in bytes.
#define QSC_TLS_GCM_TAG_SIZE   16U
 Defines the AEAD authentication tag size in bytes.
#define QSC_TLS_GCM_NONCE_SIZE   12U
 Defines the AEAD nonce size in bytes.
#define QSC_TLS_AES128_KEY_SIZE   16U
 Defines the AES-128 key size in bytes.
#define QSC_TLS_AES256_KEY_SIZE   32U
 Defines the AES-256 key size in bytes.
#define QSC_TLS_HASH_MAX_SIZE   64U
 Defines the maximum supported transcript hash size in bytes.
#define QSC_TLS_LABEL_MAX_SIZE   64U
 Defines the maximum supported TLS HKDF label size in bytes.
#define QSC_TLS_CONTEXT_MAX_SIZE   64U
 Defines the maximum supported TLS HKDF context size in bytes.
#define QSC_TLS_HKDF_LABEL_PREFIX   "tls13 "
 Defines the TLS 1.3 HKDF label prefix string.
#define QSC_TLS_HKDF_LABEL_PREFIX_SIZE   6U
 Defines the length of the TLS 1.3 HKDF label prefix string.
#define QSC_TLS_FINISHED_LABEL   "finished"
 Defines the HKDF label used to derive Finished keys.
#define QSC_TLS_FINISHED_LABEL_SIZE   8U
 Defines the length of the Finished label string.
#define QSC_TLS_DERIVED_LABEL   "derived"
 Defines the HKDF label used for derived-secret transitions.
#define QSC_TLS_DERIVED_LABEL_SIZE   7U
 Defines the length of the derived label string.
#define QSC_TLS_CLIENT_HANDSHAKE_TRAFFIC_LABEL   "c hs traffic"
 Defines the HKDF label used to derive client handshake traffic secrets.
#define QSC_TLS_CLIENT_HANDSHAKE_TRAFFIC_LABEL_SIZE   12U
 Defines the length of the client handshake traffic label string.
#define QSC_TLS_SERVER_HANDSHAKE_TRAFFIC_LABEL   "s hs traffic"
 Defines the HKDF label used to derive server handshake traffic secrets.
#define QSC_TLS_SERVER_HANDSHAKE_TRAFFIC_LABEL_SIZE   12U
 Defines the length of the server handshake traffic label string.
#define QSC_TLS_CLIENT_APPLICATION_TRAFFIC_LABEL   "c ap traffic"
 Defines the HKDF label used to derive client application traffic secrets.
#define QSC_TLS_CLIENT_APPLICATION_TRAFFIC_LABEL_SIZE   12U
 Defines the length of the client application traffic label string.
#define QSC_TLS_SERVER_APPLICATION_TRAFFIC_LABEL   "s ap traffic"
 Defines the HKDF label used to derive server application traffic secrets.
#define QSC_TLS_SERVER_APPLICATION_TRAFFIC_LABEL_SIZE   12U
 Defines the length of the server application traffic label string.
#define QSC_TLS_EXT_BINDER_LABEL   "ext binder"
 Defines the HKDF label used for external PSK binders.
#define QSC_TLS_EXT_BINDER_LABEL_SIZE   10U
 Defines the length of the external binder label string.
#define QSC_TLS_RES_BINDER_LABEL   "res binder"
 Defines the HKDF label used for resumption PSK binders.
#define QSC_TLS_RES_BINDER_LABEL_SIZE   10U
 Defines the length of the resumption binder label string.
#define QSC_TLS_EXPORTER_MASTER_LABEL   "exp master"
 Defines the HKDF label used to derive the exporter master secret.
#define QSC_TLS_EXPORTER_MASTER_LABEL_SIZE   10U
 Defines the length of the exporter master label string.
#define QSC_TLS_RESUMPTION_LABEL   "resumption"
 Defines the HKDF label used to derive the resumption secret.
#define QSC_TLS_RESUMPTION_LABEL_SIZE   10U
 Defines the length of the resumption label string.
#define QSC_TLS_KEY_LABEL   "key"
 Defines the HKDF label used to derive record protection keys.
#define QSC_TLS_KEY_LABEL_SIZE   3U
 Defines the length of the record key label string.
#define QSC_TLS_IV_LABEL   "iv"
 Defines the HKDF label used to derive record protection IVs.
#define QSC_TLS_IV_LABEL_SIZE   2U
 Defines the length of the record IV label string.
#define QSC_TLS_KEY_UPDATE_LABEL   "traffic upd"
 Defines the HKDF label used to update application traffic secrets.
#define QSC_TLS_KEY_UPDATE_LABEL_SIZE   11U
 Defines the length of the traffic update label string.
#define QSC_TLS_EXTENSION_HEADER_SIZE   4U
 Defines the size of a TLS extension header in bytes.
#define QSC_TLS_VECTOR16_HEADER_SIZE   2U
 Defines the size of a 16-bit vector length field in bytes.
#define QSC_TLS_KEYSHARE_ENTRY_HEADER_SIZE   4U
 Defines the size of a TLS key_share entry header in bytes.

Detailed Description

Defines fixed TLS protocol constants and HKDF label constants.