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