X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4725d7a4bc5ac1fdae3e86222cdc23eaaf6fb226..0a03cd809dd45e3645a54feffe364d8f2b33d71e:/src/xbt/xbt_sha.c diff --git a/src/xbt/xbt_sha.c b/src/xbt/xbt_sha.c index bca3bf22e5..12fa575479 100644 --- a/src/xbt/xbt_sha.c +++ b/src/xbt/xbt_sha.c @@ -19,29 +19,32 @@ struct s_xbt_sha_ { int blen; unsigned int lenhi, lenlo; }; -static void sha_calculate (xbt_sha_t sha); +static void sha_calculate(xbt_sha_t sha); /* ************** */ /* User Interface */ /* ************** */ /** @brief constructor */ -xbt_sha_t xbt_sha_new (void) { +xbt_sha_t xbt_sha_new(void) +{ xbt_sha_t sha; - sha = xbt_new(s_xbt_sha_t,1); - xbt_sha_reset (sha); + sha = xbt_new(s_xbt_sha_t, 1); + xbt_sha_reset(sha); return sha; } /** @brief destructor */ -void xbt_sha_free (xbt_sha_t sha) { - free (sha); +void xbt_sha_free(xbt_sha_t sha) +{ + free(sha); } -void xbt_sha_reset (xbt_sha_t sha) { - memset (sha, 0, sizeof (s_xbt_sha_t)); +void xbt_sha_reset(xbt_sha_t sha) +{ + memset(sha, 0, sizeof(s_xbt_sha_t)); sha->hash[0] = 0x67452301; sha->hash[1] = 0xefcdab89; sha->hash[2] = 0x98badcfe; @@ -50,14 +53,15 @@ void xbt_sha_reset (xbt_sha_t sha) { } /* @brief Add some more data to the buffer */ -void xbt_sha_feed (xbt_sha_t sha, const unsigned char *data, size_t len) { +void xbt_sha_feed(xbt_sha_t sha, const unsigned char *data, size_t len) +{ int i; - for (i=0; ibuf[sha->blen / 4] <<= 8; - sha->buf[sha->blen / 4] |= (unsigned int)data[i]; + sha->buf[sha->blen / 4] |= (unsigned int) data[i]; if ((++sha->blen) % 64 == 0) { - sha_calculate (sha); + sha_calculate(sha); sha->blen = 0; } sha->lenlo += 8; @@ -66,56 +70,60 @@ void xbt_sha_feed (xbt_sha_t sha, const unsigned char *data, size_t len) { } /* finalize computation before displaying the result */ -static void xbt_sha_finalize (xbt_sha_t sha) { +static void xbt_sha_finalize(xbt_sha_t sha) +{ unsigned char pad[8]; unsigned char padc; - pad[0] = (unsigned char)((sha->lenhi >> 24) & 0xff); - pad[1] = (unsigned char)((sha->lenhi >> 16) & 0xff); - pad[2] = (unsigned char)((sha->lenhi >> 8) & 0xff); - pad[3] = (unsigned char)(sha->lenhi & 0xff); - pad[4] = (unsigned char)((sha->lenlo >> 24) & 0xff); - pad[5] = (unsigned char)((sha->lenlo >> 16) & 0xff); - pad[6] = (unsigned char)((sha->lenlo >> 8) & 0xff); - pad[7] = (unsigned char)(sha->lenlo & 255); + pad[0] = (unsigned char) ((sha->lenhi >> 24) & 0xff); + pad[1] = (unsigned char) ((sha->lenhi >> 16) & 0xff); + pad[2] = (unsigned char) ((sha->lenhi >> 8) & 0xff); + pad[3] = (unsigned char) (sha->lenhi & 0xff); + pad[4] = (unsigned char) ((sha->lenlo >> 24) & 0xff); + pad[5] = (unsigned char) ((sha->lenlo >> 16) & 0xff); + pad[6] = (unsigned char) ((sha->lenlo >> 8) & 0xff); + pad[7] = (unsigned char) (sha->lenlo & 255); padc = 0x80; - xbt_sha_feed (sha, &padc, 1); + xbt_sha_feed(sha, &padc, 1); padc = 0x00; while (sha->blen != 56) - xbt_sha_feed (sha, &padc, 1); + xbt_sha_feed(sha, &padc, 1); - xbt_sha_feed (sha, pad, 8); + xbt_sha_feed(sha, pad, 8); } /** @brief returns the sha hash into a newly allocated buffer (+ reset sha object) */ -char *xbt_sha_read(xbt_sha_t sha) { +char *xbt_sha_read(xbt_sha_t sha) +{ char *res = xbt_malloc(40); - xbt_sha_print(sha,res); + xbt_sha_print(sha, res); return res; } /** @brief copy the content sha hash into the @a hash pre-allocated string (and reset buffer) */ -void xbt_sha_print (xbt_sha_t sha, char *hash) { +void xbt_sha_print(xbt_sha_t sha, char *hash) +{ int i; xbt_sha_finalize(sha); - for (i=0; i<5; i++) { - sprintf (hash, "%08x", sha->hash[i]); + for (i = 0; i < 5; i++) { + sprintf(hash, "%08x", sha->hash[i]); hash += 8; } } /** @brief simply compute a SHA1 hash and copy it to the provided buffer */ -void xbt_sha (const char *data, char *hash) { +void xbt_sha(const char *data, char *hash) +{ s_xbt_sha_t sha; - xbt_sha_reset (&sha); - xbt_sha_feed (&sha, (const unsigned char*)data, strlen (data)); + xbt_sha_reset(&sha); + xbt_sha_feed(&sha, (const unsigned char *) data, strlen(data)); - xbt_sha_print (&sha, hash); + xbt_sha_print(&sha, hash); } /* ********************* */ @@ -133,13 +141,15 @@ void xbt_sha (const char *data, char *hash) { A = TMP; \ } -static void sha_calculate (xbt_sha_t sha) +static void sha_calculate(xbt_sha_t sha) { int i; unsigned int A, B, C, D, E, TMP; - for (i=16; i<80; i++) - sha->buf[i] = SRL (sha->buf[i-3] ^ sha->buf[i-8] ^ sha->buf[i-14] ^ sha->buf[i-16], 1); + for (i = 16; i < 80; i++) + sha->buf[i] = + SRL(sha->buf[i - 3] ^ sha->buf[i - 8] ^ sha-> + buf[i - 14] ^ sha->buf[i - 16], 1); A = sha->hash[0]; B = sha->hash[1]; @@ -147,10 +157,10 @@ static void sha_calculate (xbt_sha_t sha) D = sha->hash[3]; E = sha->hash[4]; - SHA (0, 19, ((C^D)&B)^D, 0x5a827999); - SHA (20, 39, B^C^D, 0x6ed9eba1); - SHA (40, 59, (B&C)|(D&(B|C)), 0x8f1bbcdc); - SHA (60, 79, B^C^D, 0xca62c1d6); + SHA(0, 19, ((C ^ D) & B) ^ D, 0x5a827999); + SHA(20, 39, B ^ C ^ D, 0x6ed9eba1); + SHA(40, 59, (B & C) | (D & (B | C)), 0x8f1bbcdc); + SHA(60, 79, B ^ C ^ D, 0xca62c1d6); sha->hash[0] += A; sha->hash[1] += B; @@ -164,41 +174,47 @@ static void sha_calculate (xbt_sha_t sha) /* ************* */ #ifdef SIMGRID_TEST #include "xbt/hash.h" -#include "portable.h" /* hexa_str */ +#include "portable.h" /* hexa_str */ -static char* mycmp(const char *p1, const char *p2,size_t n) { +static char *mycmp(const char *p1, const char *p2, size_t n) +{ int i; - for (i=0; i