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', ` ...@@ -111,11 +111,12 @@ define(`AES_DECRYPT_ROUND', `
and T0, MASK, $1, ror #22 and T0, MASK, $1, ror #22
ldr T0, [TABLE, T0] ldr T0, [TABLE, T0]
ldm $9!, {$1,$2,$3,$4} ldm $9, {$1,$2,$3,$4}
eor $8, $8, T0 eor $8, $8, T0
sub TABLE, TABLE, #3072 sub TABLE, TABLE, #3072
eor $5, $5, $1 eor $5, $5, $1
eor $6, $6, $2 eor $6, $6, $2
sub $9, $9, #16
eor $7, $7, $3 eor $7, $7, $3
eor $8, $8, $4 eor $8, $8, $4
') ')
...@@ -142,7 +143,7 @@ PROLOGUE(_nettle_aes_decrypt) ...@@ -142,7 +143,7 @@ PROLOGUE(_nettle_aes_decrypt)
AES_LOAD(X0,KEY,W0) AES_LOAD(X0,KEY,W0)
AES_LOAD(X0,KEY,W1) AES_LOAD(X0,KEY,W1)
AES_LOAD(X0,KEY,W2) AES_LOAD(X0,KEY,W2)
AES_LOAD(X0,KEY,W3) AES_LOAD_INCR(X0,KEY,W3, -28)
str X0, FRAME_SRC str X0, FRAME_SRC
......
C Loads one word, and adds it to the subkey. Uses T0 C Loads one word, and adds it to the subkey. Uses T0
C AES_LOAD(SRC, KEY, REG) C AES_LOAD(SRC, KEY, REG, INCR)
define(`AES_LOAD', ` define(`AES_LOAD_INCR', `
ldrb $3, [$1], #+1 ldrb $3, [$1], #+1
ldrb T0, [$1], #+1 ldrb T0, [$1], #+1
orr $3, T0, lsl #8 orr $3, T0, lsl #8
...@@ -8,9 +8,13 @@ define(`AES_LOAD', ` ...@@ -8,9 +8,13 @@ define(`AES_LOAD', `
orr $3, T0, lsl #16 orr $3, T0, lsl #16
ldrb T0, [$1], #+1 ldrb T0, [$1], #+1
orr $3, T0, lsl #24 orr $3, T0, lsl #24
ldr T0, [$2], #+4 ldr T0, [$2], #$4
eor $3, T0 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 Stores one word. Destroys input.
C AES_STORE(DST, X) C AES_STORE(DST, X)
define(`AES_STORE', ` define(`AES_STORE', `
......
...@@ -114,11 +114,12 @@ define(`AES_DECRYPT_ROUND', ` ...@@ -114,11 +114,12 @@ define(`AES_DECRYPT_ROUND', `
uxtb T0, $1, ror #24 uxtb T0, $1, ror #24
ldr T0, [TABLE, T0, lsl #2] ldr T0, [TABLE, T0, lsl #2]
ldm $9!, {$1,$2,$3,$4} ldm $9, {$1,$2,$3,$4}
eor $8, $8, T0 eor $8, $8, T0
sub TABLE, TABLE, #3072 sub TABLE, TABLE, #3072
eor $5, $5, $1 eor $5, $5, $1
eor $6, $6, $2 eor $6, $6, $2
sub $9, $9, #16
eor $7, $7, $3 eor $7, $7, $3
eor $8, $8, $4 eor $8, $8, $4
') ')
...@@ -148,7 +149,7 @@ PROLOGUE(_nettle_aes_decrypt) ...@@ -148,7 +149,7 @@ PROLOGUE(_nettle_aes_decrypt)
AES_LOAD(SRC,KEY,W0) AES_LOAD(SRC,KEY,W0)
AES_LOAD(SRC,KEY,W1) AES_LOAD(SRC,KEY,W1)
AES_LOAD(SRC,KEY,W2) AES_LOAD(SRC,KEY,W2)
AES_LOAD(SRC,KEY,W3) AES_LOAD_INCR(SRC,KEY,W3, -28)
str SRC, FRAME_SRC 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