TrustCore SDK Crypto Interface API reference  version 2.0
crypto_interface_aes.h
Go to the documentation of this file.
1 /*
2  * crypto_interface_aes.h
3  *
4  * Cryptographic Interface header file for declaring AES 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_HEADER__
20 #define __CRYPTO_INTERFACE_AES_HEADER__
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
41 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESCtx (
42  MOC_SYM(hwAccelDescr hwAccelCtx) ubyte* pKeyMaterial,
43  sbyte4 keyLength,
44  sbyte4 encrypt
45  );
46 
62 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESCFBCtx (
63  MOC_SYM(hwAccelDescr hwAccelCtx) ubyte* pKeyMaterial,
64  sbyte4 keyLength,
65  sbyte4 encrypt
66  );
67 
83 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESCFB1Ctx(
84  MOC_SYM(hwAccelDescr hwAccelCtx) ubyte* keyMaterial,
85  sbyte4 keyLength,
86  sbyte4 encrypt
87  );
88 
104 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESOFBCtx (
105  MOC_SYM(hwAccelDescr hwAccelCtx) ubyte* pKeyMaterial,
106  sbyte4 keyLength,
107  sbyte4 encrypt
108  );
109 
125 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESECBCtx (
126  MOC_SYM(hwAccelDescr hwAccelCtx) ubyte* pKeyMaterial,
127  sbyte4 keyLength,
128  sbyte4 encrypt
129  );
130 
144 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_ResetAESCtx (
145  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppCtx
146  );
147 
156 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DeleteAESCtx (
157  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppCtx
158  );
159 
170 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_CloneAESCtx (
171  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
172  BulkCtx *ppNewCtx
173  );
174 
197 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAES (
198  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
199  ubyte* pData,
200  sbyte4 dataLength,
201  sbyte4 encrypt,
202  ubyte* pIv
203  );
204 
205 
228 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAESEx (
229  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
230  ubyte *pData,
231  sbyte4 dataLength,
232  sbyte4 encrypt,
233  ubyte *pIv
234  );
235 
250 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAESECB (
251  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
252  ubyte* pData,
253  sbyte4 dataLength,
254  sbyte4 encrypt
255  );
256 
276 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_makeAesKey (
277  aesCipherContext *pCtx,
278  sbyte4 keyLen,
279  const ubyte *pKeyMaterial,
280  sbyte4 encrypt,
281  sbyte4 mode
282  );
283 
303 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_makeAesKeyEx (
304  MOC_SYM(hwAccelDescr hwAccelCtx)
305  aesCipherContext *pCtx,
306  sbyte4 keyLen,
307  const ubyte *pKeyMaterial,
308  sbyte4 encrypt,
309  sbyte4 mode
310  );
311 
330 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_blockEncrypt (
331  aesCipherContext *pCtx,
332  ubyte *pIv,
333  ubyte *pInput,
334  sbyte4 inputLen,
335  ubyte *pOutBuffer,
336  sbyte4 *pRetLength
337  );
338 
357 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_blockEncryptEx (
358  MOC_SYM(hwAccelDescr hwAccelCtx)
359  aesCipherContext *pCtx,
360  ubyte *pIv,
361  ubyte *pInput,
362  sbyte4 inputLen,
363  ubyte *pOutBuffer,
364  sbyte4 *pRetLength
365  );
366 
385 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_blockDecrypt (
386  aesCipherContext *pCtx,
387  ubyte *pIv,
388  ubyte *pInput,
389  sbyte4 inputLen,
390  ubyte *pOutBuffer,
391  sbyte4 *pRetLength
392  );
393 
412 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_blockDecryptEx (
413  MOC_SYM(hwAccelDescr hwAccelCtx)
414  aesCipherContext *pCtx,
415  ubyte *pIv,
416  ubyte *pInput,
417  sbyte4 inputLen,
418  ubyte *pOutBuffer,
419  sbyte4 *pRetLength
420  );
421 
435 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_clearKey (
436  aesCipherContext *pCtx
437  );
438 
439 #ifdef __cplusplus
440 }
441 #endif
442 
443 #endif /* __CRYPTO_INTERFACE_AES_HEADER__ */
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESCFB1Ctx(MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *keyMaterial, sbyte4 keyLength, sbyte4 encrypt)
Create a new AES-CFB1 context.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESCFBCtx(MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial, sbyte4 keyLength, sbyte4 encrypt)
Create a new AES-CFB128 context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_clearKey(aesCipherContext *pCtx)
Delete an AES context previously initialized with CRYPTO_INTERFACE_AESALGO_makeAesKey.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_CloneAESCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, BulkCtx *ppNewCtx)
Clone a AES context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAESECB(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, sbyte4 dataLength, sbyte4 encrypt)
Same as CRYPTO_INTERFACE_DoAES but specifically for ECB mode.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAESEx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, sbyte4 dataLength, sbyte4 encrypt, ubyte *pIv)
Encrypt or decrypt data using the provided AES context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_blockDecrypt(aesCipherContext *pCtx, ubyte *pIv, ubyte *pInput, sbyte4 inputLen, ubyte *pOutBuffer, sbyte4 *pRetLength)
Decrypt some data using the provided AES context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_makeAesKeyEx(MOC_SYM(hwAccelDescr hwAccelCtx) aesCipherContext *pCtx, sbyte4 keyLen, const ubyte *pKeyMaterial, sbyte4 encrypt, sbyte4 mode)
Initialize a raw AES object for operation.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESOFBCtx(MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial, sbyte4 keyLength, sbyte4 encrypt)
Create a new AES-OFB context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_blockEncryptEx(MOC_SYM(hwAccelDescr hwAccelCtx) aesCipherContext *pCtx, ubyte *pIv, ubyte *pInput, sbyte4 inputLen, ubyte *pOutBuffer, sbyte4 *pRetLength)
Encrypt some data using the provided AES context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_ResetAESCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppCtx)
"Reset" an AES context by setting the "initialized" field within the aesCipherContext to 0...
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DeleteAESCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppCtx)
Delete an AES context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_blockDecryptEx(MOC_SYM(hwAccelDescr hwAccelCtx) aesCipherContext *pCtx, ubyte *pIv, ubyte *pInput, sbyte4 inputLen, ubyte *pOutBuffer, sbyte4 *pRetLength)
Decrypt some data using the provided AES context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_makeAesKey(aesCipherContext *pCtx, sbyte4 keyLen, const ubyte *pKeyMaterial, sbyte4 encrypt, sbyte4 mode)
Initialize a raw AES object for operation.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESCtx(MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial, sbyte4 keyLength, sbyte4 encrypt)
Create a new AES-CBC context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESALGO_blockEncrypt(aesCipherContext *pCtx, ubyte *pIv, ubyte *pInput, sbyte4 inputLen, ubyte *pOutBuffer, sbyte4 *pRetLength)
Encrypt some data using the provided AES context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAES(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, sbyte4 dataLength, sbyte4 encrypt, ubyte *pIv)
Encrypt or decrypt data using the provided AES context.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESECBCtx(MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial, sbyte4 keyLength, sbyte4 encrypt)
Create a new AES-ECB context.