aes.h
author Ryan C. Gordon <icculus@icculus.org>
Sun, 18 Jun 2017 19:40:30 -0400
changeset 56 a573346e6f7b
parent 0 d7ee4e2ed49d
permissions -rw-r--r--
Added One Time Password support.

This is only for time-based OTP for now ("TOPT" algorithm), but that's more
or less what one expects to see in the wild anyhow.

This is sort of a placeholder UI until I replace the entire existing UI with
something better.
#ifndef _INCL_AES_H_
#define _INCL_AES_H_

#include <stdint.h>

// AES-128 only supports Nb=4
#define aesNb 4			// number of columns in the state & expanded key
#define aesNk 4			// number of columns in a key
#define aesNr 10			// number of rounds in encryption

#define aesExpandedKeySize (4 * aesNb * (aesNr + 1))
void aesExpandKey(const uint8_t *key, uint8_t *expkey);

// these do one 128-bit block at a time.
void aesEncrypt (uint8_t *in, uint8_t *expkey, uint8_t *out);
void aesDecrypt (uint8_t *in, uint8_t *expkey, uint8_t *out);

#endif