46QSC_CPLUSPLUS_ENABLED_START
78#define QSC_QMAC_BLOCK_SIZE 32ULL
84#define QSC_QMAC_KEY_SIZE 32ULL
90#define QSC_QMAC_MAC_SIZE 32ULL
96#define QSC_QMAC_NONCE_SIZE 32ULL
102#define QSC_QMAC_STATE_SIZE (QSC_QMAC_BLOCK_SIZE / sizeof(uint64_t))
198QSC_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 common.h:520
#define QSC_QMAC_STATE_SIZE
The QMAC state size.
Definition qmac.h:102
QSC_EXPORT_API void qsc_qmac_dispose(qsc_qmac_state *ctx)
Dispose of the state.
Definition qmac.c:278
QSC_EXPORT_API void qsc_qmac_compute(uint8_t *output, qsc_qmac_keyparams *keyparams, const uint8_t *message, size_t msglen)
Compute the MAC code.
Definition qmac.c:261
QSC_EXPORT_API void qsc_qmac_initialize(qsc_qmac_state *ctx, qsc_qmac_keyparams *keyparams)
Initialize the state with the secret key.
Definition qmac.c:303
QSC_EXPORT_API void qsc_qmac_finalize(qsc_qmac_state *ctx, uint8_t *output)
Finalize the message state and return the MAC code.
Definition qmac.c:291
qsc_qmac_modes
The QMAC mode types.
Definition qmac.h:109
@ qsc_qmac_mode_512
Definition qmac.h:111
@ qsc_qmac_mode_256
Definition qmac.h:110
QSC_EXPORT_API void qsc_qmac_update(qsc_qmac_state *ctx, const uint8_t *message, size_t msglen)
Update the QMAC generator with a single block of message input.
Definition qmac.c:337
The key parameters structure containing key and info arrays and lengths.
Definition qmac.h:136
uint8_t * nonce
Definition qmac.h:139
qsc_qmac_modes mode
Definition qmac.h:143
const uint8_t * key
Definition qmac.h:137
size_t noncelen
Definition qmac.h:140
size_t infolen
Definition qmac.h:142
size_t keylen
Definition qmac.h:138
const uint8_t * info
Definition qmac.h:141
The QMAC state.
Definition qmac.h:122
uint64_t H[QSC_QMAC_STATE_SIZE]
Definition qmac.h:124
uint64_t Y[QSC_QMAC_STATE_SIZE]
Definition qmac.h:125
uint64_t F[QSC_QMAC_STATE_SIZE]
Definition qmac.h:123
bool initialized
Definition qmac.h:126