diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-02-05 11:55:04 +0100 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-02-05 11:55:04 +0100 |
commit | f86d2dbedc7841ad25f5dda825877f087dca4986 (patch) | |
tree | c4ea2f6cfe707a1631deb441c6d7eab485fd4c44 /test/monniaux/idea/idea.h | |
parent | 2ec7281215255202221d0d619f786a2dfde90442 (diff) | |
download | compcert-kvx-f86d2dbedc7841ad25f5dda825877f087dca4986.tar.gz compcert-kvx-f86d2dbedc7841ad25f5dda825877f087dca4986.zip |
IDEA encryption
Diffstat (limited to 'test/monniaux/idea/idea.h')
-rw-r--r-- | test/monniaux/idea/idea.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/monniaux/idea/idea.h b/test/monniaux/idea/idea.h new file mode 100644 index 00000000..41521b9a --- /dev/null +++ b/test/monniaux/idea/idea.h @@ -0,0 +1,30 @@ +#ifndef _IDEA_DEFINED + +#define _IDEA_DEFINED + +/* Defines for the PGP-style types used in IDEA.C */ + +#include <stdint.h> +#define byte uint8_t +#define word16 uint16_t +#define word32 uint32_t + +/* Macros from PGP */ + +#define burn(x) memset( x, 0, sizeof( x ) ) + +/* IDEA algorithm constants */ + +#define IDEAKEYSIZE 16 +#define IDEABLOCKSIZE 8 + +#define IDEAROUNDS 8 +#define IDEAKEYLEN ( 6 * IDEAROUNDS + 4 ) + +/* Routines used to implement the IDEA encryption */ + +void ideaExpandKey( byte const *userkey, word16 *EK ); +void ideaInvertKey( word16 const *EK, word16 DK[IDEAKEYLEN] ); +void ideaCipher( byte const (inbuf[8]), byte (outbuf[8]), word16 const *key ); + +#endif /* _IDEA_DEFINED */ |