X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Faes%2Fao_aes.c;h=0bc8188e3d2ae68c7eca2b78a214b473ce34b712;hb=2de8922b505f0358a36933721fbddf6a9ef7e9a4;hp=4977aaf81158408aff72e02ad5641a22de919f83;hpb=4d4ad34aec0c75c66162b992f1e52947e4685730;p=fw%2Faltos diff --git a/src/aes/ao_aes.c b/src/aes/ao_aes.c index 4977aaf8..0bc8188e 100644 --- a/src/aes/ao_aes.c +++ b/src/aes/ao_aes.c @@ -11,7 +11,9 @@ * Vincent Rijmen */ +#ifndef AO_AES_TEST #include +#endif #include #include "ao_aes_int.h" @@ -193,6 +195,7 @@ static inline void xAddInvMix(word32 res[MAXBC], word32 a[MAXBC], #endif /* code included for reference */ +static int xrijndaelKeySched(word32 key[], int keyBits, int blockBits, roundkey *rkk) { @@ -280,6 +283,7 @@ int xrijndaelKeySched(word32 key[], int keyBits, int blockBits, /* Encryption of one block. */ +static void xrijndaelEncrypt(word32 block[], roundkey *rkk) { word32 block2[MAXBC]; /* hold intermediate result */ @@ -306,6 +310,11 @@ void xrijndaelEncrypt(word32 block[], roundkey *rkk) xKeyAddition(block, block2, rp, BC); } +#if NOTUSED +/* We don't actually need this in AltOS, so don't bother including it */ + +/* Decryption of one block. */ +static void xrijndaelDecrypt(word32 block[], roundkey *rkk) { word32 block2[MAXBC]; /* hold intermediate result */ @@ -347,22 +356,26 @@ void xrijndaelDecrypt(word32 block[], roundkey *rkk) xKeyAddition(block, block, rp, BC); } +#endif uint8_t ao_aes_mutex; +static word32 key[16/4]; static roundkey rkk; -static uint8_t iv[16]; +static word32 iv[16/4]; void ao_aes_set_mode(enum ao_aes_mode mode) { + (void) mode; /* we only do CBC_MAC anyways... */ } void -ao_aes_set_key(__xdata uint8_t *in) +ao_aes_set_key(uint8_t *in) { - xrijndaelKeySched((word32 *) in, 128, 128, &rkk); + memcpy(key, in, 16); + xrijndaelKeySched((word32 *) key, 128, 128, &rkk); } void @@ -372,14 +385,15 @@ ao_aes_zero_iv(void) } void -ao_aes_run(__xdata uint8_t *in, - __xdata uint8_t *out) +ao_aes_run(uint8_t *in, + uint8_t *out) { uint8_t i; + uint8_t *_iv = (uint8_t *) iv; for (i = 0; i < 16; i++) - iv[i] ^= in[i]; - xrijndaelEncrypt((word32 *) iv, &rkk); + _iv[i] ^= in[i]; + xrijndaelEncrypt(iv, &rkk); if (out) memcpy(out, iv, 16); }