1*86d7f5d3SJohn Marino /* $FreeBSD: src/sys/opencrypto/cast.h,v 1.2 2005/01/07 02:29:16 imp Exp $ */ 2*86d7f5d3SJohn Marino /* $OpenBSD: cast.h,v 1.2 2002/03/14 01:26:51 millert Exp $ */ 3*86d7f5d3SJohn Marino 4*86d7f5d3SJohn Marino /*- 5*86d7f5d3SJohn Marino * CAST-128 in C 6*86d7f5d3SJohn Marino * Written by Steve Reid <sreid@sea-to-sky.net> 7*86d7f5d3SJohn Marino * 100% Public Domain - no warranty 8*86d7f5d3SJohn Marino * Released 1997.10.11 9*86d7f5d3SJohn Marino */ 10*86d7f5d3SJohn Marino 11*86d7f5d3SJohn Marino #ifndef _CAST_H_ 12*86d7f5d3SJohn Marino #define _CAST_H_ 13*86d7f5d3SJohn Marino 14*86d7f5d3SJohn Marino typedef struct { 15*86d7f5d3SJohn Marino u_int32_t xkey[32]; /* Key, after expansion */ 16*86d7f5d3SJohn Marino int rounds; /* Number of rounds to use, 12 or 16 */ 17*86d7f5d3SJohn Marino } cast_key; 18*86d7f5d3SJohn Marino 19*86d7f5d3SJohn Marino void cast_setkey(cast_key * key, u_int8_t * rawkey, int keybytes); 20*86d7f5d3SJohn Marino void cast_encrypt(cast_key * key, u_int8_t * inblock, u_int8_t * outblock); 21*86d7f5d3SJohn Marino void cast_decrypt(cast_key * key, u_int8_t * inblock, u_int8_t * outblock); 22*86d7f5d3SJohn Marino 23*86d7f5d3SJohn Marino #endif /* ifndef _CAST_H_ */ 24