TrustCore SDK Crypto Interface API reference  version 2.0
crypto_interface_tdes.h
Go to the documentation of this file.
1 /*
2  * crypto_interface_tdes.h
3  *
4  * Cryptographic Interface header file for declaring TDES 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_TDES_HEADER__
19 #define __CRYPTO_INTERFACE_TDES_HEADER__
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 #define THREE_DES_TWO_KEY_LENGTH 16
26 
41 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_Create3DESCtx (
42  MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial,
43  sbyte4 keyLen,
44  sbyte4 encrypt
45  );
46 
62 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_Create2Key3DESCtx(
63  MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial,
64  sbyte4 keyLength,
65  sbyte4 encrypt
66  );
67 
94 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_Do3DES (
95  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
96  ubyte *pData,
97  sbyte4 dataLen,
98  sbyte4 encrypt,
99  ubyte *pIv
100  );
101 
128 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_Do3DESEx (
129  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
130  ubyte *pData,
131  sbyte4 dataLen,
132  sbyte4 encrypt,
133  ubyte *pIv
134  );
135 
144 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_Delete3DESCtx (
145  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pCtx
146  );
147 
158 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_Clone3DESCtx (
159  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
160  BulkCtx *ppNewCtx
161  );
162 
177 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_THREE_DES_createCtx (
178  ubyte *pKeyMaterial,
179  sbyte4 keyLen,
180  sbyte4 encrypt
181  );
182 
183 
198 MOC_EXTERN BulkCtx CRYPTO_INTERFACE_THREE_DES_create2KeyCtx(
199  ubyte *pKeyMaterial,
200  sbyte4 keyLen,
201  sbyte4 encrypt
202  );
203 
217 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_THREE_DES_initKey (
218  ctx3des *pCtx,
219  const ubyte *pKey,
220  sbyte4 keyLen
221  );
222 
235 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_THREE_DES_encipher (
236  ctx3des *pCtx,
237  ubyte *pSrc,
238  ubyte *pDest,
239  ubyte4 numBytes
240  );
241 
254 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_THREE_DES_decipher (
255  ctx3des *pCtx,
256  ubyte *pSrc,
257  ubyte *pDest,
258  ubyte4 numBytes
259  );
260 
274 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_THREE_DES_clearKey (
275  ctx3des *pCtx
276  );
277 
287 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_THREE_DES_deleteCtx (
288  BulkCtx *pCtx
289  );
290 
301 MOC_EXTERN MSTATUS CRYPTO_INTERFACE_THREE_DES_cloneCtx (
302  MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx,
303  BulkCtx *ppNewCtx
304  );
305 
306 
307 #ifdef __cplusplus
308 }
309 #endif
310 
311 #endif /* __CRYPTO_INTERFACE_TDES_HEADER__ */
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_THREE_DES_clearKey(ctx3des *pCtx)
Delete a TDES-ECB context previously initialized with CRYPTO_INTERFACE_THREE_DES_initKey.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_Create3DESCtx(MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial, sbyte4 keyLen, sbyte4 encrypt)
Create a new Triple DES (TDES) context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_THREE_DES_encipher(ctx3des *pCtx, ubyte *pSrc, ubyte *pDest, ubyte4 numBytes)
Perform a raw TDES-ECB encrypt.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_THREE_DES_create2KeyCtx(ubyte *pKeyMaterial, sbyte4 keyLen, sbyte4 encrypt)
Create a new Triple DES (TDES) 2-key context for ECB mode.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_THREE_DES_createCtx(ubyte *pKeyMaterial, sbyte4 keyLen, sbyte4 encrypt)
Create a new Triple DES (TDES) context for ECB mode.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_Clone3DESCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, BulkCtx *ppNewCtx)
Copy a TDES context previously created with CRYPTO_INTERFACE_Create3DESCtx.
MOC_EXTERN BulkCtx CRYPTO_INTERFACE_Create2Key3DESCtx(MOC_SYM(hwAccelDescr hwAccelCtx) ubyte *pKeyMaterial, sbyte4 keyLength, sbyte4 encrypt)
Create a new Triple DES (TDES) context with two keys.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_Do3DESEx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, sbyte4 dataLen, sbyte4 encrypt, ubyte *pIv)
Encrypt or decrypt data using the provided TDES context.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_THREE_DES_deleteCtx(BulkCtx *pCtx)
Delete a TDES context previously created with CRYPTO_INTERFACE_THREE_DES_createCtx.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_THREE_DES_decipher(ctx3des *pCtx, ubyte *pSrc, ubyte *pDest, ubyte4 numBytes)
Perform a raw TDES-ECB decrypt.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_Delete3DESCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *pCtx)
Delete a TDES context previously created with CRYPTO_INTERFACE_Create3DESCtx.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_THREE_DES_initKey(ctx3des *pCtx, const ubyte *pKey, sbyte4 keyLen)
Initialize a raw TDES-ECB object for operation.
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_THREE_DES_cloneCtx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, BulkCtx *ppNewCtx)
Copy a TDES context previously created with CRYPTO_INTERFACE_THREE_DES_createCtx. ...
MOC_EXTERN MSTATUS CRYPTO_INTERFACE_Do3DES(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx pCtx, ubyte *pData, sbyte4 dataLen, sbyte4 encrypt, ubyte *pIv)
Encrypt or decrypt data using the provided TDES context.