summaryrefslogtreecommitdiff
path: root/cipher
diff options
context:
space:
mode:
authorJussi Kivilinna <jussi.kivilinna@iki.fi>2015-04-30 16:57:57 +0300
committerJussi Kivilinna <jussi.kivilinna@iki.fi>2015-04-30 16:57:57 +0300
commit124dfce7c5a2d9405fa2b2832e91ac1267943830 (patch)
tree4283417305b557a290880c48e60459d3610dccfb /cipher
parentf88266c0f868d7bf51a215d5531bb9f2b4dad19e (diff)
downloadlibgcrypt-124dfce7c5a2d9405fa2b2832e91ac1267943830.tar.gz
Fix buggy RC4 AMD64 assembly and add test to notice similar issues
* cipher/arcfour-amd64.S (_gcry_arcfour_amd64): Fix swapped store of 'x' and 'y'. * tests/basic.c (get_algo_mode_blklen): New. (check_one_cipher_core): Add new tests for split buffer input on encryption and decryption. -- Reported-by: Dima Kukulniak <dima.ky@gmail.com> Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Diffstat (limited to 'cipher')
-rw-r--r--cipher/arcfour-amd64.S4
1 files changed, 2 insertions, 2 deletions
diff --git a/cipher/arcfour-amd64.S b/cipher/arcfour-amd64.S
index c32cd6f1..8b8031a1 100644
--- a/cipher/arcfour-amd64.S
+++ b/cipher/arcfour-amd64.S
@@ -85,8 +85,8 @@ _gcry_arcfour_amd64:
.Lfinished:
dec %rcx # x--
- movb %dl, (4*256)(%rbp) # key->y = y
- movb %cl, (4*256+4)(%rbp) # key->x = x
+ movb %cl, (4*256)(%rbp) # key->y = y
+ movb %dl, (4*256+4)(%rbp) # key->x = x
pop %rbx
pop %rbp
ret