avr-crypto-lib/serpent.h

30 lines
639 B
C
Raw Normal View History

2008-04-02 13:35:03 +00:00
/* serpent.h
* a bitsliced implementation of the serpent cipher for avr microcontrollers
* author: Daniel Otte
* license: GPLv3
*/
#ifndef SERPENT_H_
#define SERPENT_H_
#include <stdint.h>
typedef uint32_t serpent_subkey_t[4];
2008-04-02 13:35:03 +00:00
typedef struct serpent_ctx_st {
serpent_subkey_t k[33];
} serpent_ctx_t;
2008-04-03 01:02:01 +00:00
#define SERPENT_KEY128 128
#define SERPENT_KEY192 192
#define SERPENT_KEY256 0
2008-04-02 13:35:03 +00:00
/* key must be 256bit (32 byte) large! */
2008-04-03 01:02:01 +00:00
void serpent_genctx(void * key, uint8_t keysize, serpent_ctx_t * ctx);
2008-04-02 13:35:03 +00:00
void serpent_enc(void * buffer, serpent_ctx_t * ctx);
void serpent_dec(void * buffer, serpent_ctx_t * ctx);
#endif /*SERPENT_H_*/