58QSC_CPLUSPLUS_ENABLED_START
102#if !defined(QSC_CSX_AUTHENTICATED)
103# define QSC_CSX_AUTHENTICATED
118#define QSC_CSX_BLOCK_SIZE 128U
124#define QSC_CSX_INFO_SIZE 48U
130#define QSC_CSX_KEY_SIZE 64U
136#define QSC_CSX_MAC_SIZE 64U
142#define QSC_CSX_NONCE_SIZE 16U
148#define QSC_CSX_STATE_SIZE 16U
266QSC_CPLUSPLUS_ENABLED_END
QSC_EXPORT_API bool qsc_csx_transform(qsc_csx_state *ctx, uint8_t *output, const uint8_t *input, size_t length)
Transform an array of bytes. In encryption mode, the input plain-text is encrypted and then an authen...
Definition csx.c:857
QSC_EXPORT_API void qsc_csx_store_nonce(const qsc_csx_state *ctx, uint8_t nonce[QSC_CSX_NONCE_SIZE])
Retrieves the current nonce from the state.
Definition csx.c:846
QSC_EXPORT_API void qsc_csx_set_associated(qsc_csx_state *ctx, const uint8_t *data, size_t length)
Set the associated data string used in authenticating the message. The associated data may be packet ...
Definition csx.c:826
#define QSC_CSX_STATE_SIZE
The uint64 size of the internal state array.
Definition csx.h:148
QSC_EXPORT_API void qsc_csx_dispose(qsc_csx_state *ctx)
Dispose of the CSX cipher state.
Definition csx.c:729
QSC_EXPORT_API void qsc_csx_initialize(qsc_csx_state *ctx, const qsc_csx_keyparams *keyparams, bool encryption)
Initialize the state with the input cipher-key and optional info tweak.
Definition csx.c:746
#define QSC_CSX_NONCE_SIZE
The byte size of the nonce array.
Definition csx.h:142
QSC_EXPORT_API bool qsc_csx_extended_transform(qsc_csx_state *ctx, uint8_t *output, const uint8_t *input, size_t length, bool finalize)
A multi-call transform for a large array of bytes, such as required by file encryption....
Definition csx.c:925
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:605
SHA3 family of hash functions.
The key parameters structure containing key, nonce, and info arrays and lengths. Use this structure t...
Definition csx.h:159
uint8_t * nonce
Definition csx.h:162
const uint8_t * key
Definition csx.h:160
size_t infolen
Definition csx.h:164
size_t keylen
Definition csx.h:161
const uint8_t * info
Definition csx.h:163
The internal state structure containing the round-key array.
Definition csx.h:172
uint64_t counter
Definition csx.h:175
qsc_keccak_state kstate
Definition csx.h:174
uint64_t state[QSC_CSX_STATE_SIZE]
Definition csx.h:173
bool encrypt
Definition csx.h:176
The Keccak state array; state array must be initialized by the caller.
Definition sha3.h:256