TrustCore SDK Crypto Interface API reference  version 2.0
crypto_interface_hmac.h
Go to the documentation of this file.
1 /*
2  * crypto_interface_hmac.h
3  *
4  * Cryptographic Interface header file for declaring HMAC functions
5  * for the Crypto Interface.
6  *
7  * Copyright 2019-2024 DigiCert, Inc. All Rights Reserved.
8  * Proprietary and Confidential Material.
9  *
10  */
11 
19 #ifndef __CRYPTO_INTERFACE_HMAC_HEADER__
20 #define __CRYPTO_INTERFACE_HMAC_HEADER__
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
78 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacCreate (
79  MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX **ppCtx,
80  const BulkHashAlgo *pBHAlgo
81  );
82 
127 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacKey (
128  MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX *pCtx,
129  const ubyte *pKey,
130  ubyte4 keyLen
131  );
132 
174 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacReset (
175  MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX *pCtx
176  );
177 
223 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacUpdate (
224  MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX *pCtx,
225  const ubyte *pData,
226  ubyte4 dataLen
227  );
228 
281 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacFinal (
282  MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX *pCtx,
283  ubyte *pResult
284  );
285 
329 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacDelete (
330  MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX **ppCtx
331  );
332 
345 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacCloneCtx (
346  MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX **ppDest,
347  HMAC_CTX *pSrc
348  );
349 
417 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacQuick (
418  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
419  sbyte4 keyLen,
420  const ubyte *pText,
421  sbyte4 textLen,
422  ubyte *pResult,
423  const BulkHashAlgo *pBHAlgo
424  );
425 
426 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacQuicker (
427  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
428  sbyte4 keyLen,
429  const ubyte *pText,
430  sbyte4 textLen,
431  ubyte *pResult,
432  const BulkHashAlgo *pBHAlgo,
433  HMAC_CTX *pCtx
434  );
435 
500 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacSingle (
501  MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX *pCtx,
502  const ubyte *pText,
503  sbyte4 textLen,
504  ubyte *pResult
505  );
506 
578 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacQuickEx (
579  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
580  sbyte4 keyLen,
581  const ubyte *pText,
582  sbyte4 textLen,
583  const ubyte *pOptText,
584  ubyte4 optTextLen,
585  ubyte *pResult,
586  const BulkHashAlgo *pBHAlgo
587  );
588 
589 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacQuickerEx (
590  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
591  sbyte4 keyLen,
592  const ubyte *pText,
593  sbyte4 textLen,
594  const ubyte *pOptText,
595  ubyte4 optTextLen,
596  ubyte *pResult,
597  const BulkHashAlgo *pBHAlgo,
598  HMAC_CTX *pCtx
599  );
600 
601 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacQuickerInline (
602  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
603  sbyte4 keyLen,
604  const ubyte *pText,
605  sbyte4 textLen,
606  ubyte *pResult,
607  const BulkHashAlgo *pBHAlgo,
608  BulkCtx pContext
609  );
610 
611 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacQuickerInlineEx (
612  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
613  sbyte4 keyLen,
614  const ubyte *pText,
615  sbyte4 textLen,
616  const ubyte *pOptText,
617  sbyte4 optTextLen,
618  ubyte *pResult,
619  const BulkHashAlgo *pBHAlgo,
620  BulkCtx pContext
621  );
622 
623 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HMAC_MD5 (
624  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
625  sbyte4 keyLen,
626  const ubyte *pText,
627  sbyte4 textLen,
628  const ubyte *pTextOpt,
629  sbyte4 textOptLen,
630  ubyte pResult[MD5_DIGESTSIZE]
631  );
632 
633 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HMAC_MD5_quick (
634  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
635  sbyte4 keyLen,
636  const ubyte *pText,
637  sbyte4 textLen,
638  ubyte *pResult
639  );
640 
641 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HMAC_SHA1 (
642  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
643  sbyte4 keyLen,
644  const ubyte *pText,
645  sbyte4 textLen,
646  const ubyte *pTextOpt,
647  sbyte4 textOptLen,
648  ubyte pResult[SHA_HASH_RESULT_SIZE]
649  );
650 
668 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HMAC_SHA1_96 (
669  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
670  sbyte4 keyLen,
671  const ubyte *pText,
672  sbyte4 textLen,
673  const ubyte *pTextOpt,
674  sbyte4 textOptLen,
675  ubyte *pResult
676  );
677 
678 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HMAC_SHA1_quick (
679  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
680  sbyte4 keyLen,
681  const ubyte *pText,
682  sbyte4 textLen,
683  ubyte *pResult
684  );
685 
686 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HMAC_SHA256 (
687  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
688  sbyte4 keyLen,
689  const ubyte *pText,
690  sbyte4 textLen,
691  const ubyte *pTextOpt,
692  sbyte4 textOptLen,
693  ubyte pResult[SHA256_RESULT_SIZE]
694  );
695 
696 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HMAC_SHA512 (
697  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
698  sbyte4 keyLen,
699  const ubyte *pText,
700  sbyte4 textLen,
701  const ubyte *pTextOpt,
702  sbyte4 textOptLen,
703  ubyte pResult[SHA512_RESULT_SIZE]
704  );
705 
706 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HMAC_SHA1Ex (
707  MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey,
708  sbyte4 keyLen,
709  const ubyte *ppTexts[],
710  sbyte4 pTextLens[],
711  sbyte4 numTexts,
712  ubyte pResult[SHA_HASH_RESULT_SIZE]
713  );
714 
715 #ifdef __cplusplus
716 }
717 #endif
718 
719 #endif /* __CRYPTO_INTERFACE_HMAC_HEADER__ */
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacQuick(MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey, sbyte4 keyLen, const ubyte *pText, sbyte4 textLen, ubyte *pResult, const BulkHashAlgo *pBHAlgo)
Calculate HMAC (with a single function call).
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacCreate(MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX **ppCtx, const BulkHashAlgo *pBHAlgo)
Create HMAC context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacDelete(MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX **ppCtx)
Delete (free) HMAC context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacUpdate(MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX *pCtx, const ubyte *pData, ubyte4 dataLen)
Update intermediate HMAC value.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacFinal(MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX *pCtx, ubyte *pResult)
Get final HMAC value.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacQuickEx(MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey, sbyte4 keyLen, const ubyte *pText, sbyte4 textLen, const ubyte *pOptText, ubyte4 optTextLen, ubyte *pResult, const BulkHashAlgo *pBHAlgo)
Calculate HMAC (with a single function call) for a message with extended data.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HMAC_SHA1_96(MOC_HASH(hwAccelDescr hwAccelCtx) const ubyte *pKey, sbyte4 keyLen, const ubyte *pText, sbyte4 textLen, const ubyte *pTextOpt, sbyte4 textOptLen, ubyte *pResult)
Computes a hmac-sha1 truncated to 96 bits.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacCloneCtx(MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX **ppDest, HMAC_CTX *pSrc)
Allocates and makes a clone of a HMAC_CTX.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacKey(MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX *pCtx, const ubyte *pKey, ubyte4 keyLen)
Insert and process HMAC context's key.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacSingle(MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX *pCtx, const ubyte *pText, sbyte4 textLen, ubyte *pResult)
Calculate HMAC with a single function call, using a prekeyed HMAC ctx.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_HmacReset(MOC_HASH(hwAccelDescr hwAccelCtx) HMAC_CTX *pCtx)
Reset HMAC context.