xref: /btstack/3rd-party/rijndael/rijndael.h (revision f13fc290073baa163f06f3cc4c97b90a73935e8a)
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