[git] GCRYPT - branch, LIBGCRYPT-1-6-BRANCH, updated. libgcrypt-1.6.5-8-gfe9f6e3
by Jussi Kivilinna
cvs at cvs.gnupg.org
Mon Apr 4 11:04:58 CEST 2016
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU crypto library".
The branch, LIBGCRYPT-1-6-BRANCH has been updated
via fe9f6e3670d0095467c7234bed420ac42c065e70 (commit)
from a6855de9fedc16a05f68e3fdda2f6fdaab2388fb (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit fe9f6e3670d0095467c7234bed420ac42c065e70
Author: Jussi Kivilinna <jussi.kivilinna at iki.fi>
Date: Thu Dec 3 21:06:50 2015 +0200
salsa20: fix alignment of self-test context
* cipher/salsa20.c (selftest): Ensure 16-byte alignment for salsa20
context structure.
--
Reported-by: Carlos J Puga Medina <cpm at fbsd.es>
Signed-off-by: Jussi Kivilinna <jussi.kivilinna at iki.fi>
(cherry picked from commit 2cba0dbda462237f55438d4199eccd10c5e3f6ca)
diff --git a/cipher/salsa20.c b/cipher/salsa20.c
index d75fe51..b2d113f 100644
--- a/cipher/salsa20.c
+++ b/cipher/salsa20.c
@@ -485,7 +485,8 @@ salsa20r12_encrypt_stream (void *context,
static const char*
selftest (void)
{
- SALSA20_context_t ctx;
+ byte ctxbuf[sizeof(SALSA20_context_t) + 15];
+ SALSA20_context_t *ctx;
byte scratch[8+1];
byte buf[256+64+4];
int i;
@@ -502,32 +503,35 @@ selftest (void)
static const byte ciphertext_1[] =
{ 0xE3, 0xBE, 0x8F, 0xDD, 0x8B, 0xEC, 0xA2, 0xE3};
- salsa20_setkey (&ctx, key_1, sizeof key_1);
- salsa20_setiv (&ctx, nonce_1, sizeof nonce_1);
+ /* 16-byte alignment required for amd64 implementation. */
+ ctx = (SALSA20_context_t *)((uintptr_t)(ctxbuf + 15) & ~(uintptr_t)15);
+
+ salsa20_setkey (ctx, key_1, sizeof key_1);
+ salsa20_setiv (ctx, nonce_1, sizeof nonce_1);
scratch[8] = 0;
- salsa20_encrypt_stream (&ctx, scratch, plaintext_1, sizeof plaintext_1);
+ salsa20_encrypt_stream (ctx, scratch, plaintext_1, sizeof plaintext_1);
if (memcmp (scratch, ciphertext_1, sizeof ciphertext_1))
return "Salsa20 encryption test 1 failed.";
if (scratch[8])
return "Salsa20 wrote too much.";
- salsa20_setkey( &ctx, key_1, sizeof(key_1));
- salsa20_setiv (&ctx, nonce_1, sizeof nonce_1);
- salsa20_encrypt_stream (&ctx, scratch, scratch, sizeof plaintext_1);
+ salsa20_setkey( ctx, key_1, sizeof(key_1));
+ salsa20_setiv (ctx, nonce_1, sizeof nonce_1);
+ salsa20_encrypt_stream (ctx, scratch, scratch, sizeof plaintext_1);
if (memcmp (scratch, plaintext_1, sizeof plaintext_1))
return "Salsa20 decryption test 1 failed.";
for (i = 0; i < sizeof buf; i++)
buf[i] = i;
- salsa20_setkey (&ctx, key_1, sizeof key_1);
- salsa20_setiv (&ctx, nonce_1, sizeof nonce_1);
+ salsa20_setkey (ctx, key_1, sizeof key_1);
+ salsa20_setiv (ctx, nonce_1, sizeof nonce_1);
/*encrypt*/
- salsa20_encrypt_stream (&ctx, buf, buf, sizeof buf);
+ salsa20_encrypt_stream (ctx, buf, buf, sizeof buf);
/*decrypt*/
- salsa20_setkey (&ctx, key_1, sizeof key_1);
- salsa20_setiv (&ctx, nonce_1, sizeof nonce_1);
- salsa20_encrypt_stream (&ctx, buf, buf, 1);
- salsa20_encrypt_stream (&ctx, buf+1, buf+1, (sizeof buf)-1-1);
- salsa20_encrypt_stream (&ctx, buf+(sizeof buf)-1, buf+(sizeof buf)-1, 1);
+ salsa20_setkey (ctx, key_1, sizeof key_1);
+ salsa20_setiv (ctx, nonce_1, sizeof nonce_1);
+ salsa20_encrypt_stream (ctx, buf, buf, 1);
+ salsa20_encrypt_stream (ctx, buf+1, buf+1, (sizeof buf)-1-1);
+ salsa20_encrypt_stream (ctx, buf+(sizeof buf)-1, buf+(sizeof buf)-1, 1);
for (i = 0; i < sizeof buf; i++)
if (buf[i] != (byte)i)
return "Salsa20 encryption test 2 failed.";
-----------------------------------------------------------------------
Summary of changes:
cipher/salsa20.c | 34 +++++++++++++++++++---------------
1 file changed, 19 insertions(+), 15 deletions(-)
hooks/post-receive
--
The GNU crypto library
http://git.gnupg.org
More information about the Gnupg-commits
mailing list