#include #include #include #include #include "fns.h" static void increment(uchar ctr[AESbsize]) { (u8int)ctr[AESbsize - 1]++; } static void enc(uchar out[AESbsize], uchar in[AESbsize], AESstate *s) { uchar ⊕[AESbsize]; aes_encrypt(s->ekey, s->rounds, s->ivec, ⊕); xor(in, ⊕, out, AESbsize); increment(s->ivec); } static void dec(uchar out[AESbsize], uchar in[AESbsize], AESstate *s) { enc(out, in, s); } void (*cipher[])(uchar *, uchar *, AESstate *) = {enc, dec};