diff options
author | Niels Möller <nisse@lysator.liu.se> | 2002-05-15 11:16:45 +0200 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2002-05-15 11:16:45 +0200 |
commit | 27e90cc8d5b030e213aa544b69e0840edf3b6c6b (patch) | |
tree | 4b0fe685b439a9861993049032152e15dd13ad42 /x86 | |
parent | 934c16289064b25600ecef391da7a5311268a6b7 (diff) | |
download | nettle-27e90cc8d5b030e213aa544b69e0840edf3b6c6b.tar.gz |
(aes_decrypt): Use the AES_LOAD macro.
Rev: src/nettle/x86/aes-decrypt.asm:1.3
Diffstat (limited to 'x86')
-rw-r--r-- | x86/aes-decrypt.asm | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/x86/aes-decrypt.asm b/x86/aes-decrypt.asm index 63dd703c..752975fd 100644 --- a/x86/aes-decrypt.asm +++ b/x86/aes-decrypt.asm @@ -22,11 +22,12 @@ C MA 02111-1307, USA. C aes_decrypt(struct aes_context *ctx, C unsigned length, uint8_t *dst, C uint8_t *src) + .text .align 16 -.globl aes_decrypt + .globl aes_decrypt .type aes_decrypt,@function aes_decrypt: - C // save all registers that need to be saved + C save all registers that need to be saved pushl %ebx C 16(%esp) pushl %ebp C 12(%esp) pushl %esi C 8(%esp) @@ -38,24 +39,28 @@ aes_decrypt: C src = 32(%esp) movl 24(%esp), %ebp - C What's the right way to set the flags? - addl $0, %ebp + testl %ebp,%ebp jz .Ldecrypt_end .Ldecrypt_block_loop: - movl 32(%esp),%esi C address of ciphertext - movl (%esi),%eax C load ciphertext into registers - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - + movl 20(%esp),%esi C address of context struct ctx + movl 32(%esp),%ebp C address of plaintext + AES_LOAD(%esi, %ebp) addl $16, 32(%esp) C Increment src pointer - movl 20(%esp),%esi C address of context struct ctx - xorl (%esi),%eax C add first key to ciphertext - xorl 4(%esi),%ebx - xorl 8(%esi),%ecx - xorl 12(%esi),%edx +C movl 32(%esp),%esi C address of ciphertext +C movl (%esi),%eax C load ciphertext into registers +C movl 4(%esi),%ebx +C movl 8(%esi),%ecx +C movl 12(%esi),%edx +C +C addl $16, 32(%esp) C Increment src pointer +C +C movl 20(%esp),%esi C address of context struct ctx +C xorl (%esi),%eax C add first key to ciphertext +C xorl 4(%esi),%ebx +C xorl 8(%esi),%ecx +C xorl 12(%esi),%edx movl AES_NROUNDS (%esi),%ebp C get number of rounds to do from struct C shll $4,%ebp C leal 240(%esi, %ebp),%esi |