Skip to content
Snippets Groups Projects
Commit 3a9e9046 authored by Niels Möller's avatar Niels Möller
Browse files

Update arm (32-bit) aes decrypt.

parent c54e0270
No related branches found
No related tags found
No related merge requests found
......@@ -111,11 +111,12 @@ define(`AES_DECRYPT_ROUND', `
and T0, MASK, $1, ror #22
ldr T0, [TABLE, T0]
ldm $9!, {$1,$2,$3,$4}
ldm $9, {$1,$2,$3,$4}
eor $8, $8, T0
sub TABLE, TABLE, #3072
eor $5, $5, $1
eor $6, $6, $2
sub $9, $9, #16
eor $7, $7, $3
eor $8, $8, $4
')
......@@ -142,7 +143,7 @@ PROLOGUE(_nettle_aes_decrypt)
AES_LOAD(X0,KEY,W0)
AES_LOAD(X0,KEY,W1)
AES_LOAD(X0,KEY,W2)
AES_LOAD(X0,KEY,W3)
AES_LOAD_INCR(X0,KEY,W3, -28)
str X0, FRAME_SRC
......
C Loads one word, and adds it to the subkey. Uses T0
C AES_LOAD(SRC, KEY, REG)
define(`AES_LOAD', `
C AES_LOAD(SRC, KEY, REG, INCR)
define(`AES_LOAD_INCR', `
ldrb $3, [$1], #+1
ldrb T0, [$1], #+1
orr $3, T0, lsl #8
......@@ -8,9 +8,13 @@ define(`AES_LOAD', `
orr $3, T0, lsl #16
ldrb T0, [$1], #+1
orr $3, T0, lsl #24
ldr T0, [$2], #+4
ldr T0, [$2], #$4
eor $3, T0
')
C Loads one word, and adds it to the subkey. Uses T0
C AES_LOAD(SRC, KEY, REG)
define(`AES_LOAD', `AES_LOAD_INCR($1, $2, $3, +4)')
C Stores one word. Destroys input.
C AES_STORE(DST, X)
define(`AES_STORE', `
......
......@@ -114,11 +114,12 @@ define(`AES_DECRYPT_ROUND', `
uxtb T0, $1, ror #24
ldr T0, [TABLE, T0, lsl #2]
ldm $9!, {$1,$2,$3,$4}
ldm $9, {$1,$2,$3,$4}
eor $8, $8, T0
sub TABLE, TABLE, #3072
eor $5, $5, $1
eor $6, $6, $2
sub $9, $9, #16
eor $7, $7, $3
eor $8, $8, $4
')
......@@ -148,7 +149,7 @@ PROLOGUE(_nettle_aes_decrypt)
AES_LOAD(SRC,KEY,W0)
AES_LOAD(SRC,KEY,W1)
AES_LOAD(SRC,KEY,W2)
AES_LOAD(SRC,KEY,W3)
AES_LOAD_INCR(SRC,KEY,W3, -28)
str SRC, FRAME_SRC
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment