Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Wim Lewis
nettle
Commits
8136e192
Commit
8136e192
authored
May 16, 2013
by
Niels Möller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
arm: Moved AES round macros from aes.m4 to the files using them.
parent
8b1d9263
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
127 additions
and
123 deletions
+127
-123
ChangeLog
ChangeLog
+3
-0
arm/aes.m4
arm/aes.m4
+0
-123
arm/v6/aes-decrypt-internal.asm
arm/v6/aes-decrypt-internal.asm
+61
-0
arm/v6/aes-encrypt-internal.asm
arm/v6/aes-encrypt-internal.asm
+63
-0
No files found.
ChangeLog
View file @
8136e192
2013-05-16 Niels Möller <nisse@lysator.liu.se>
* arm/aes.m4 (AES_ENCRYPT_ROUND, AES_DECRYPT): Moved macros to the
files using them.
* arm/v6/aes-encrypt-internal.asm: Use ALIGN macro. Use 16-byte
alignment for loops.
* arm/v6/aes-decrypt-internal.asm: Likewise. Also added a nop
...
...
arm/aes.m4
View file @
8136e192
...
...
@@ -23,129 +23,6 @@ define(<AES_STORE>, <
strb $2, [$1], #+1
>)
C 53 instr.
C It's tempting to use eor with rotation, but that's slower.
C AES_ENCRYPT_ROUND(x0,x1,x2,x3,w0,w1,w2,w3,key)
define(<AES_ENCRYPT_ROUND>, <
uxtb T0, $1
ldr $5, [TABLE, T0, lsl #2]
uxtb T0, $2
ldr $6, [TABLE, T0, lsl #2]
uxtb T0, $3
ldr $7, [TABLE, T0, lsl #2]
uxtb T0, $4
ldr $8, [TABLE, T0, lsl #2]
uxtb T0, $2, ror #8
add TABLE, TABLE, #1024
ldr T0, [TABLE, T0, lsl #2]
eor $5, $5, T0
uxtb T0, $3, ror #8
ldr T0, [TABLE, T0, lsl #2]
eor $6, $6, T0
uxtb T0, $4, ror #8
ldr T0, [TABLE, T0, lsl #2]
eor $7, $7, T0
uxtb T0, $1, ror #8
ldr T0, [TABLE, T0, lsl #2]
eor $8, $8, T0
uxtb T0, $3, ror #16
add TABLE, TABLE, #1024
ldr T0, [TABLE, T0, lsl #2]
eor $5, $5, T0
uxtb T0, $4, ror #16
ldr T0, [TABLE, T0, lsl #2]
eor $6, $6, T0
uxtb T0, $1, ror #16
ldr T0, [TABLE, T0, lsl #2]
eor $7, $7, T0
uxtb T0, $2, ror #16
ldr T0, [TABLE, T0, lsl #2]
eor $8, $8, T0
uxtb T0, $4, ror #24
add TABLE, TABLE, #1024
ldr T0, [TABLE, T0, lsl #2]
eor $5, $5, T0
uxtb T0, $1, ror #24
ldr T0, [TABLE, T0, lsl #2]
eor $6, $6, T0
uxtb T0, $2, ror #24
ldr T0, [TABLE, T0, lsl #2]
eor $7, $7, T0
uxtb T0, $3, ror #24
ldr T0, [TABLE, T0, lsl #2]
ldm $9!, {$1,$2,$3,$4}
eor $8, $8, T0
sub TABLE, TABLE, #3072
eor $5, $5, $1
eor $6, $6, $2
eor $7, $7, $3
eor $8, $8, $4
>)
define(<AES_DECRYPT_ROUND>, <
uxtb T0, $1
ldr $5, [TABLE, T0, lsl #2]
uxtb T0, $2
ldr $6, [TABLE, T0, lsl #2]
uxtb T0, $3
ldr $7, [TABLE, T0, lsl #2]
uxtb T0, $4
ldr $8, [TABLE, T0, lsl #2]
uxtb T0, $4, ror #8
add TABLE, TABLE, #1024
ldr T0, [TABLE, T0, lsl #2]
eor $5, $5, T0
uxtb T0, $1, ror #8
ldr T0, [TABLE, T0, lsl #2]
eor $6, $6, T0
uxtb T0, $2, ror #8
ldr T0, [TABLE, T0, lsl #2]
eor $7, $7, T0
uxtb T0, $3, ror #8
ldr T0, [TABLE, T0, lsl #2]
eor $8, $8, T0
uxtb T0, $3, ror #16
add TABLE, TABLE, #1024
ldr T0, [TABLE, T0, lsl #2]
eor $5, $5, T0
uxtb T0, $4, ror #16
ldr T0, [TABLE, T0, lsl #2]
eor $6, $6, T0
uxtb T0, $1, ror #16
ldr T0, [TABLE, T0, lsl #2]
eor $7, $7, T0
uxtb T0, $2, ror #16
ldr T0, [TABLE, T0, lsl #2]
eor $8, $8, T0
uxtb T0, $2, ror #24
add TABLE, TABLE, #1024
ldr T0, [TABLE, T0, lsl #2]
eor $5, $5, T0
uxtb T0, $3, ror #24
ldr T0, [TABLE, T0, lsl #2]
eor $6, $6, T0
uxtb T0, $4, ror #24
ldr T0, [TABLE, T0, lsl #2]
eor $7, $7, T0
uxtb T0, $1, ror #24
ldr T0, [TABLE, T0, lsl #2]
ldm $9!, {$1,$2,$3,$4}
eor $8, $8, T0
sub TABLE, TABLE, #3072
eor $5, $5, $1
eor $6, $6, $2
eor $7, $7, $3
eor $8, $8, $4
>)
C AES_FINAL_ROUND(a,b,c,d,key,res)
define(<AES_FINAL_ROUND>, <
uxtb T0, $1
...
...
arm/v6/aes-decrypt-internal.asm
View file @
8136e192
...
...
@@ -43,6 +43,67 @@ define(<X2>, <r12>)
define
(
<
X3
>
,
<
r14
>
)
C
lr
C
AES_DECRYPT_ROUND
(
x0
,
x1
,
x2
,
x3
,
w0
,
w1
,
w2
,
w3
,
key
)
define
(
<
AES_DECRYPT_ROUND
>
,
<
uxtb
T0
,
$
1
ldr
$
5
,
[
TABLE
,
T0
,
lsl
#
2
]
uxtb
T0
,
$
2
ldr
$
6
,
[
TABLE
,
T0
,
lsl
#
2
]
uxtb
T0
,
$
3
ldr
$
7
,
[
TABLE
,
T0
,
lsl
#
2
]
uxtb
T0
,
$
4
ldr
$
8
,
[
TABLE
,
T0
,
lsl
#
2
]
uxtb
T0
,
$
4
,
ror
#
8
add
TABLE
,
TABLE
,
#
1024
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
5
,
$
5
,
T0
uxtb
T0
,
$
1
,
ror
#
8
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
6
,
$
6
,
T0
uxtb
T0
,
$
2
,
ror
#
8
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
7
,
$
7
,
T0
uxtb
T0
,
$
3
,
ror
#
8
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
8
,
$
8
,
T0
uxtb
T0
,
$
3
,
ror
#
16
add
TABLE
,
TABLE
,
#
1024
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
5
,
$
5
,
T0
uxtb
T0
,
$
4
,
ror
#
16
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
6
,
$
6
,
T0
uxtb
T0
,
$
1
,
ror
#
16
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
7
,
$
7
,
T0
uxtb
T0
,
$
2
,
ror
#
16
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
8
,
$
8
,
T0
uxtb
T0
,
$
2
,
ror
#
24
add
TABLE
,
TABLE
,
#
1024
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
5
,
$
5
,
T0
uxtb
T0
,
$
3
,
ror
#
24
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
6
,
$
6
,
T0
uxtb
T0
,
$
4
,
ror
#
24
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
7
,
$
7
,
T0
uxtb
T0
,
$
1
,
ror
#
24
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
ldm
$
9
!
,
{
$
1
,
$
2
,
$
3
,
$
4
}
eor
$
8
,
$
8
,
T0
sub
TABLE
,
TABLE
,
#
3072
eor
$
5
,
$
5
,
$
1
eor
$
6
,
$
6
,
$
2
eor
$
7
,
$
7
,
$
3
eor
$
8
,
$
8
,
$
4
>)
.file
"
aes
-
decrypt
-
internal.asm
"
C
_aes_decrypt
(
struct
aes_context
*
ctx
,
...
...
arm/v6/aes-encrypt-internal.asm
View file @
8136e192
...
...
@@ -45,6 +45,69 @@ define(<X2>, <r12>)
define
(
<
X3
>
,
<
r14
>
)
C
lr
C
53
instr.
C
It
'
s
tempting
to
use
eor
with
rotation
,
but
that
'
s
slower.
C
AES_ENCRYPT_ROUND
(
x0
,
x1
,
x2
,
x3
,
w0
,
w1
,
w2
,
w3
,
key
)
define
(
<
AES_ENCRYPT_ROUND
>
,
<
uxtb
T0
,
$
1
ldr
$
5
,
[
TABLE
,
T0
,
lsl
#
2
]
uxtb
T0
,
$
2
ldr
$
6
,
[
TABLE
,
T0
,
lsl
#
2
]
uxtb
T0
,
$
3
ldr
$
7
,
[
TABLE
,
T0
,
lsl
#
2
]
uxtb
T0
,
$
4
ldr
$
8
,
[
TABLE
,
T0
,
lsl
#
2
]
uxtb
T0
,
$
2
,
ror
#
8
add
TABLE
,
TABLE
,
#
1024
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
5
,
$
5
,
T0
uxtb
T0
,
$
3
,
ror
#
8
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
6
,
$
6
,
T0
uxtb
T0
,
$
4
,
ror
#
8
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
7
,
$
7
,
T0
uxtb
T0
,
$
1
,
ror
#
8
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
8
,
$
8
,
T0
uxtb
T0
,
$
3
,
ror
#
16
add
TABLE
,
TABLE
,
#
1024
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
5
,
$
5
,
T0
uxtb
T0
,
$
4
,
ror
#
16
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
6
,
$
6
,
T0
uxtb
T0
,
$
1
,
ror
#
16
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
7
,
$
7
,
T0
uxtb
T0
,
$
2
,
ror
#
16
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
8
,
$
8
,
T0
uxtb
T0
,
$
4
,
ror
#
24
add
TABLE
,
TABLE
,
#
1024
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
5
,
$
5
,
T0
uxtb
T0
,
$
1
,
ror
#
24
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
6
,
$
6
,
T0
uxtb
T0
,
$
2
,
ror
#
24
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
eor
$
7
,
$
7
,
T0
uxtb
T0
,
$
3
,
ror
#
24
ldr
T0
,
[
TABLE
,
T0
,
lsl
#
2
]
ldm
$
9
!
,
{
$
1
,
$
2
,
$
3
,
$
4
}
eor
$
8
,
$
8
,
T0
sub
TABLE
,
TABLE
,
#
3072
eor
$
5
,
$
5
,
$
1
eor
$
6
,
$
6
,
$
2
eor
$
7
,
$
7
,
$
3
eor
$
8
,
$
8
,
$
4
>)
.file
"
aes
-
encrypt
-
internal.asm
"
C
_aes_encrypt
(
struct
aes_context
*
ctx
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment