46QSC_CPLUSPLUS_ENABLED_START
76#define QSC_QMAC_BLOCK_SIZE 32ULL
82#define QSC_QMAC_KEY_SIZE 32ULL
88#define QSC_QMAC_MAC_SIZE 32ULL
94#define QSC_QMAC_NONCE_SIZE 32ULL
100#define QSC_QMAC_STATE_SIZE (QSC_QMAC_BLOCK_SIZE / sizeof(uint64_t))
187QSC_CPLUSPLUS_ENABLED_END
#define QSC_QMAC_STATE_SIZE
The QMAC state size.
Definition qmac.h:100
QSC_EXPORT_API void qsc_qmac_dispose(qsc_qmac_state *ctx)
Dispose of the state.
Definition qmac.c:83
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:66
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:110
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:96
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:138
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
The key parameters structure containing key and info arrays and lengths.
Definition qmac.h:124
uint8_t * nonce
Definition qmac.h:126
const uint8_t * key
Definition qmac.h:125
size_t noncelen
Definition qmac.h:129
size_t infolen
Definition qmac.h:130
size_t keylen
Definition qmac.h:128
const uint8_t * info
Definition qmac.h:127
The QMAC state.
Definition qmac.h:110
uint64_t H[QSC_QMAC_STATE_SIZE]
Definition qmac.h:112
uint64_t Y[QSC_QMAC_STATE_SIZE]
Definition qmac.h:113
uint64_t F[QSC_QMAC_STATE_SIZE]
Definition qmac.h:111
bool initialized
Definition qmac.h:114