From: Rusty Russell Date: Tue, 23 Aug 2016 03:39:44 +0000 (+0930) Subject: Merge remote-tracking branch 'origin/pr/47' X-Git-Url: http://git.ozlabs.org/?p=ccan;a=commitdiff_plain;h=e05d1ff2e0b13516776c0a895c8aa47a8f838744;hp=87ea330f85bbc703aa7236736fb8379abcf17592 Merge remote-tracking branch 'origin/pr/47' Closes: 47 --- diff --git a/ccan/crypto/sha256/_info b/ccan/crypto/sha256/_info index fe1f5b8c..ecd08745 100644 --- a/ccan/crypto/sha256/_info +++ b/ccan/crypto/sha256/_info @@ -40,6 +40,7 @@ int main(int argc, char *argv[]) return 1; if (strcmp(argv[1], "depends") == 0) { + printf("ccan/compiler\n"); printf("ccan/endian\n"); return 0; } diff --git a/ccan/crypto/sha256/sha256.c b/ccan/crypto/sha256/sha256.c index 95c70069..d42b47b0 100644 --- a/ccan/crypto/sha256/sha256.c +++ b/ccan/crypto/sha256/sha256.c @@ -8,6 +8,7 @@ */ #include #include +#include #include #include #include @@ -17,16 +18,16 @@ static void invalidate_sha256(struct sha256_ctx *ctx) #ifdef CCAN_CRYPTO_SHA256_USE_OPENSSL ctx->c.md_len = 0; #else - ctx->bytes = -1ULL; + ctx->bytes = (size_t)-1; #endif } -static void check_sha256(struct sha256_ctx *ctx) +static void check_sha256(struct sha256_ctx *ctx UNUSED) { #ifdef CCAN_CRYPTO_SHA256_USE_OPENSSL assert(ctx->c.md_len != 0); #else - assert(ctx->bytes != -1ULL); + assert(ctx->bytes != (size_t)-1); #endif } @@ -166,7 +167,7 @@ static void Transform(uint32_t *s, const uint32_t *chunk) s[7] += h; } -static bool alignment_ok(const void *p, size_t n) +static bool alignment_ok(const void *p UNUSED, size_t n UNUSED) { #if HAVE_UNALIGNED_ACCESS return true; @@ -228,9 +229,9 @@ void sha256_done(struct sha256_ctx *ctx, struct sha256 *res) uint64_t sizedesc; size_t i; - sizedesc = cpu_to_be64(ctx->bytes << 3); + sizedesc = cpu_to_be64((uint64_t)ctx->bytes << 3); /* Add '1' bit to terminate, then all 0 bits, up to next block - 8. */ - add(ctx, pad, 1 + ((119 - (ctx->bytes % 64)) % 64)); + add(ctx, pad, 1 + ((128 - 8 - (ctx->bytes % 64) - 1) % 64)); /* Add number of bits of data (big endian) */ add(ctx, &sizedesc, 8); for (i = 0; i < sizeof(ctx->s) / sizeof(ctx->s[0]); i++) diff --git a/ccan/crypto/sha256/sha256.h b/ccan/crypto/sha256/sha256.h index d8b683ec..9a310b95 100644 --- a/ccan/crypto/sha256/sha256.h +++ b/ccan/crypto/sha256/sha256.h @@ -21,10 +21,8 @@ */ struct sha256 { union { - /* Array of chars */ - unsigned char u8[32]; - /* Array of uint32_t */ uint32_t u32[8]; + unsigned char u8[32]; } u; }; @@ -47,11 +45,11 @@ struct sha256_ctx { SHA256_CTX c; #else uint32_t s[8]; - uint64_t bytes; union { - uint32_t u32[8]; + uint32_t u32[16]; unsigned char u8[64]; } buf; + size_t bytes; #endif }; @@ -106,7 +104,8 @@ void sha256_init(struct sha256_ctx *ctx); #else #define SHA256_INIT \ { { 0x6a09e667ul, 0xbb67ae85ul, 0x3c6ef372ul, 0xa54ff53aul, \ - 0x510e527ful, 0x9b05688cul, 0x1f83d9abul, 0x5be0cd19ul }, 0 } + 0x510e527ful, 0x9b05688cul, 0x1f83d9abul, 0x5be0cd19ul }, \ + { { 0 } }, 0 } #endif /** diff --git a/ccan/crypto/sha256/test/run-33-bit-test.c b/ccan/crypto/sha256/test/run-33-bit-test.c index bde91e1c..ea574b4f 100644 --- a/ccan/crypto/sha256/test/run-33-bit-test.c +++ b/ccan/crypto/sha256/test/run-33-bit-test.c @@ -30,9 +30,9 @@ static const struct sha256_ctx after_16M_by_64 = { LE32_TO_CPU(0xd407a8fc), LE32_TO_CPU(0x1fad409b), LE32_TO_CPU(0x51fa46cc), LE32_TO_CPU(0xea528ae5), LE32_TO_CPU(0x5fa58ebb), LE32_TO_CPU(0x8be97931) }, - 1073741824, { .u32 = { 0x64636261, 0x68676665, 0x65646362, 0x69686766, - 0x66656463, 0x6a696867, 0x67666564, 0x6b6a6968 } } + 0x66656463, 0x6a696867, 0x67666564, 0x6b6a6968 } }, + 1073741824 #endif };