1 // =============================== RIJNDAEL.H =============================== 2 // from http://www.efgh.com/software/rijndael.htm, 3 // License: Public Domain, 4 // Author: Philip J. Erdelsky 5 6 #ifndef H__RIJNDAEL 7 #define H__RIJNDAEL 8 9 #include <stdint.h> 10 11 int rijndaelSetupEncrypt(uint32_t *rk, const uint8_t *key, int keybits); 12 int rijndaelSetupDecrypt(uint32_t *rk, const uint8_t *key, int keybits); 13 void rijndaelEncrypt(const uint32_t *rk, int nrounds, const uint8_t plaintext[16], uint8_t ciphertext[16]); 14 void rijndaelDecrypt(const uint32_t *rk, int nrounds, const uint8_t ciphertext[16], uint8_t plaintext[16]); 15 16 #define KEYBITS 128 17 18 #define KEYLENGTH(keybits) ((keybits)/8) 19 #define RKLENGTH(keybits) ((keybits)/8+28) 20 #define NROUNDS(keybits) ((keybits)/32+6) 21 22 #endif 23 24