TrustCore SDK NanoCrypto API reference  version 7.0
aes_mmo.h
Go to the documentation of this file.
1 /*
2  * aes_mmo.h
3  *
4  * AES-MMO - AES-MMO Hash Algorithm Header
5  *
6  * Copyright 2019-2024 DigiCert, Inc. All Rights Reserved.
7  * Proprietary and Confidential Material.
8  *
9  */
10 
20 /*------------------------------------------------------------------*/
21 
22 #ifndef __AES_MMO_HEADER__
23 #define __AES_MMO_HEADER__
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 
30 /*--------------------------------------------------------------------------------*/
31 
32 #define AES_MMO_DIGESTSIZE AES_BLOCK_SIZE
33 #define AES_MMO_BLOCK_SIZE AES_BLOCK_SIZE
34 
35 
36 /*------------------------------------------------------------------*/
37 
38 typedef struct AES_MMO_CTX
39 {
40  ubyte hashKey[AES_MMO_BLOCK_SIZE];
41  ubyte hashBuffer[AES_MMO_BLOCK_SIZE];
42  ubyte4 hashBufferIndex;
43  ubyte4 mesgLength;
44 
45 } AES_MMO_CTX;
46 
47 
48 /*------------------------------------------------------------------*/
49 
61 MOC_EXTERN MSTATUS AES_MMO_allocDigest(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pp_context);
62 
73 MOC_EXTERN MSTATUS AES_MMO_freeDigest(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pp_context);
74 
85 MOC_EXTERN MSTATUS AES_MMO_initDigest(MOC_SYM(hwAccelDescr hwAccelCtx) AES_MMO_CTX *pAesMmoCtx);
86 
100 MOC_EXTERN MSTATUS AES_MMO_updateDigest(MOC_SYM(hwAccelDescr hwAccelCtx) AES_MMO_CTX *pAesMmoCtx, const ubyte *pData, ubyte4 dataLen);
101 
113 MOC_EXTERN MSTATUS AES_MMO_final(MOC_SYM(hwAccelDescr hwAccelCtx) AES_MMO_CTX *pAesMmoCtx, ubyte *pHashOutput);
114 
127 MOC_EXTERN MSTATUS AES_MMO_completeDigest(MOC_SYM(hwAccelDescr hwAccelCtx) const ubyte *pData, ubyte4 dataLen, ubyte *pHashOutput);
128 
129 #ifdef __cplusplus
130 }
131 #endif
132 
133 #endif /* __AES_MMO_HEADER__ */
MOC_EXTERN MSTATUS AES_MMO_allocDigest(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pp_context)
Allocates a new AES-MMO context.
MOC_EXTERN MSTATUS AES_MMO_completeDigest(MOC_SYM(hwAccelDescr hwAccelCtx) const ubyte *pData, ubyte4 dataLen, ubyte *pHashOutput)
Performs the AES-MMO hash in a context free one-shot style.
MOC_EXTERN MSTATUS AES_MMO_initDigest(MOC_SYM(hwAccelDescr hwAccelCtx) AES_MMO_CTX *pAesMmoCtx)
Initializes an AES-MMO context.
MOC_EXTERN MSTATUS AES_MMO_updateDigest(MOC_SYM(hwAccelDescr hwAccelCtx) AES_MMO_CTX *pAesMmoCtx, const ubyte *pData, ubyte4 dataLen)
Updates an AES-MMO context with a buffer of data.
MOC_EXTERN MSTATUS AES_MMO_freeDigest(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pp_context)
Deletes a new AES-MMO context.
MOC_EXTERN MSTATUS AES_MMO_final(MOC_SYM(hwAccelDescr hwAccelCtx) AES_MMO_CTX *pAesMmoCtx, ubyte *pHashOutput)
Finalizes an AES-MMO context and outputs the resulting hash.