52#ifndef QSC_TLS_HANDSHAKE_H
53#define QSC_TLS_HANDSHAKE_H
60QSC_CPLUSPLUS_ENABLED_START
217QSC_CPLUSPLUS_ENABLED_END
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.
#define QSC_EXPORT_API
API export macro for Microsoft compilers when importing from a DLL.
Definition qsccommon.h:645
TLS certificate bridge types and validation callbacks.
TLS status code definitions and diagnostic string conversion.
qsc_tls_status
Definition tlserrors.h:65
QSC_EXPORT_API qsc_tls_status qsc_tls_handshake_read_header(const uint8_t *input, size_t inlen, size_t *offset, qsc_tls_handshake_type *type, size_t *bodylen)
Read a TLS handshake header.
Definition tlshandshake.c:35
QSC_EXPORT_API qsc_tls_status qsc_tls_handshake_encode_encrypted_extensions(uint8_t *output, size_t outlen, size_t *offset, const uint8_t *extensions, size_t extensionslen)
Encode the body of an EncryptedExtensions handshake message.
Definition tlshandshake.c:189
QSC_EXPORT_API qsc_tls_status qsc_tls_handshake_decode_finished(const uint8_t *input, size_t inlen, const uint8_t **verifydata, size_t *verifydatalen)
Decode the body of a Finished handshake message.
Definition tlshandshake.c:105
QSC_EXPORT_API qsc_tls_status qsc_tls_handshake_decode_key_update(const uint8_t *input, size_t inlen, bool *requestupdate)
Decode the body of a KeyUpdate handshake message.
Definition tlshandshake.c:199
QSC_EXPORT_API qsc_tls_status qsc_tls_handshake_encode_key_update(uint8_t *output, size_t outlen, size_t *offset, bool requestupdate)
Encode the body of a KeyUpdate handshake message.
Definition tlshandshake.c:194
QSC_EXPORT_API qsc_tls_status qsc_tls_handshake_encode_finished(uint8_t *output, size_t outlen, size_t *offset, const uint8_t *verifydata, size_t verifydatalen)
Encode the body of a Finished handshake message.
Definition tlshandshake.c:86
QSC_EXPORT_API qsc_tls_status qsc_tls_handshake_decode_certificate_verify(const uint8_t *input, size_t inlen, qsc_tls_signature_scheme *scheme, const uint8_t **signature, size_t *signaturelen)
Decode the body of a CertificateVerify handshake message.
Definition tlshandshake.c:156
QSC_EXPORT_API qsc_tls_status qsc_tls_handshake_encode_certificate_verify(uint8_t *output, size_t outlen, size_t *offset, qsc_tls_signature_scheme scheme, const uint8_t *signature, size_t signaturelen)
Encode the body of a CertificateVerify handshake message.
Definition tlshandshake.c:132
QSC_EXPORT_API qsc_tls_status qsc_tls_handshake_send_change_cipher_spec_compat(uint8_t *output, size_t outlen, size_t *written)
Encode the compatibility ChangeCipherSpec record used by TLS 1.3 middlebox mode.
Definition tlshandshake.c:67
QSC_EXPORT_API qsc_tls_status qsc_tls_handshake_write_header(uint8_t *output, size_t outlen, size_t *offset, qsc_tls_handshake_type type, size_t bodylen)
Write a TLS handshake header.
Definition tlshandshake.c:6
Public TLS type definitions.
qsc_tls_handshake_type
TLS 1.3 handshake message type codes per RFC 8446 section B.3.
Definition tlstypes.h:194
qsc_tls_signature_scheme
TLS signature-scheme identifiers.
Definition tlstypes.h:179