TrustCore SDK Crypto Interface API reference  version 2.0
crypto_interface_aes_xts.h
Go to the documentation of this file.
1 /*
2  * crypto_interface_aes_xts.h
3  *
4  * Cryptographic Interface header file for declaring AES-XTS methods
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_XTS_HEADER__
20 #define __CRYPTO_INTERFACE_AES_XTS_HEADER__
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
42 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESXTSCtxExt(
43  MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial,
44  sbyte4 keyLength,
45  sbyte4 encrypt,
46  void *pExtCtx
47  );
48 
64 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESXTSCtx(
65  MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial,
66  sbyte4 keyLength,
67  sbyte4 encrypt
68  );
69 
79 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DeleteAESXTSCtxExt (
80  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppCtx,
81  void *pExtCtx
82  );
83 
92 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DeleteAESXTSCtx (
93  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppCtx
94  );
95 
113 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAESXTSExt (
114  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
115  ubyte *pData,
116  sbyte4 dataLen,
117  sbyte4 encrypt,
118  ubyte *pTweak,
119  void *pExtCtx
120  );
121 
138 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAESXTS (
139  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
140  ubyte *pData,
141  sbyte4 dataLen,
142  sbyte4 encrypt,
143  ubyte *pTweak
144  );
145 
159 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESXTSEncryptExt (
160  MOC_SYM(hwAccelDescr hwAccelCtx) aesXTSCipherContext *pCtx,
161  ubyte pTweak[AES_BLOCK_SIZE],
162  ubyte *pPlain,
163  ubyte4 plainLen,
164  void *pExtCtx
165  );
166 
179 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESXTSEncrypt (
180  MOC_SYM(hwAccelDescr hwAccelCtx) aesXTSCipherContext *pCtx,
181  ubyte pTweak[AES_BLOCK_SIZE],
182  ubyte *pPlain,
183  ubyte4 plainLen
184  );
185 
199 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESXTSDecryptExt (
200  MOC_SYM(hwAccelDescr hwAccelCtx) aesXTSCipherContext *pCtx,
201  ubyte pTweak[AES_BLOCK_SIZE],
202  ubyte *pCipher,
203  ubyte4 cipherLen,
204  void *pExtCtx
205  );
206 
219 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESXTSDecrypt (
220  MOC_SYM(hwAccelDescr hwAccelCtx) aesXTSCipherContext *pCtx,
221  ubyte pTweak[AES_BLOCK_SIZE],
222  ubyte *pCipher,
223  ubyte4 cipherLen
224  );
225 
236 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_CloneAESXTSCtx (
237  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
238  BulkCtx *ppNewCtx
239  );
240 
241 #ifdef __cplusplus
242 }
243 #endif
244 
245 #endif /* __CRYPTO_INTERFACE_AES_XTS_HEADER__ */
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DeleteAESXTSCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppCtx)
Deletes an AES-XTS context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DeleteAESXTSCtxExt(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ppCtx, void *pExtCtx)
Deletes an AES-XTS context.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESXTSCtxExt(MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial, sbyte4 keyLength, sbyte4 encrypt, void *pExtCtx)
Creates and initializes a new AES-XTS context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAESXTS(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, sbyte4 dataLen, sbyte4 encrypt, ubyte *pTweak)
Performs the AES-XTS cipher operation to do an inplace encryption or decryption.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_DoAESXTSExt(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, sbyte4 dataLen, sbyte4 encrypt, ubyte *pTweak, void *pExtCtx)
Performs the AES-XTS cipher operation to do an inplace encryption or decryption.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESXTSEncrypt(MOC_SYM(hwAccelDescr hwAccelCtx) aesXTSCipherContext *pCtx, ubyte pTweak[AES_BLOCK_SIZE], ubyte *pPlain, ubyte4 plainLen)
Performs the AES-XTS cipher operation to do an inplace encryption.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESXTSDecryptExt(MOC_SYM(hwAccelDescr hwAccelCtx) aesXTSCipherContext *pCtx, ubyte pTweak[AES_BLOCK_SIZE], ubyte *pCipher, ubyte4 cipherLen, void *pExtCtx)
Performs the AES-XTS cipher operation to do an inplace decryption.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_CloneAESXTSCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, BulkCtx *ppNewCtx)
Clones an AES-XTS context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESXTSEncryptExt(MOC_SYM(hwAccelDescr hwAccelCtx) aesXTSCipherContext *pCtx, ubyte pTweak[AES_BLOCK_SIZE], ubyte *pPlain, ubyte4 plainLen, void *pExtCtx)
Performs the AES-XTS cipher operation to do an inplace encryption.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_AESXTSDecrypt(MOC_SYM(hwAccelDescr hwAccelCtx) aesXTSCipherContext *pCtx, ubyte pTweak[AES_BLOCK_SIZE], ubyte *pCipher, ubyte4 cipherLen)
Performs the AES-XTS cipher operation to do an inplace decryption.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_CreateAESXTSCtx(MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial, sbyte4 keyLength, sbyte4 encrypt)
Creates and initializes a new AES-XTS context.