32 #ifndef __AES_XTS_HEADER__ 33 #define __AES_XTS_HEADER__ 35 #include "../cap/capdecl.h" 37 #ifdef __ENABLE_MOCANA_CRYPTO_INTERFACE__ 38 #include "../crypto_interface/crypto_interface_aes_xts_priv.h" 49 typedef struct aesXTSCipherContext
51 aesCipherContext *pKey1;
52 aesCipherContext *pKey2;
56 } aesXTSCipherContext, AES_XTS_Ctx;
75 MOC_EXTERN BulkCtx
CreateAESXTSCtx(MOC_SYM(hwAccelDescr hwAccelCtx)
const ubyte *pKeyMaterial, sbyte4 keyLength, sbyte4 encrypt);
76 MOC_EXTERN BulkCtx CreateAESXTSCtxExt(MOC_SYM(hwAccelDescr hwAccelCtx)
const ubyte *pKeyMaterial, sbyte4 keyLength, sbyte4 encrypt,
void *pExtCtx);
85 MOC_EXTERN MSTATUS
DeleteAESXTSCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pCtx);
86 MOC_EXTERN MSTATUS DeleteAESXTSCtxExt(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pCtx,
void *pExtCtx);
103 MOC_EXTERN MSTATUS
DoAESXTS(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, sbyte4 dataLen,
104 sbyte4 encrypt, ubyte *pTweak);
105 MOC_EXTERN MSTATUS DoAESXTSExt(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, sbyte4 dataLen,
106 sbyte4 encrypt, ubyte *pTweak,
void *pExtCtx);
121 MOC_EXTERN MSTATUS
AESXTSInit( MOC_SYM(hwAccelDescr hwAccelCtx)
122 aesXTSCipherContext *pCtx,
123 const ubyte *pKey1,
const ubyte *pKey2,
124 sbyte4 keyLength, sbyte4 encrypt);
126 MOC_EXTERN MSTATUS AESXTSInitExt( MOC_SYM(hwAccelDescr hwAccelCtx)
127 aesXTSCipherContext *pCtx,
128 const ubyte *pKey1,
const ubyte *pKey2,
129 sbyte4 keyLength, sbyte4 encrypt,
void *pExtCtx);
142 MOC_EXTERN MSTATUS
AESXTSEncrypt( MOC_SYM(hwAccelDescr hwAccelCtx)
143 aesXTSCipherContext *pCtx,
144 ubyte pTweak[AES_BLOCK_SIZE],
145 ubyte *pPlain, ubyte4 plainLen);
146 MOC_EXTERN MSTATUS AESXTSEncryptExt( MOC_SYM(hwAccelDescr hwAccelCtx)
147 aesXTSCipherContext *pCtx,
148 ubyte pTweak[AES_BLOCK_SIZE],
149 ubyte *pPlain, ubyte4 plainLen,
void *pExtCtx);
161 MOC_EXTERN MSTATUS
AESXTSDecrypt( MOC_SYM(hwAccelDescr hwAccelCtx)
162 aesXTSCipherContext *pCtx,
163 ubyte pTweak[AES_BLOCK_SIZE],
164 ubyte *pCipher, ubyte4 cipherLen);
166 MOC_EXTERN MSTATUS AESXTSDecryptExt( MOC_SYM(hwAccelDescr hwAccelCtx)
167 aesXTSCipherContext *pCtx,
168 ubyte pTweak[AES_BLOCK_SIZE],
169 ubyte *pCipher, ubyte4 cipherLen,
void *pExtCtx);
180 MOC_EXTERN MSTATUS
CloneAESXTSCtx( MOC_SYM(hwAccelDescr hwAccelCtx)
181 BulkCtx pCtx, BulkCtx *ppNewCtx);
MOC_EXTERN MSTATUS AESXTSDecrypt(MOC_SYM(hwAccelDescr hwAccelCtx) aesXTSCipherContext *pCtx, ubyte pTweak[AES_BLOCK_SIZE], ubyte *pCipher, ubyte4 cipherLen)
Decrypt some data using AES in XTS mode.
MOC_EXTERN BulkCtx CreateAESXTSCtx(MOC_SYM(hwAccelDescr hwAccelCtx) const ubyte *pKeyMaterial, sbyte4 keyLength, sbyte4 encrypt)
Create a new AES-XTS context.
MOC_EXTERN MSTATUS AESXTSEncrypt(MOC_SYM(hwAccelDescr hwAccelCtx) aesXTSCipherContext *pCtx, ubyte pTweak[AES_BLOCK_SIZE], ubyte *pPlain, ubyte4 plainLen)
Encrypt some data using AES in XTS mode.
MOC_EXTERN MSTATUS DoAESXTS(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, sbyte4 dataLen, sbyte4 encrypt, ubyte *pTweak)
Encrypt or decrypt data using AES in XTS mode.
MOC_EXTERN MSTATUS AESXTSInit(MOC_SYM(hwAccelDescr hwAccelCtx) aesXTSCipherContext *pCtx, const ubyte *pKey1, const ubyte *pKey2, sbyte4 keyLength, sbyte4 encrypt)
Initialize a previously allocated AES-XTS context.
MOC_EXTERN MSTATUS DeleteAESXTSCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pCtx)
Delete an existing AES-XTS context.
MOC_EXTERN MSTATUS CloneAESXTSCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, BulkCtx *ppNewCtx)
Clone an AES-XTS context.