QSC Post Quantum Cryptographic Library 1.3.0.0 (C1)
A post quantum secure library written in Ansi C
Loading...
Searching...
No Matches
tlstypes.h
Go to the documentation of this file.
1/* 2020-2026 Quantum Resistant Cryptographic Solutions Corporation
2 * All Rights Reserved.
3 *
4 * NOTICE:
5 * This software and all accompanying materials are the exclusive property of
6 * Quantum Resistant Cryptographic Solutions Corporation (QRCS). The intellectual
7 * and technical concepts contained herein are proprietary to QRCS and are
8 * protected under applicable Canadian, U.S., and international copyright,
9 * patent, and trade secret laws.
10 *
11 * CRYPTOGRAPHIC ALGORITHMS AND IMPLEMENTATIONS:
12 * - This software includes implementations of cryptographic primitives and
13 * algorithms that are standardized or in the public domain, such as AES
14 * and SHA-3, which are not proprietary to QRCS.
15 * - This software also includes cryptographic primitives, constructions, and
16 * algorithms designed by QRCS, including but not limited to RCS, SCB, CSX, QMAC, and
17 * related components, which are proprietary to QRCS.
18 * - All source code, implementations, protocol compositions, optimizations,
19 * parameter selections, and engineering work contained in this software are
20 * original works of QRCS and are protected under this license.
21 *
22 * LICENSE AND USE RESTRICTIONS:
23 * - This software is licensed under the Quantum Resistant Cryptographic Solutions
24 * Public Research and Evaluation License (QRCS-PREL), 2025-2026.
25 * - Permission is granted solely for non-commercial evaluation, academic research,
26 * cryptographic analysis, interoperability testing, and feasibility assessment.
27 * - Commercial use, production deployment, commercial redistribution, or
28 * integration into products or services is strictly prohibited without a
29 * separate written license agreement executed with QRCS.
30 * - Licensing and authorized distribution are solely at the discretion of QRCS.
31 *
32 * EXPERIMENTAL CRYPTOGRAPHY NOTICE:
33 * Portions of this software may include experimental, novel, or evolving
34 * cryptographic designs. Use of this software is entirely at the user's risk.
35 *
36 * DISCLAIMER:
37 * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
38 * IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS
39 * FOR A PARTICULAR PURPOSE, SECURITY, OR NON-INFRINGEMENT. QRCS DISCLAIMS ALL
40 * LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
41 * ARISING FROM THE USE OR MISUSE OF THIS SOFTWARE.
42 *
43 * FULL LICENSE:
44 * This software is subject to the Quantum Resistant Cryptographic Solutions
45 * Public Research and Evaluation License (QRCS-PREL), 2025-2026. The complete license terms
46 * are provided in the accompanying LICENSE file or at https://www.qrcscorp.ca.
47 *
48 * Written by: John G. Underhill
49 * Contact: contact@qrcscorp.ca
50 */
51
52#ifndef QSC_TLS_TYPES_H
53#define QSC_TLS_TYPES_H
54
55#include "qsccommon.h"
56
57QSC_CPLUSPLUS_ENABLED_START
58
63
75
88
123
135
153
173
188
208
218
228
239
240QSC_CPLUSPLUS_ENABLED_END
241
242#endif
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.
qsc_tls_extension_type
TLS extension type identifiers.
Definition tlstypes.h:141
@ qsc_tls_extension_supported_versions
Definition tlstypes.h:148
@ qsc_tls_extension_server_name
Definition tlstypes.h:142
@ qsc_tls_extension_psk_key_exchange_modes
Definition tlstypes.h:149
@ qsc_tls_extension_signature_algorithms_cert
Definition tlstypes.h:150
@ qsc_tls_extension_key_share
Definition tlstypes.h:151
@ qsc_tls_extension_early_data
Definition tlstypes.h:144
@ qsc_tls_extension_application_layer_protocol_negotiation
Definition tlstypes.h:147
@ qsc_tls_extension_pre_shared_key
Definition tlstypes.h:143
@ qsc_tls_extension_supported_groups
Definition tlstypes.h:145
@ qsc_tls_extension_signature_algorithms
Definition tlstypes.h:146
qsc_tls_certificate_type
Certificate type values per RFC 7250 and RFC 8446.
Definition tlstypes.h:224
@ qsc_tls_certificate_type_x509
Definition tlstypes.h:225
@ qsc_tls_certificate_type_raw_public_key
Definition tlstypes.h:226
qsc_tls_cipher_suite
TLS 1.3 cipher-suite identifiers.
Definition tlstypes.h:129
@ qsc_tls_cipher_suite_tls_aes_128_gcm_sha256
Definition tlstypes.h:131
@ qsc_tls_cipher_suite_none
Definition tlstypes.h:130
@ qsc_tls_cipher_suite_tls_aes_256_gcm_sha384
Definition tlstypes.h:132
@ qsc_tls_cipher_suite_tls_chacha20_poly1305_sha256
Definition tlstypes.h:133
qsc_tls_record_content_type
TLS record content-type codes.
Definition tlstypes.h:81
@ qsc_tls_record_content_application_data
Definition tlstypes.h:86
@ qsc_tls_record_content_handshake
Definition tlstypes.h:85
@ qsc_tls_record_content_alert
Definition tlstypes.h:84
@ qsc_tls_record_content_change_cipher_spec
Definition tlstypes.h:83
@ qsc_tls_record_content_invalid
Definition tlstypes.h:82
qsc_tls_named_group
TLS named-group identifiers for classical, ML-KEM, and hybrid key exchange groups.
Definition tlstypes.h:159
@ qsc_tls_group_secp521r1
Definition tlstypes.h:163
@ qsc_tls_group_mlkem512
Definition tlstypes.h:166
@ qsc_tls_group_mlkem1024
Definition tlstypes.h:168
@ qsc_tls_group_secp256r1_mlkem768
Definition tlstypes.h:170
@ qsc_tls_group_mlkem768
Definition tlstypes.h:167
@ qsc_tls_group_x448
Definition tlstypes.h:165
@ qsc_tls_group_secp384r1
Definition tlstypes.h:162
@ qsc_tls_group_x25519
Definition tlstypes.h:164
@ qsc_tls_group_none
Definition tlstypes.h:160
@ qsc_tls_group_secp384r1_mlkem1024
Definition tlstypes.h:171
@ qsc_tls_group_secp256r1
Definition tlstypes.h:161
@ qsc_tls_group_x25519_mlkem768
Definition tlstypes.h:169
qsc_tls_psk_key_exchange_mode
psk_key_exchange_modes values per RFC 8446 section 4.2.9.
Definition tlstypes.h:214
@ qsc_tls_psk_key_exchange_mode_psk_dhe_ke
Definition tlstypes.h:216
@ qsc_tls_psk_key_exchange_mode_psk_ke
Definition tlstypes.h:215
qsc_tls_alert_level
TLS alert severity level per RFC 8446 section 6. In TLS 1.3 the level is advisory; all alerts except ...
Definition tlstypes.h:235
@ qsc_tls_alert_level_fatal
Definition tlstypes.h:237
@ qsc_tls_alert_level_warning
Definition tlstypes.h:236
qsc_tls_alert_description
TLS alert description codes carried in Alert protocol messages.
Definition tlstypes.h:94
@ qsc_tls_alert_certificate_required
Definition tlstypes.h:120
@ qsc_tls_alert_unexpected_message
Definition tlstypes.h:96
@ qsc_tls_alert_handshake_failure
Definition tlstypes.h:99
@ qsc_tls_alert_access_denied
Definition tlstypes.h:107
@ qsc_tls_alert_internal_error
Definition tlstypes.h:112
@ qsc_tls_alert_unknown_psk_identity
Definition tlstypes.h:119
@ qsc_tls_alert_certificate_revoked
Definition tlstypes.h:102
@ qsc_tls_alert_illegal_parameter
Definition tlstypes.h:105
@ qsc_tls_alert_decrypt_error
Definition tlstypes.h:109
@ qsc_tls_alert_certificate_expired
Definition tlstypes.h:103
@ qsc_tls_alert_user_canceled
Definition tlstypes.h:114
@ qsc_tls_alert_bad_certificate_status_response
Definition tlstypes.h:118
@ qsc_tls_alert_certificate_unknown
Definition tlstypes.h:104
@ qsc_tls_alert_no_application_protocol
Definition tlstypes.h:121
@ qsc_tls_alert_missing_extension
Definition tlstypes.h:115
@ qsc_tls_alert_decode_error
Definition tlstypes.h:108
@ qsc_tls_alert_unknown_ca
Definition tlstypes.h:106
@ qsc_tls_alert_unsupported_extension
Definition tlstypes.h:116
@ qsc_tls_alert_insufficient_security
Definition tlstypes.h:111
@ qsc_tls_alert_unsupported_certificate
Definition tlstypes.h:101
@ qsc_tls_alert_bad_record_mac
Definition tlstypes.h:97
@ qsc_tls_alert_record_overflow
Definition tlstypes.h:98
@ qsc_tls_alert_close_notify
Definition tlstypes.h:95
@ qsc_tls_alert_unrecognized_name
Definition tlstypes.h:117
@ qsc_tls_alert_bad_certificate
Definition tlstypes.h:100
@ qsc_tls_alert_protocol_version
Definition tlstypes.h:110
@ qsc_tls_alert_inappropriate_fallback
Definition tlstypes.h:113
qsc_tls_handshake_type
TLS 1.3 handshake message type codes per RFC 8446 section B.3.
Definition tlstypes.h:194
@ qsc_tls_handshake_type_server_hello
Definition tlstypes.h:197
@ qsc_tls_handshake_type_encrypted_extensions
Definition tlstypes.h:200
@ qsc_tls_handshake_type_certificate_verify
Definition tlstypes.h:203
@ qsc_tls_handshake_type_new_session_ticket
Definition tlstypes.h:198
@ qsc_tls_handshake_type_key_update
Definition tlstypes.h:205
@ qsc_tls_handshake_type_message_hash
Definition tlstypes.h:206
@ qsc_tls_handshake_type_finished
Definition tlstypes.h:204
@ qsc_tls_handshake_type_certificate
Definition tlstypes.h:201
@ qsc_tls_handshake_type_hello_request
Definition tlstypes.h:195
@ qsc_tls_handshake_type_certificate_request
Definition tlstypes.h:202
@ qsc_tls_handshake_type_client_hello
Definition tlstypes.h:196
@ qsc_tls_handshake_type_end_of_early_data
Definition tlstypes.h:199
qsc_tls_hash_algorithm
Identifies the transcript and HKDF hash algorithm associated with a TLS cipher suite.
Definition tlstypes.h:69
@ qsc_tls_hash_sha256
Definition tlstypes.h:71
@ qsc_tls_hash_sha384
Definition tlstypes.h:72
@ qsc_tls_hash_none
Definition tlstypes.h:70
@ qsc_tls_hash_sha512
Definition tlstypes.h:73
qsc_tls_signature_scheme
TLS signature-scheme identifiers.
Definition tlstypes.h:179
@ qsc_tls_sig_mldsa87
Definition tlstypes.h:186
@ qsc_tls_sig_mldsa65
Definition tlstypes.h:185
@ qsc_tls_sig_ed25519
Definition tlstypes.h:183
@ qsc_tls_sig_ecdsa_secp384r1_sha384
Definition tlstypes.h:182
@ qsc_tls_sig_mldsa44
Definition tlstypes.h:184
@ qsc_tls_sig_none
Definition tlstypes.h:180
@ qsc_tls_sig_ecdsa_secp256r1_sha256
Definition tlstypes.h:181