*: use SWAP_BE64 instead of open-coding it
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
This commit is contained in:
parent
06f719fd79
commit
b102e12253
@ -1540,7 +1540,7 @@ typedef struct md5_ctx_t {
|
|||||||
uint32_t C;
|
uint32_t C;
|
||||||
uint32_t D;
|
uint32_t D;
|
||||||
uint64_t total64;
|
uint64_t total64;
|
||||||
char wbuffer[64];
|
char wbuffer[64]; /* NB: always correctly aligned for uint64_t */
|
||||||
} md5_ctx_t;
|
} md5_ctx_t;
|
||||||
#else
|
#else
|
||||||
/* libbb/md5prime.c uses a bit different one: */
|
/* libbb/md5prime.c uses a bit different one: */
|
||||||
|
@ -417,11 +417,9 @@ void FAST_FUNC md5_end(md5_ctx_t *ctx, void *resbuf)
|
|||||||
if (remaining >= 8) {
|
if (remaining >= 8) {
|
||||||
/* Store the 64-bit counter of bits in the buffer in BE format */
|
/* Store the 64-bit counter of bits in the buffer in BE format */
|
||||||
uint64_t t = ctx->total64 << 3;
|
uint64_t t = ctx->total64 << 3;
|
||||||
unsigned i;
|
t = SWAP_BE64(t);
|
||||||
for (i = 0; i < 8; i++) {
|
/* wbuffer is suitably aligned for this */
|
||||||
ctx->wbuffer[56 + i] = t;
|
*(uint64_t *) (&ctx->wbuffer[64 - 8]) = t;
|
||||||
t >>= 8;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
md5_process_block64(ctx);
|
md5_process_block64(ctx);
|
||||||
if (remaining >= 8)
|
if (remaining >= 8)
|
||||||
|
@ -52,10 +52,10 @@ static ALWAYS_INLINE uint64_t rotr64(uint64_t x, unsigned n)
|
|||||||
return (x >> n) | (x << (64 - n));
|
return (x >> n) | (x << (64 - n));
|
||||||
}
|
}
|
||||||
#if BB_LITTLE_ENDIAN
|
#if BB_LITTLE_ENDIAN
|
||||||
/* ALWAYS_INLINE below would hurt code size, using plain inline: */
|
/* ALWAYS_INLINE below sometimes hurts code size, using plain inline: */
|
||||||
static inline uint64_t hton64(uint64_t v)
|
static inline uint64_t hton64(uint64_t v)
|
||||||
{
|
{
|
||||||
return (((uint64_t)htonl(v)) << 32) | htonl(v >> 32);
|
return SWAP_BE64(v);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#define hton64(v) (v)
|
#define hton64(v) (v)
|
||||||
@ -76,7 +76,7 @@ static void FAST_FUNC sha1_process_block64(sha1_ctx_t *ctx)
|
|||||||
const uint32_t *words = (uint32_t*) ctx->wbuffer;
|
const uint32_t *words = (uint32_t*) ctx->wbuffer;
|
||||||
|
|
||||||
for (t = 0; t < 16; ++t)
|
for (t = 0; t < 16; ++t)
|
||||||
W[t] = ntohl(words[t]);
|
W[t] = SWAP_BE32(words[t]);
|
||||||
for (/*t = 16*/; t < 80; ++t) {
|
for (/*t = 16*/; t < 80; ++t) {
|
||||||
uint32_t T = W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16];
|
uint32_t T = W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16];
|
||||||
W[t] = rotl32(T, 1);
|
W[t] = rotl32(T, 1);
|
||||||
@ -198,7 +198,7 @@ static void FAST_FUNC sha256_process_block64(sha256_ctx_t *ctx)
|
|||||||
|
|
||||||
/* Compute the message schedule according to FIPS 180-2:6.2.2 step 2. */
|
/* Compute the message schedule according to FIPS 180-2:6.2.2 step 2. */
|
||||||
for (t = 0; t < 16; ++t)
|
for (t = 0; t < 16; ++t)
|
||||||
W[t] = ntohl(words[t]);
|
W[t] = SWAP_BE32(words[t]);
|
||||||
for (/*t = 16*/; t < 64; ++t)
|
for (/*t = 16*/; t < 64; ++t)
|
||||||
W[t] = R1(W[t - 2]) + W[t - 7] + R0(W[t - 15]) + W[t - 16];
|
W[t] = R1(W[t - 2]) + W[t - 7] + R0(W[t - 15]) + W[t - 16];
|
||||||
|
|
||||||
@ -490,7 +490,7 @@ void FAST_FUNC sha1_end(sha1_ctx_t *ctx, void *resbuf)
|
|||||||
if (BB_LITTLE_ENDIAN) {
|
if (BB_LITTLE_ENDIAN) {
|
||||||
unsigned i;
|
unsigned i;
|
||||||
for (i = 0; i < bufpos; ++i)
|
for (i = 0; i < bufpos; ++i)
|
||||||
ctx->hash[i] = htonl(ctx->hash[i]);
|
ctx->hash[i] = SWAP_BE32(ctx->hash[i]);
|
||||||
}
|
}
|
||||||
memcpy(resbuf, ctx->hash, sizeof(ctx->hash[0]) * bufpos);
|
memcpy(resbuf, ctx->hash, sizeof(ctx->hash[0]) * bufpos);
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
#if BB_LITTLE_ENDIAN
|
#if BB_LITTLE_ENDIAN
|
||||||
static inline uint64_t hton64(uint64_t v)
|
static inline uint64_t hton64(uint64_t v)
|
||||||
{
|
{
|
||||||
return (((uint64_t)htonl(v)) << 32) | htonl(v >> 32);
|
return SWAP_BE64(v);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#define hton64(v) (v)
|
#define hton64(v) (v)
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
#if BB_LITTLE_ENDIAN
|
#if BB_LITTLE_ENDIAN
|
||||||
static inline uint64_t hton64(uint64_t v)
|
static inline uint64_t hton64(uint64_t v)
|
||||||
{
|
{
|
||||||
return (((uint64_t)htonl(v)) << 32) | htonl(v >> 32);
|
return SWAP_BE64(v);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#define hton64(v) (v)
|
#define hton64(v) (v)
|
||||||
|
Loading…
Reference in New Issue
Block a user