TrustCore SDK Crypto Interface API reference  version 2.0
crypto_interface_aes_ctr.h
Go to the documentation of this file.
1 /*
2  * crypto_interface_aes_ctr.h
3  *
4  * Cryptographic Interface header file for declaring AES counter mode 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_AES_CTR_HEADER__
20 #define __CRYPTO_INTERFACE_AES_CTR_HEADER__
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
42 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESCTRCtx (
43  MOC_SYM(hwAccelDescr hwAccelCtx) const ubyte *pKeyMaterial,
44  sbyte4 keyLength,
45  sbyte4 encrypt
46  );
47 
63 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESCTRInit (
64  MOC_SYM(hwAccelDescr hwAccelCtx)
65  AES_CTR_Ctx* pCtx,
66  const ubyte* pKeyMaterial,
67  sbyte4 keyLength,
68  const ubyte pInitCounter[AES_BLOCK_SIZE]
69  );
70 
79 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DeleteAESCTRCtx (
80  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppCtx
81  );
82 
97 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAESCTR (
98  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
99  ubyte* pData,
100  sbyte4 dataLength,
101  sbyte4 encrypt,
102  ubyte* pIv
103  );
104 
123 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAESCTREx (
124  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
125  ubyte* pData,
126  sbyte4 dataLength,
127  sbyte4 encrypt,
128  ubyte* pIv,
129  sbyte4 limit
130  );
131 
141 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GetCounterBlockAESCTR (
142  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
143  ubyte pCounterBuffer[AES_BLOCK_SIZE]
144  );
145 
163 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAesCtrCtx(
164  MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial,
165  sbyte4 keyLength,
166  sbyte4 encrypt
167  );
168 
181 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAesCtrEx(
182  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
183  ubyte *pData,
184  sbyte4 dataLength,
185  sbyte4 encrypt,
186  ubyte *pIv
187  );
188 
199 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_CloneAESCTRCtx (
200  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
201  BulkCtx *ppNewCtx
202  );
203 
204 
220 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_UpdateAesCtrEx (
221  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
222  ubyte* pInput,
223  sbyte4 inputLen,
224  ubyte *pOutput,
225  sbyte4 *pBytesWritten
226  );
227 
241 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_FinalAesCtrEx (
242  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
243  ubyte *pOutput,
244  sbyte4 *pBytesWritten
245  );
246 
247 
248 
249 #ifdef __cplusplus
250 }
251 #endif
252 
253 #endif /* __CRYPTO_INTERFACE_AES_CTR_HEADER__ */
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DeleteAESCTRCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppCtx)
Delete an AES context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAESCTREx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, sbyte4 dataLength, sbyte4 encrypt, ubyte *pIv, sbyte4 limit)
Encrypt or decrypt data using the provided AES counter mode context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_GetCounterBlockAESCTR(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte pCounterBuffer[AES_BLOCK_SIZE])
Extract the working IV from the AES-CTR context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_CloneAESCTRCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, BulkCtx *ppNewCtx)
Clone a AES-CTR context.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAesCtrCtx(MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial, sbyte4 keyLength, sbyte4 encrypt)
Create a new AES-CTR context for ipSec specifications.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_UpdateAesCtrEx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pInput, sbyte4 inputLen, ubyte *pOutput, sbyte4 *pBytesWritten)
Perform the AES-CTR stream cipher operation on a buffer of data.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESCTRCtx(MOC_SYM(hwAccelDescr hwAccelCtx) const ubyte *pKeyMaterial, sbyte4 keyLength, sbyte4 encrypt)
Create a new AES-CTR context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_FinalAesCtrEx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pOutput, sbyte4 *pBytesWritten)
Finalizes the AES-CTR stream cipher operation on a buffer of data.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAESCTR(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, sbyte4 dataLength, sbyte4 encrypt, ubyte *pIv)
This function is effectively a wrapper to CRYPTO_INTERFACE_DoAESCTREx.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESCTRInit(MOC_SYM(hwAccelDescr hwAccelCtx) AES_CTR_Ctx *pCtx, const ubyte *pKeyMaterial, sbyte4 keyLength, const ubyte pInitCounter[AES_BLOCK_SIZE])
Populates an already created AES-CTR context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAesCtrEx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, sbyte4 dataLength, sbyte4 encrypt, ubyte *pIv)
Encrypt or decrypt data for ipSec specifications using the provided AES context.