Replace wbyte
with a macro
This commit is contained in:
parent
7ca06f642a
commit
87eb5cbff0
|
@ -11,6 +11,7 @@ http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define WORD(byte0, byte1, byte2, byte3) ((((((uint16_t)(byte3 << 8) | byte2) << 8) | byte1) << 8) | byte0)
|
#define WORD(byte0, byte1, byte2, byte3) ((((((uint16_t)(byte3 << 8) | byte2) << 8) | byte1) << 8) | byte0)
|
||||||
|
#define WBYTE(value, position) ((value >> (position * 8)) & 0xFF)
|
||||||
|
|
||||||
/* AES Constants */
|
/* AES Constants */
|
||||||
// AES polynomial
|
// AES polynomial
|
||||||
|
@ -49,13 +50,9 @@ void hexprint16(uint8_t *p) {
|
||||||
puts("");
|
puts("");
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t wbyte(uint32_t w, int pos) {
|
|
||||||
return (w >> (pos * 8)) & 0xff;
|
|
||||||
}
|
|
||||||
|
|
||||||
// **************** AES functions ****************
|
// **************** AES functions ****************
|
||||||
uint32_t subWord(uint32_t w) {
|
uint32_t subWord(uint32_t w) {
|
||||||
return WORD(SBOX[wbyte(w, 0)], SBOX[wbyte(w, 1)], SBOX[wbyte(w, 2)], SBOX[wbyte(w, 3)]);
|
return WORD(SBOX[WBYTE(w, 0)], SBOX[WBYTE(w, 1)], SBOX[WBYTE(w, 2)], SBOX[WBYTE(w, 3)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void subBytes(t_state s) {
|
void subBytes(t_state s) {
|
||||||
|
@ -175,10 +172,10 @@ void aes(uint8_t *in, uint8_t *out, uint8_t *skey)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 16; i++) {
|
for (int i = 0; i < 16; i++) {
|
||||||
if (i < 4) out[i] = wbyte(state[0], i % 4);
|
if (i < 4) out[i] = WBYTE(state[0], i % 4);
|
||||||
else if (i < 8) out[i] = wbyte(state[1], i % 4);
|
else if (i < 8) out[i] = WBYTE(state[1], i % 4);
|
||||||
else if (i < 12) out[i] = wbyte(state[2], i % 4);
|
else if (i < 12) out[i] = WBYTE(state[2], i % 4);
|
||||||
else out[i] = wbyte(state[3], i % 4);
|
else out[i] = WBYTE(state[3], i % 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue