TrustCore SDK NanoCrypto API reference  version 7.0
cast128.h
Go to the documentation of this file.
1 /*
2  * cast128.h
3  *
4  * CAST-128 Header
5  *
6  * Copyright 2019-2024 DigiCert, Inc. All Rights Reserved.
7  * Proprietary and Confidential Material.
8  *
9  */
10 
24 /*------------------------------------------------------------------*/
25 
26 #ifndef __CAST128_HEADER__
27 #define __CAST128_HEADER__
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 #define CAST128_BLOCK_SIZE (8)
34 
35 
36 /*------------------------------------------------------------------*/
37 
38 typedef struct {
39  ubyte4 xkey[32]; /* key */
40  sbyte4 rounds;
41 } cast128_ctx;
42 
43 #ifdef __ENABLE_CAST128_CIPHER__
44 
45 /*------------------------------------------------------------------*/
46 
64 MOC_EXTERN MSTATUS CAST128_initKey(cast128_ctx *pCtx, const ubyte *pKey, sbyte4 keyLen);
65 
83 MOC_EXTERN MSTATUS CAST128_encryptBlock(cast128_ctx *pCtx,
84  ubyte inblock[/*CAST128_BLOCK_SIZE*/],
85  ubyte outblock[/*CAST128_BLOCK_SIZE*/]);
86 
104 MOC_EXTERN MSTATUS CAST128_decryptBlock(cast128_ctx *pCtx,
105  ubyte inblock[/*CAST128_BLOCK_SIZE*/],
106  ubyte outblock[/*CAST128_BLOCK_SIZE*/]);
107 
125 MOC_EXTERN BulkCtx CreateCast128Ctx(MOC_SYM(hwAccelDescr hwAccelCtx) const ubyte* keyMaterial, sbyte4 keyLength, sbyte4 encrypt);
126 
142 MOC_EXTERN MSTATUS DeleteCast128Ctx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx* ctx);
143 
168 MOC_EXTERN MSTATUS DoCast128(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx ctx, ubyte* data, sbyte4 dataLength, sbyte4 encrypt, ubyte* iv);
169 #endif /* __ENABLE_CAST128_CIPHER__ */
170 
171 #ifdef __cplusplus
172 }
173 #endif
174 
175 #endif /* __CAST128_HEADER__ */
MOC_EXTERN MSTATUS CAST128_initKey(cast128_ctx *pCtx, const ubyte *pKey, sbyte4 keyLen)
Initializes a cast128 context with a key.
MOC_EXTERN MSTATUS DoCast128(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx ctx, ubyte *data, sbyte4 dataLength, sbyte4 encrypt, ubyte *iv)
Performs cast128 in CBC mode on a buffer of data.
MOC_EXTERN MSTATUS CAST128_encryptBlock(cast128_ctx *pCtx, ubyte inblock[], ubyte outblock[])
Encrypts a block of plaintext.
MOC_EXTERN MSTATUS DeleteCast128Ctx(MOC_SYM(hwAccelDescr hwAccelCtx) BulkCtx *ctx)
Deletes a cast128 context.
MOC_EXTERN BulkCtx CreateCast128Ctx(MOC_SYM(hwAccelDescr hwAccelCtx) const ubyte *keyMaterial, sbyte4 keyLength, sbyte4 encrypt)
Allocates and initalizes a new cast128 context.
MOC_EXTERN MSTATUS CAST128_decryptBlock(cast128_ctx *pCtx, ubyte inblock[], ubyte outblock[])
Decrypts a block of ciphertext.