TrustCore SDK Crypto Interface API reference  version 2.0
crypto_interface_aes_gcm.h
Go to the documentation of this file.
1 /*
2  * crypto_interface_aes_gcm.h
3  *
4  * Cryptographic Interface header file for declaring AES-GCM functions
5  * for the Crypto Interface.
6  *
7  * Copyright 2019-2024 DigiCert, Inc. All Rights Reserved.
8  * Proprietary and Confidential Material.
9  *
10  */
11 
18 #ifndef __CRYPTO_INTERFACE_AES_GCM_HEADER__
19 #define __CRYPTO_INTERFACE_AES_GCM_HEADER__
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 /* macros and context type for last two APIs at bottom of this file */
26 #define GCM_MODE_GENERAL 0
27 #define GCM_MODE_256B 100
28 #define GCM_MODE_4K 101
29 #define GCM_MODE_64K 102
30 
31 typedef struct {
32 
33  BulkCtx pTblCtx;
34  ubyte4 tableSize;
35  MocSymCtx pMocSymCtx;
36  ubyte4 enabled;
37 
38 } AES_GCM_CTX;
39 
40 
54 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_GCM_createCtx_256b (
55  MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyData,
56  sbyte4 keyLen,
57  sbyte4 encrypt
58  );
59 
74 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_nonce_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 nonceLen);
75 
92 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_aad_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pAadData, ubyte4 aadDataLen);
93 
112 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_data_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, ubyte4 dataLen);
113 
133 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_final_ex_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pTag, ubyte4 tagLen);
134 
144 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_deleteCtx_256b (
145  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pCtx
146  );
147 
243 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_cipher_256b (
244  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
245  ubyte *pNonce,
246  ubyte4 nonceLen,
247  ubyte *pAaData,
248  ubyte4 aadLen,
249  ubyte *pData,
250  ubyte4 dataLen,
251  ubyte4 tagLen,
252  sbyte4 encrypt
253  );
254 
267 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_init_256b (
268  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
269  ubyte *pNonce,
270  ubyte4 nonceLen,
271  ubyte *pAaData,
272  ubyte4 aadLen
273  );
274 
289 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_encrypt_256b (
290  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
291  ubyte *pData,
292  ubyte4 dataLen
293  );
294 
309 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_decrypt_256b (
310  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
311  ubyte *pCipherText,
312  ubyte4 cipherTextLen
313  );
314 
331 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_final_256b (
332  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
333  ubyte pTag[/*AES_BLOCK_SIZE*/]
334  );
335 
346 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_clone_256b (
347  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
348  BulkCtx *ppNewCtx
349  );
350 
364 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_GCM_createCtx_4k (
365  MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyData,
366  sbyte4 keyLen,
367  sbyte4 encrypt
368  );
369 
370 
385 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_nonce_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 nonceLen);
386 
402 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_aad_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pAadData, ubyte4 aadDataLen);
403 
422 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_data_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, ubyte4 dataLen);
423 
443 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_final_ex_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pTag, ubyte4 tagLen);
444 
454 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_deleteCtx_4k (
455  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pCtx
456  );
457 
553 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_cipher_4k (
554  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
555  ubyte *pNonce,
556  ubyte4 nonceLen,
557  ubyte *pAaData,
558  ubyte4 aadLen,
559  ubyte *pData,
560  ubyte4 dataLen,
561  ubyte4 tagLen,
562  sbyte4 encrypt
563  );
564 
577 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_init_4k (
578  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
579  ubyte *pNonce,
580  ubyte4 nonceLen,
581  ubyte *pAaData,
582  ubyte4 aadLen
583  );
584 
599 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_encrypt_4k (
600  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
601  ubyte *pData,
602  ubyte4 dataLen
603  );
604 
619 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_decrypt_4k (
620  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
621  ubyte *pCipherText,
622  ubyte4 cipherTextLen
623  );
624 
641 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_final_4k (
642  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
643  ubyte pTag[/*AES_BLOCK_SIZE*/]
644  );
645 
656 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_clone_4k (
657  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
658  BulkCtx *ppNewCtx
659  );
660 
674 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_GCM_createCtx_64k (
675  MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyData,
676  sbyte4 keyLen,
677  sbyte4 encrypt
678  );
679 
680 
695 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_nonce_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 nonceLen);
696 
712 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_aad_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pAadData, ubyte4 aadDataLen);
713 
732 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_data_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, ubyte4 dataLen);
733 
753 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_final_ex_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pTag, ubyte4 tagLen);
754 
764 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_deleteCtx_64k (
765  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pCtx
766  );
767 
863 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_cipher_64k (
864  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
865  ubyte *pNonce,
866  ubyte4 nonceLen,
867  ubyte *pAaData,
868  ubyte4 aadLen,
869  ubyte *pData,
870  ubyte4 dataLen,
871  ubyte4 tagLen,
872  sbyte4 encrypt
873  );
874 
887 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_init_64k (
888  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
889  ubyte *pNonce,
890  ubyte4 nonceLen,
891  ubyte *pAaData,
892  ubyte4 aadLen
893  );
894 
909 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_encrypt_64k (
910  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
911  ubyte *pData,
912  ubyte4 dataLen
913  );
914 
929 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_decrypt_64k (
930  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
931  ubyte *pCipherText,
932  ubyte4 cipherTextLen
933  );
934 
951 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_final_64k (
952  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
953  ubyte pTag[/*AES_BLOCK_SIZE*/]
954  );
955 
966 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_clone_64k (
967  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
968  BulkCtx *ppNewCtx
969  );
970 
987 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AES_GCM_newCtx(
988  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppNewCtx,
989  ubyte4 tableSizeMode,
990  ubyte *pKeyMaterial,
991  sbyte4 keyMaterialLen,
992  sbyte4 encrypt);
993 
1016 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AES_GCM_encrypt(
1017  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
1018  ubyte *pNonce,
1019  ubyte4 *pNonceLen,
1020  intBoolean *pWasNonceUsed,
1021  ubyte *pAad,
1022  ubyte4 aadLen,
1023  ubyte *pData,
1024  ubyte4 dataLen,
1025  ubyte4 tagLen);
1026 
1042 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AES_GCM_decrypt(
1043  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
1044  ubyte *pNonce,
1045  ubyte4 nonceLen,
1046  ubyte *pAad,
1047  ubyte4 aadLen,
1048  ubyte *pData,
1049  ubyte4 dataLen,
1050  ubyte4 tagLen);
1051 
1060 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AES_GCM_deleteCtx(
1061  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppCtx);
1062 
1063 #ifdef __cplusplus
1064 }
1065 #endif
1066 
1067 #endif /* __CRYPTO_INTERFACE_AES_GCM_HEADER__ */
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_data_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, ubyte4 dataLen)
Updates an AES-GCM context with data to be encrypted or decrypted.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_encrypt_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, ubyte4 dataLen)
Update an encryption operation.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_aad_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pAadData, ubyte4 aadDataLen)
Updates an AES-GCM context with additional authenticated data.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_final_ex_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pTag, ubyte4 tagLen)
Finalizes an AES-GCM context and verifies or outputs the tag.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_decrypt_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pCipherText, ubyte4 cipherTextLen)
Update an encryption operation.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_deleteCtx_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pCtx)
Delete an AES-GCM context previously created with CRYPTO_INTERFACE_GCM_createCtx_4k.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_encrypt_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, ubyte4 dataLen)
Update an encryption operation.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_final_ex_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pTag, ubyte4 tagLen)
Finalizes an AES-GCM context and verifies or outputs the tag.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_deleteCtx_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pCtx)
Delete an AES-GCM context previously created with CRYPTO_INTERFACE_GCM_createCtx_256b.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AES_GCM_decrypt(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 nonceLen, ubyte *pAad, ubyte4 aadLen, ubyte *pData, ubyte4 dataLen, ubyte4 tagLen)
Decrypt and verify a buffer of data via the AES-GCM algorithm.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_encrypt_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, ubyte4 dataLen)
Update an encryption operation.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_decrypt_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pCipherText, ubyte4 cipherTextLen)
Update an encryption operation.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_cipher_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 nonceLen, ubyte *pAaData, ubyte4 aadLen, ubyte *pData, ubyte4 dataLen, ubyte4 tagLen, sbyte4 encrypt)
Perform an AES-GCM cipher operation in one step.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_init_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 nonceLen, ubyte *pAaData, ubyte4 aadLen)
Initialize an AES-GCM context for a cipher operation.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_clone_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, BulkCtx *ppNewCtx)
Clone a AES-GCM context.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_GCM_createCtx_64k(MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyData, sbyte4 keyLen, sbyte4 encrypt)
Create a new AES-GCM context for Authenticated Encrypt Authenticated Decrypt (AEAD) operations...
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AES_GCM_encrypt(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 *pNonceLen, intBoolean *pWasNonceUsed, ubyte *pAad, ubyte4 aadLen, ubyte *pData, ubyte4 dataLen, ubyte4 tagLen)
Encrypt and tags a buffer of data via the AES-GCM algorithm.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_nonce_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 nonceLen)
Sets the nonce in a previously created AES-GCM Context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_final_ex_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pTag, ubyte4 tagLen)
Finalizes an AES-GCM context and verifies or outputs the tag.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_final_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte pTag[])
Finish an AES-GCM operation to recieve the computed tag.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_GCM_createCtx_256b(MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyData, sbyte4 keyLen, sbyte4 encrypt)
Create a new AES-GCM context for Authenticated Encrypt Authenticated Decrypt (AEAD) operations...
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_GCM_createCtx_4k(MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyData, sbyte4 keyLen, sbyte4 encrypt)
Create a new AES-GCM context for Authenticated Encrypt Authenticated Decrypt (AEAD) operations...
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AES_GCM_newCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppNewCtx, ubyte4 tableSizeMode, ubyte *pKeyMaterial, sbyte4 keyMaterialLen, sbyte4 encrypt)
Create a new AES-GCM context of type AES_GCM_CTX for Authenticated Encrypt Authenticated Decrypt (AEA...
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_deleteCtx_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pCtx)
Delete an AES-GCM context previously created with CRYPTO_INTERFACE_GCM_createCtx_64k.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_final_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte pTag[])
Finish an AES-GCM operation to recieve the computed tag.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_data_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, ubyte4 dataLen)
Updates an AES-GCM context with data to be encrypted or decrypted.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AES_GCM_deleteCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppCtx)
Deletes and frees memory associated with an AES-GCM context of type AES_GCM_CTX.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_nonce_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 nonceLen)
Sets the nonce in a previously created AES-GCM Context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_decrypt_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pCipherText, ubyte4 cipherTextLen)
Update an encryption operation.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_nonce_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 nonceLen)
Sets the nonce in a previously created AES-GCM Context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_aad_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pAadData, ubyte4 aadDataLen)
Updates an AES-GCM context with additional authenticated data.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_final_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte pTag[])
Finish an AES-GCM operation to recieve the computed tag.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_init_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 nonceLen, ubyte *pAaData, ubyte4 aadLen)
Initialize an AES-GCM context for a cipher operation.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_cipher_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 nonceLen, ubyte *pAaData, ubyte4 aadLen, ubyte *pData, ubyte4 dataLen, ubyte4 tagLen, sbyte4 encrypt)
Perform an AES-GCM cipher operation in one step.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_clone_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, BulkCtx *ppNewCtx)
Clone a AES-GCM context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_data_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, ubyte4 dataLen)
Updates an AES-GCM context with data to be encrypted or decrypted.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_cipher_256b(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 nonceLen, ubyte *pAaData, ubyte4 aadLen, ubyte *pData, ubyte4 dataLen, ubyte4 tagLen, sbyte4 encrypt)
Perform an AES-GCM cipher operation in one step.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_update_aad_64k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pAadData, ubyte4 aadDataLen)
Updates an AES-GCM context with additional authenticated data.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_init_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pNonce, ubyte4 nonceLen, ubyte *pAaData, ubyte4 aadLen)
Initialize an AES-GCM context for a cipher operation.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GCM_clone_4k(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, BulkCtx *ppNewCtx)
Clone a AES-GCM context.