TrustCore SDK NanoCrypto API reference  version 7.0
sha512.h
Go to the documentation of this file.
1 
12 /*------------------------------------------------------------------*/
13 
14 #ifndef __SHA512_HEADER__
15 #define __SHA512_HEADER__
16 
17 #include "../cap/capdecl.h"
18 
19 #ifdef __ENABLE_MOCANA_CRYPTO_INTERFACE__
20 #include "../crypto_interface/crypto_interface_sha384_priv.h"
21 #include "../crypto_interface/crypto_interface_sha512_priv.h"
22 #endif
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 #define SHA512_CTX MOC_SHA512_CTX
29 
30 #define SHA512_RESULT_SIZE (64)
31 #define SHA512_BLOCK_SIZE (128)
32 
33 #define SHA384_RESULT_SIZE (48)
34 #define SHA384_BLOCK_SIZE (128)
35 
36 
37 /*------------------------------------------------------------------*/
38 
39 typedef struct SHA512_CTX
40 {
41  MocSymCtx pMocSymCtx;
42  ubyte4 enabled;
43  ubyte4 hashId;
44 
45  ubyte8 hashBlocks[8];
46 
47  ubyte16 msgLength;
48 
49  sbyte4 hashBufferIndex;
50  ubyte hashBuffer[SHA512_BLOCK_SIZE];
51 
52 #ifdef __ENABLE_MOCANA_MINIMUM_STACK__
53  ubyte8 W[80];
54 #endif
55 
56 } SHA512_CTX, SHA384_CTX;
57 
58 typedef SHA512_CTX sha384Descr;
59 typedef SHA512_CTX sha512Descr;
60 
61 /*------------------------------------------------------------------*/
62 
63 /* single steps */
64 #ifndef __DISABLE_MOCANA_SHA512__
65 
117 MOC_EXTERN MSTATUS SHA512_allocDigest (MOC_HASH(hwAccelDescr hwAccelCtx) BulkCtx *pp_shaContext);
118 
163 MOC_EXTERN MSTATUS SHA512_freeDigest (MOC_HASH(hwAccelDescr hwAccelCtx) BulkCtx *pp_shaContext);
164 
216 MOC_EXTERN MSTATUS SHA512_initDigest (MOC_HASH(hwAccelDescr hwAccelCtx) SHA512_CTX *pCtx);
217 
266 MOC_EXTERN MSTATUS SHA512_updateDigest (MOC_HASH(hwAccelDescr hwAccelCtx) SHA512_CTX *pCtx, const ubyte *pData, ubyte4 dataLen);
267 
322 MOC_EXTERN MSTATUS SHA512_finalDigest (MOC_HASH(hwAccelDescr hwAccelCtx) SHA512_CTX *pCtx, ubyte *pOutput);
323 
383 MOC_EXTERN MSTATUS SHA512_completeDigest(MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pData, ubyte4 dataLen, ubyte *pShaOutput);
384 
397 MOC_EXTERN MSTATUS SHA512_cloneCtx(MOC_HASH(hwAccelDescr hwAccelCtx) SHA512_CTX *pDest, SHA512_CTX *pSrc);
398 #endif
399 
400 #ifndef __DISABLE_MOCANA_SHA384__
401 
448 MOC_EXTERN MSTATUS SHA384_allocDigest (MOC_HASH(hwAccelDescr hwAccelCtx) BulkCtx *pp_shaContext);
449 
501 MOC_EXTERN MSTATUS SHA384_freeDigest (MOC_HASH(hwAccelDescr hwAccelCtx) BulkCtx *pp_shaContext);
502 
561 MOC_EXTERN MSTATUS SHA384_updateDigest (MOC_HASH(hwAccelDescr hwAccelCtx) SHA512_CTX *pCtx, const ubyte *pData, ubyte4 dataLen);
562 
570 MOC_EXTERN MSTATUS SHA512_allocDigest (MOC_HASH(hwAccelDescr hwAccelCtx) BulkCtx *pp_shaContext);
571 MOC_EXTERN MSTATUS SHA512_freeDigest (MOC_HASH(hwAccelDescr hwAccelCtx) BulkCtx *pp_shaContext);
572 MOC_EXTERN MSTATUS SHA512_updateDigest (MOC_HASH(hwAccelDescr hwAccelCtx) SHA512_CTX *pCtx, const ubyte *pData, ubyte4 dataLen);
573 #define SHA384_allocDigest SHA512_allocDigest
574 #define SHA384_freeDigest SHA512_freeDigest
575 #define SHA384_updateDigest SHA512_updateDigest
576 
631 MOC_EXTERN MSTATUS SHA384_initDigest (MOC_HASH(hwAccelDescr hwAccelCtx) SHA384_CTX *pCtx);
632 
687 MOC_EXTERN MSTATUS SHA384_finalDigest (MOC_HASH(hwAccelDescr hwAccelCtx) SHA384_CTX *pCtx, ubyte *pOutput);
688 
748 MOC_EXTERN MSTATUS SHA384_completeDigest(MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pData, ubyte4 dataLen, ubyte *pShaOutput);
749 
762 MOC_EXTERN MSTATUS SHA384_cloneCtx(MOC_HASH(hwAccelDescr hwAccelCtx) SHA384_CTX *pDest, SHA384_CTX *pSrc);
763 #endif
764 
765 #ifdef __cplusplus
766 }
767 #endif
768 
769 #endif /* __SHA512_HEADER__ */
MOC_EXTERN MSTATUS SHA512_freeDigest(MOC_HASH(hwAccelDescr hwAccelCtx) BulkCtx *pp_shaContext)
Free (delete) SHA512 operation context data structure.
MOC_EXTERN MSTATUS SHA512_completeDigest(MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pData, ubyte4 dataLen, ubyte *pShaOutput)
Calculate single item's SHA512 digest value (with a single function call).
MOC_EXTERN MSTATUS SHA512_allocDigest(MOC_HASH(hwAccelDescr hwAccelCtx) BulkCtx *pp_shaContext)
Allocate SHA512 operation context data structure.
MOC_EXTERN MSTATUS SHA384_finalDigest(MOC_HASH(hwAccelDescr hwAccelCtx) SHA384_CTX *pCtx, ubyte *pOutput)
Calculate final SHA384 digest value.
MOC_EXTERN MSTATUS SHA512_cloneCtx(MOC_HASH(hwAccelDescr hwAccelCtx) SHA512_CTX *pDest, SHA512_CTX *pSrc)
Makes a clone of a previously allocated SHA512_CTX.
MOC_EXTERN MSTATUS SHA384_allocDigest(MOC_HASH(hwAccelDescr hwAccelCtx) BulkCtx *pp_shaContext)
Allocate SHA384 operation context data structure.
MOC_EXTERN MSTATUS SHA512_initDigest(MOC_HASH(hwAccelDescr hwAccelCtx) SHA512_CTX *pCtx)
Initialize SHA512 operation context data structure.
MOC_EXTERN MSTATUS SHA384_completeDigest(MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pData, ubyte4 dataLen, ubyte *pShaOutput)
Calculate single item's SHA384 digest value (with a single function call).
MOC_EXTERN MSTATUS SHA384_initDigest(MOC_HASH(hwAccelDescr hwAccelCtx) SHA384_CTX *pCtx)
Initialize SHA384 operation context data structure.
MOC_EXTERN MSTATUS SHA384_freeDigest(MOC_HASH(hwAccelDescr hwAccelCtx) BulkCtx *pp_shaContext)
Free (delete) SHA384 operation context data structure.
MOC_EXTERN MSTATUS SHA384_cloneCtx(MOC_HASH(hwAccelDescr hwAccelCtx) SHA384_CTX *pDest, SHA384_CTX *pSrc)
Makes a clone of a previously allocated SHA384_CTX.
MOC_EXTERN MSTATUS SHA512_finalDigest(MOC_HASH(hwAccelDescr hwAccelCtx) SHA512_CTX *pCtx, ubyte *pOutput)
Calculate final SHA512 digest value.
MOC_EXTERN MSTATUS SHA384_updateDigest(MOC_HASH(hwAccelDescr hwAccelCtx) SHA512_CTX *pCtx, const ubyte *pData, ubyte4 dataLen)
Calculate and update intermediate SHA384 digest value.
MOC_EXTERN MSTATUS SHA512_updateDigest(MOC_HASH(hwAccelDescr hwAccelCtx) SHA512_CTX *pCtx, const ubyte *pData, ubyte4 dataLen)
Calculate and update intermediate SHA512 digest value.