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