QSC Post Quantum Cryptographic Library 1.0.0.6c (A6)
A post quantum secure library written in Ansi C
 
Loading...
Searching...
No Matches
common.h File Reference

Contains common definitions for the Quantum Secure Cryptographic (QSC) library. More...

#include <assert.h>
#include <errno.h>
#include <limits.h>
#include <stdbool.h>
#include <stdint.h>
#include <string.h>

Go to the source code of this file.

Macros

#define QSC_CPLUSPLUS_ENABLED_START
 
#define QSC_CPLUSPLUS_ENABLED_END
 
#define QSC_SYSTEM_SOCKETS_BERKELY
 Defined when using Berkeley sockets.
 
#define __attribute__(a)
 Fallback definition for the attribute keyword for compilers that do not support it.
 
#define QSC_EXPORT_API
 API export macro for Microsoft compilers when importing from a DLL.
 
#define QSC_SYSTEM_IS_X86
 Defined when the target system is 32-bit.
 
#define QSC_SIZE_MAX   UINT32_MAX
 The maximum integer size for a 32-bit system.
 
#define QSC_SYSTEM_IS_LITTLE_ENDIAN   (((union { uint32_t x; uint8_t c; }){1}).c)
 Defined if the system is little endian.
 
#define QSC_ALIGN(x)
 Macro for aligning data to 'x' bytes using GCC/Clang.
 
#define QSC_SYSTEM_MAX_PATH   260ULL
 The maximum path length supported by the system.
 
#define QSC_SYSTEM_SECMEMALLOC_DEFAULT   4096ULL
 Default secure memory buffer allocation size (in bytes).
 
#define QSC_SYSTEM_SECMEMALLOC_MIN   16ULL
 Minimum secure memory allocation size (in bytes).
 
#define QSC_SYSTEM_SECMEMALLOC_MAX   128ULL
 Maximum secure memory allocation size (in bytes).
 
#define QSC_SYSTEM_SECMEMALLOC_MAXKB   512ULL
 Maximum secure memory allocation in kilobytes.
 
#define QSC_SYSTEM_OPTIMIZE_IGNORE
 Compiler hint to disable optimization in MSVC.
 
#define QSC_SYSTEM_OPTIMIZE_RESUME
 Compiler hint to resume optimization in MSVC.
 
#define QSC_SYSTEM_CONDITION_IGNORE(x)
 MSVC-specific macro to disable a specific warning condition.
 
#define QSC_SIMD_ALIGN
 Fallback macro for SIMD alignment (no specific alignment).
 
#define QSC_SIMD_ALIGNMENT   8
 Fallback alignment value (8 bytes).
 
#define QSC_STATUS_SUCCESS   0LL
 Function return value indicating successful operation.
 
#define QSC_STATUS_FAILURE   -1LL
 Function return value indicating failed operation.
 
#define QSC_ECDH_S1EC25519
 Enable the ECDH S1EC25519 parameter set.
 
#define QSC_KYBER_FIPS203
 Use the official FIPS 203 version of Kyber. \description The FIPS 203 implementation of Kyber differs significantly from the version of Kyber that was judged by the worlds cryptographic community. It is recommended that a strong source of entropy is used with the FIPS version to offset the changes made to the cipher. By default, QSC uses the ACP entropy provider, a strong combinatory source of system entropy.
 
#define QSC_KYBER_S5P3168
 Enable the Kyber S5-P3168 parameter set.
 
#define QSC_MCELIECE_S5N6688T128
 Enable the McEliece S5-N6688T128 parameter set.
 
#define QSC_NTRU_S5HPS4096821
 Enable the NTRU S5HPS4096821 parameter set.
 
#define QSC_DILITHIUM_S5P4880
 Enable the Dilithium S5P4880 parameter set.
 
#define QSC_ECDSA_S1EC25519
 Enable the ECDSA S1EC25519 parameter set.
 
#define QSC_FALCON_S5SHAKE256F1024
 Enable the Falcon S5SHAKE256F1024 parameter set.
 
#define QSC_SPHINCSPLUS_S5S256SHAKERF
 Enable the SphincsPlus S5S256SHAKERF robust fast parameter set.
 

Detailed Description

Contains common definitions for the Quantum Secure Cryptographic (QSC) library.

This file provides common macros, type definitions, compiler/OS/architecture detection, API export macros, alignment macros, secure memory allocation definitions, and other utility macros. These definitions are used throughout the QSC library to ensure portability and performance.