1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-23 10:29:58 +01:00

* sha512.c: Use the U64_C() macro rather than blindly suffixing with LL.

U64_C is defined in include/types.h and uses the correct suffix depending
on the underlying type of u64.
This commit is contained in:
David Shaw 2003-05-09 22:33:21 +00:00
parent 47e1b3f993
commit c28abad3b6
2 changed files with 61 additions and 47 deletions

View File

@ -1,5 +1,9 @@
2003-05-09 David Shaw <dshaw@jabberwocky.com> 2003-05-09 David Shaw <dshaw@jabberwocky.com>
* sha512.c: Use the U64_C() macro rather than blindly suffixing
with LL. U64_C is defined in include/types.h and uses the correct
suffix depending on the underlying type of u64.
* sha512.c: Suffix all 64-bit constants with LL. Note this makes * sha512.c: Suffix all 64-bit constants with LL. Note this makes
this file non-c89 compliant. That is okay since we have an this file non-c89 compliant. That is okay since we have an
autoconf check for this, and many c89 compilers support LL anyway. autoconf check for this, and many c89 compilers support LL anyway.
@ -1055,7 +1059,6 @@ Mon Feb 16 10:08:47 1998 Werner Koch (wk@isil.d.shuttle.de)
(digest_algo_to_string): New. (digest_algo_to_string): New.
Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc. Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
This file is free software; as a special exception the author gives This file is free software; as a special exception the author gives
@ -1065,5 +1068,3 @@ Mon Feb 16 10:08:47 1998 Werner Koch (wk@isil.d.shuttle.de)
This file is distributed in the hope that it will be useful, but This file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

View File

@ -77,14 +77,14 @@ burn_stack (int bytes)
void void
sha512_init( SHA512_CONTEXT *hd ) sha512_init( SHA512_CONTEXT *hd )
{ {
hd->h0 = 0x6a09e667f3bcc908LL; hd->h0 = U64_C(0x6a09e667f3bcc908);
hd->h1 = 0xbb67ae8584caa73bLL; hd->h1 = U64_C(0xbb67ae8584caa73b);
hd->h2 = 0x3c6ef372fe94f82bLL; hd->h2 = U64_C(0x3c6ef372fe94f82b);
hd->h3 = 0xa54ff53a5f1d36f1LL; hd->h3 = U64_C(0xa54ff53a5f1d36f1);
hd->h4 = 0x510e527fade682d1LL; hd->h4 = U64_C(0x510e527fade682d1);
hd->h5 = 0x9b05688c2b3e6c1fLL; hd->h5 = U64_C(0x9b05688c2b3e6c1f);
hd->h6 = 0x1f83d9abfb41bd6bLL; hd->h6 = U64_C(0x1f83d9abfb41bd6b);
hd->h7 = 0x5be0cd19137e2179LL; hd->h7 = U64_C(0x5be0cd19137e2179);
hd->nblocks = 0; hd->nblocks = 0;
hd->count = 0; hd->count = 0;
@ -93,14 +93,14 @@ sha512_init( SHA512_CONTEXT *hd )
void void
sha384_init( SHA512_CONTEXT *hd ) sha384_init( SHA512_CONTEXT *hd )
{ {
hd->h0 = 0xcbbb9d5dc1059ed8LL; hd->h0 = U64_C(0xcbbb9d5dc1059ed8);
hd->h1 = 0x629a292a367cd507LL; hd->h1 = U64_C(0x629a292a367cd507);
hd->h2 = 0x9159015a3070dd17LL; hd->h2 = U64_C(0x9159015a3070dd17);
hd->h3 = 0x152fecd8f70e5939LL; hd->h3 = U64_C(0x152fecd8f70e5939);
hd->h4 = 0x67332667ffc00b31LL; hd->h4 = U64_C(0x67332667ffc00b31);
hd->h5 = 0x8eb44a8768581511LL; hd->h5 = U64_C(0x8eb44a8768581511);
hd->h6 = 0xdb0c2e0d64f98fa7LL; hd->h6 = U64_C(0xdb0c2e0d64f98fa7);
hd->h7 = 0x47b5481dbefa4fa4LL; hd->h7 = U64_C(0x47b5481dbefa4fa4);
hd->nblocks = 0; hd->nblocks = 0;
hd->count = 0; hd->count = 0;
@ -118,33 +118,46 @@ transform( SHA512_CONTEXT *hd, byte *data )
int t; int t;
static const u64 k[]= static const u64 k[]=
{ {
0x428a2f98d728ae22LL, 0x7137449123ef65cdLL, 0xb5c0fbcfec4d3b2fLL, U64_C(0x428a2f98d728ae22), U64_C(0x7137449123ef65cd),
0xe9b5dba58189dbbcLL, 0x3956c25bf348b538LL, 0x59f111f1b605d019LL, U64_C(0xb5c0fbcfec4d3b2f), U64_C(0xe9b5dba58189dbbc),
0x923f82a4af194f9bLL, 0xab1c5ed5da6d8118LL, 0xd807aa98a3030242LL, U64_C(0x3956c25bf348b538), U64_C(0x59f111f1b605d019),
0x12835b0145706fbeLL, 0x243185be4ee4b28cLL, 0x550c7dc3d5ffb4e2LL, U64_C(0x923f82a4af194f9b), U64_C(0xab1c5ed5da6d8118),
0x72be5d74f27b896fLL, 0x80deb1fe3b1696b1LL, 0x9bdc06a725c71235LL, U64_C(0xd807aa98a3030242), U64_C(0x12835b0145706fbe),
0xc19bf174cf692694LL, 0xe49b69c19ef14ad2LL, 0xefbe4786384f25e3LL, U64_C(0x243185be4ee4b28c), U64_C(0x550c7dc3d5ffb4e2),
0x0fc19dc68b8cd5b5LL, 0x240ca1cc77ac9c65LL, 0x2de92c6f592b0275LL, U64_C(0x72be5d74f27b896f), U64_C(0x80deb1fe3b1696b1),
0x4a7484aa6ea6e483LL, 0x5cb0a9dcbd41fbd4LL, 0x76f988da831153b5LL, U64_C(0x9bdc06a725c71235), U64_C(0xc19bf174cf692694),
0x983e5152ee66dfabLL, 0xa831c66d2db43210LL, 0xb00327c898fb213fLL, U64_C(0xe49b69c19ef14ad2), U64_C(0xefbe4786384f25e3),
0xbf597fc7beef0ee4LL, 0xc6e00bf33da88fc2LL, 0xd5a79147930aa725LL, U64_C(0x0fc19dc68b8cd5b5), U64_C(0x240ca1cc77ac9c65),
0x06ca6351e003826fLL, 0x142929670a0e6e70LL, 0x27b70a8546d22ffcLL, U64_C(0x2de92c6f592b0275), U64_C(0x4a7484aa6ea6e483),
0x2e1b21385c26c926LL, 0x4d2c6dfc5ac42aedLL, 0x53380d139d95b3dfLL, U64_C(0x5cb0a9dcbd41fbd4), U64_C(0x76f988da831153b5),
0x650a73548baf63deLL, 0x766a0abb3c77b2a8LL, 0x81c2c92e47edaee6LL, U64_C(0x983e5152ee66dfab), U64_C(0xa831c66d2db43210),
0x92722c851482353bLL, 0xa2bfe8a14cf10364LL, 0xa81a664bbc423001LL, U64_C(0xb00327c898fb213f), U64_C(0xbf597fc7beef0ee4),
0xc24b8b70d0f89791LL, 0xc76c51a30654be30LL, 0xd192e819d6ef5218LL, U64_C(0xc6e00bf33da88fc2), U64_C(0xd5a79147930aa725),
0xd69906245565a910LL, 0xf40e35855771202aLL, 0x106aa07032bbd1b8LL, U64_C(0x06ca6351e003826f), U64_C(0x142929670a0e6e70),
0x19a4c116b8d2d0c8LL, 0x1e376c085141ab53LL, 0x2748774cdf8eeb99LL, U64_C(0x27b70a8546d22ffc), U64_C(0x2e1b21385c26c926),
0x34b0bcb5e19b48a8LL, 0x391c0cb3c5c95a63LL, 0x4ed8aa4ae3418acbLL, U64_C(0x4d2c6dfc5ac42aed), U64_C(0x53380d139d95b3df),
0x5b9cca4f7763e373LL, 0x682e6ff3d6b2b8a3LL, 0x748f82ee5defb2fcLL, U64_C(0x650a73548baf63de), U64_C(0x766a0abb3c77b2a8),
0x78a5636f43172f60LL, 0x84c87814a1f0ab72LL, 0x8cc702081a6439ecLL, U64_C(0x81c2c92e47edaee6), U64_C(0x92722c851482353b),
0x90befffa23631e28LL, 0xa4506cebde82bde9LL, 0xbef9a3f7b2c67915LL, U64_C(0xa2bfe8a14cf10364), U64_C(0xa81a664bbc423001),
0xc67178f2e372532bLL, 0xca273eceea26619cLL, 0xd186b8c721c0c207LL, U64_C(0xc24b8b70d0f89791), U64_C(0xc76c51a30654be30),
0xeada7dd6cde0eb1eLL, 0xf57d4f7fee6ed178LL, 0x06f067aa72176fbaLL, U64_C(0xd192e819d6ef5218), U64_C(0xd69906245565a910),
0x0a637dc5a2c898a6LL, 0x113f9804bef90daeLL, 0x1b710b35131c471bLL, U64_C(0xf40e35855771202a), U64_C(0x106aa07032bbd1b8),
0x28db77f523047d84LL, 0x32caab7b40c72493LL, 0x3c9ebe0a15c9bebcLL, U64_C(0x19a4c116b8d2d0c8), U64_C(0x1e376c085141ab53),
0x431d67c49c100d4cLL, 0x4cc5d4becb3e42b6LL, 0x597f299cfc657e2aLL, U64_C(0x2748774cdf8eeb99), U64_C(0x34b0bcb5e19b48a8),
0x5fcb6fab3ad6faecLL, 0x6c44198c4a475817LL U64_C(0x391c0cb3c5c95a63), U64_C(0x4ed8aa4ae3418acb),
U64_C(0x5b9cca4f7763e373), U64_C(0x682e6ff3d6b2b8a3),
U64_C(0x748f82ee5defb2fc), U64_C(0x78a5636f43172f60),
U64_C(0x84c87814a1f0ab72), U64_C(0x8cc702081a6439ec),
U64_C(0x90befffa23631e28), U64_C(0xa4506cebde82bde9),
U64_C(0xbef9a3f7b2c67915), U64_C(0xc67178f2e372532b),
U64_C(0xca273eceea26619c), U64_C(0xd186b8c721c0c207),
U64_C(0xeada7dd6cde0eb1e), U64_C(0xf57d4f7fee6ed178),
U64_C(0x06f067aa72176fba), U64_C(0x0a637dc5a2c898a6),
U64_C(0x113f9804bef90dae), U64_C(0x1b710b35131c471b),
U64_C(0x28db77f523047d84), U64_C(0x32caab7b40c72493),
U64_C(0x3c9ebe0a15c9bebc), U64_C(0x431d67c49c100d4c),
U64_C(0x4cc5d4becb3e42b6), U64_C(0x597f299cfc657e2a),
U64_C(0x5fcb6fab3ad6faec), U64_C(0x6c44198c4a475817)
}; };
/* get values from the chaining vars */ /* get values from the chaining vars */
@ -342,7 +355,7 @@ sha512_final(SHA512_CONTEXT *hd)
static byte * static byte *
sha512_read( SHA512_CONTEXT *hd ) sha512_read( SHA512_CONTEXT *hd )
{ {
return hd->buf; return hd->buf;
} }
/**************** /****************