]> git.cryptolib.org Git - avr-crypto-lib.git/blob - serpent.h
41e3d43cf222091a9422ca5c9242d1e8a84bae22
[avr-crypto-lib.git] / serpent.h
1 /* serpent.h
2  * a bitsliced implementation of the serpent cipher for avr microcontrollers
3  * author: Daniel Otte
4  * license: GPLv3
5  */
6
7 #ifndef SERPENT_H_
8 #define SERPENT_H_
9
10 #include <stdint.h>
11
12 typedef uint32_t serpent_subkey_t[4];
13
14 typedef struct serpent_ctx_st {
15         serpent_subkey_t k[33];
16 }  serpent_ctx_t;
17
18 #define SERPENT_KEY128 128
19 #define SERPENT_KEY192 192
20 #define SERPENT_KEY256   0
21
22
23 /* key must be 256bit (32 byte) large! */
24 void serpent_genctx(void * key, uint8_t keysize, serpent_ctx_t * ctx);
25 void serpent_enc(void * buffer, serpent_ctx_t * ctx);
26 void serpent_dec(void * buffer, serpent_ctx_t * ctx);
27
28
29 #endif /*SERPENT_H_*/