diff options
author | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2015-04-30 16:57:57 +0300 |
---|---|---|
committer | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2015-04-30 16:57:57 +0300 |
commit | 124dfce7c5a2d9405fa2b2832e91ac1267943830 (patch) | |
tree | 4283417305b557a290880c48e60459d3610dccfb /cipher | |
parent | f88266c0f868d7bf51a215d5531bb9f2b4dad19e (diff) | |
download | libgcrypt-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.S | 4 |
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 |