summaryrefslogtreecommitdiff
path: root/x86_64
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2021-09-14 14:40:35 +0200
committerNiels Möller <nisse@lysator.liu.se>2021-09-14 14:40:35 +0200
commit55584f4e7ce91f3e1c3b68f900a88d2ad680ae8d (patch)
treed63d2052df3d9adad9923d3378a293facce99c1d /x86_64
parent7a966ac3869b7b8d94fb92740415ad71bbbdeee7 (diff)
downloadnettle-55584f4e7ce91f3e1c3b68f900a88d2ad680ae8d.tar.gz
Change CBC-AES interface
* cbc.h (cbc_aes128_encrypt, cbc_aes192_encrypt) (cbc_aes256_encrypt): Change interface, take cipher context pointer and iv as separate arguments. Update C and x86_64 implementations and corresponding glue code.
Diffstat (limited to 'x86_64')
-rw-r--r--x86_64/aesni/cbc-aes128-encrypt.asm16
-rw-r--r--x86_64/aesni/cbc-aes192-encrypt.asm16
-rw-r--r--x86_64/aesni/cbc-aes256-encrypt.asm16
3 files changed, 24 insertions, 24 deletions
diff --git a/x86_64/aesni/cbc-aes128-encrypt.asm b/x86_64/aesni/cbc-aes128-encrypt.asm
index 7375dadd..c780b35e 100644
--- a/x86_64/aesni/cbc-aes128-encrypt.asm
+++ b/x86_64/aesni/cbc-aes128-encrypt.asm
@@ -32,9 +32,10 @@ ifelse(`
C Input argument
define(`CTX', `%rdi')
-define(`LENGTH',`%rsi')
-define(`DST', `%rdx')
-define(`SRC', `%rcx')
+define(`IV', `%rsi')
+define(`LENGTH',`%rdx')
+define(`DST', `%rcx')
+define(`SRC', `%r8')
define(`KEY0', `%xmm0')
define(`KEY1', `%xmm1')
@@ -59,7 +60,7 @@ define(`BLOCK', `%xmm12')
.text
ALIGN(16)
PROLOGUE(nettle_cbc_aes128_encrypt)
- W64_ENTRY(4, 13)
+ W64_ENTRY(5, 13)
shr $4, LENGTH
test LENGTH, LENGTH
jz .Lend
@@ -75,7 +76,7 @@ PROLOGUE(nettle_cbc_aes128_encrypt)
movups 128(CTX), KEY8
movups 144(CTX), KEY9
movups 160(CTX), KEY10
- movups 176(CTX), X C Load IV
+ movups (IV), X
.Lblock_loop:
movups (SRC), BLOCK C Cleartext block
@@ -99,10 +100,9 @@ PROLOGUE(nettle_cbc_aes128_encrypt)
dec LENGTH
jnz .Lblock_loop
- C Save IV
- movups X, 176(CTX)
+ movups X, (IV)
.Lend:
- W64_EXIT(4, 13)
+ W64_EXIT(5, 13)
ret
EPILOGUE(nettle_cbc_aes128_encrypt)
diff --git a/x86_64/aesni/cbc-aes192-encrypt.asm b/x86_64/aesni/cbc-aes192-encrypt.asm
index 2438d91f..13825162 100644
--- a/x86_64/aesni/cbc-aes192-encrypt.asm
+++ b/x86_64/aesni/cbc-aes192-encrypt.asm
@@ -32,9 +32,10 @@ ifelse(`
C Input argument
define(`CTX', `%rdi')
-define(`LENGTH',`%rsi')
-define(`DST', `%rdx')
-define(`SRC', `%rcx')
+define(`IV', `%rsi')
+define(`LENGTH',`%rdx')
+define(`DST', `%rcx')
+define(`SRC', `%r8')
define(`KEY0', `%xmm0')
define(`KEY1', `%xmm1')
@@ -61,7 +62,7 @@ define(`BLOCK', `%xmm14')
.text
ALIGN(16)
PROLOGUE(nettle_cbc_aes192_encrypt)
- W64_ENTRY(4, 15)
+ W64_ENTRY(5, 15)
shr $4, LENGTH
test LENGTH, LENGTH
jz .Lend
@@ -79,7 +80,7 @@ PROLOGUE(nettle_cbc_aes192_encrypt)
movups 160(CTX), KEY10
movups 176(CTX), KEY11
movups 192(CTX), KEY12
- movups 208(CTX), X C Load IV
+ movups (IV), X
.Lblock_loop:
movups (SRC), BLOCK C Cleartext block
@@ -105,10 +106,9 @@ PROLOGUE(nettle_cbc_aes192_encrypt)
dec LENGTH
jnz .Lblock_loop
- C Save IV
- movups X, 208(CTX)
+ movups X, (IV)
.Lend:
- W64_EXIT(4, 15)
+ W64_EXIT(5, 15)
ret
EPILOGUE(nettle_cbc_aes192_encrypt)
diff --git a/x86_64/aesni/cbc-aes256-encrypt.asm b/x86_64/aesni/cbc-aes256-encrypt.asm
index 6b289c70..17428f19 100644
--- a/x86_64/aesni/cbc-aes256-encrypt.asm
+++ b/x86_64/aesni/cbc-aes256-encrypt.asm
@@ -32,9 +32,10 @@ ifelse(`
C Input argument
define(`CTX', `%rdi')
-define(`LENGTH',`%rsi')
-define(`DST', `%rdx')
-define(`SRC', `%rcx')
+define(`IV', `%rsi')
+define(`LENGTH',`%rdx')
+define(`DST', `%rcx')
+define(`SRC', `%r8')
define(`KEY0_7', `%xmm0')
define(`KEY1', `%xmm1')
@@ -63,7 +64,7 @@ define(`BLOCK', `%xmm15')
.text
ALIGN(16)
PROLOGUE(nettle_cbc_aes256_encrypt)
- W64_ENTRY(4, 16)
+ W64_ENTRY(5, 16)
shr $4, LENGTH
test LENGTH, LENGTH
jz .Lend
@@ -82,7 +83,7 @@ PROLOGUE(nettle_cbc_aes256_encrypt)
movups 192(CTX), KEY12
movups 208(CTX), KEY13
movups 224(CTX), KEY14
- movups 240(CTX), X C Load IV
+ movups (IV), X
.Lblock_loop:
movups (SRC), BLOCK C Cleartext block
@@ -112,10 +113,9 @@ PROLOGUE(nettle_cbc_aes256_encrypt)
dec LENGTH
jnz .Lblock_loop
- C Save IV
- movups X, 240(CTX)
+ movups X, (IV)
.Lend:
- W64_EXIT(4, 16)
+ W64_EXIT(5, 16)
ret
EPILOGUE(nettle_cbc_aes256_encrypt)