186d7f5d3SJohn Marino /* $FreeBSD: src/sys/opencrypto/cast.h,v 1.2 2005/01/07 02:29:16 imp Exp $ */ 286d7f5d3SJohn Marino /* $OpenBSD: cast.h,v 1.2 2002/03/14 01:26:51 millert Exp $ */ 386d7f5d3SJohn Marino 486d7f5d3SJohn Marino /*- 586d7f5d3SJohn Marino * CAST-128 in C 686d7f5d3SJohn Marino * Written by Steve Reid <sreid@sea-to-sky.net> 786d7f5d3SJohn Marino * 100% Public Domain - no warranty 886d7f5d3SJohn Marino * Released 1997.10.11 986d7f5d3SJohn Marino */ 1086d7f5d3SJohn Marino 1186d7f5d3SJohn Marino #ifndef _CAST_H_ 1286d7f5d3SJohn Marino #define _CAST_H_ 1386d7f5d3SJohn Marino 1486d7f5d3SJohn Marino typedef struct { 1586d7f5d3SJohn Marino u_int32_t xkey[32]; /* Key, after expansion */ 1686d7f5d3SJohn Marino int rounds; /* Number of rounds to use, 12 or 16 */ 1786d7f5d3SJohn Marino } cast_key; 1886d7f5d3SJohn Marino 1986d7f5d3SJohn Marino void cast_setkey(cast_key * key, u_int8_t * rawkey, int keybytes); 2086d7f5d3SJohn Marino void cast_encrypt(cast_key * key, u_int8_t * inblock, u_int8_t * outblock); 2186d7f5d3SJohn Marino void cast_decrypt(cast_key * key, u_int8_t * inblock, u_int8_t * outblock); 2286d7f5d3SJohn Marino 2386d7f5d3SJohn Marino #endif /* ifndef _CAST_H_ */ 24