Mercurial > dovecot > original-hg > dovecot-1.2
comparison src/lib/sha1.c @ 8572:9ec2882243a6 HEAD
Try to use (Apple) gcc's __BIG_ENDIAN__ and __LITTLE_ENDIAN__ macros if possible.
Based on a patch by Apple.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 19 Dec 2008 08:50:14 +0200 |
parents | a8b515e1a26f |
children |
comparison
equal
deleted
inserted
replaced
8571:563e61fa7726 | 8572:9ec2882243a6 |
---|---|
78 { | 78 { |
79 uint32_t a, b, c, d, e; | 79 uint32_t a, b, c, d, e; |
80 size_t t, s; | 80 size_t t, s; |
81 uint32_t tmp; | 81 uint32_t tmp; |
82 | 82 |
83 #ifndef WORDS_BIGENDIAN | 83 #if !WORDS_BIGENDIAN |
84 struct sha1_ctxt tctxt; | 84 struct sha1_ctxt tctxt; |
85 memmove(&tctxt.m.b8[0], &ctxt->m.b8[0], 64); | 85 memmove(&tctxt.m.b8[0], &ctxt->m.b8[0], 64); |
86 ctxt->m.b8[0] = tctxt.m.b8[3]; ctxt->m.b8[1] = tctxt.m.b8[2]; | 86 ctxt->m.b8[0] = tctxt.m.b8[3]; ctxt->m.b8[1] = tctxt.m.b8[2]; |
87 ctxt->m.b8[2] = tctxt.m.b8[1]; ctxt->m.b8[3] = tctxt.m.b8[0]; | 87 ctxt->m.b8[2] = tctxt.m.b8[1]; ctxt->m.b8[3] = tctxt.m.b8[0]; |
88 ctxt->m.b8[4] = tctxt.m.b8[7]; ctxt->m.b8[5] = tctxt.m.b8[6]; | 88 ctxt->m.b8[4] = tctxt.m.b8[7]; ctxt->m.b8[5] = tctxt.m.b8[6]; |
187 padlen = 64 - padstart; /* should be 64 */ | 187 padlen = 64 - padstart; /* should be 64 */ |
188 } | 188 } |
189 memset(&ctxt->m.b8[padstart], 0, padlen - 8); | 189 memset(&ctxt->m.b8[padstart], 0, padlen - 8); |
190 COUNT += (padlen - 8); | 190 COUNT += (padlen - 8); |
191 COUNT %= 64; | 191 COUNT %= 64; |
192 #ifdef WORDS_BIGENDIAN | 192 #if WORDS_BIGENDIAN |
193 PUTPAD(ctxt->c.b8[0]); PUTPAD(ctxt->c.b8[1]); | 193 PUTPAD(ctxt->c.b8[0]); PUTPAD(ctxt->c.b8[1]); |
194 PUTPAD(ctxt->c.b8[2]); PUTPAD(ctxt->c.b8[3]); | 194 PUTPAD(ctxt->c.b8[2]); PUTPAD(ctxt->c.b8[3]); |
195 PUTPAD(ctxt->c.b8[4]); PUTPAD(ctxt->c.b8[5]); | 195 PUTPAD(ctxt->c.b8[4]); PUTPAD(ctxt->c.b8[5]); |
196 PUTPAD(ctxt->c.b8[6]); PUTPAD(ctxt->c.b8[7]); | 196 PUTPAD(ctxt->c.b8[6]); PUTPAD(ctxt->c.b8[7]); |
197 #else | 197 #else |
233 { | 233 { |
234 uint8_t *digest; | 234 uint8_t *digest; |
235 | 235 |
236 digest = (uint8_t *)digest0; | 236 digest = (uint8_t *)digest0; |
237 sha1_pad(ctxt); | 237 sha1_pad(ctxt); |
238 #ifdef WORDS_BIGENDIAN | 238 #if WORDS_BIGENDIAN |
239 memmove(digest, &ctxt->h.b8[0], 20); | 239 memmove(digest, &ctxt->h.b8[0], 20); |
240 #else | 240 #else |
241 digest[0] = ctxt->h.b8[3]; digest[1] = ctxt->h.b8[2]; | 241 digest[0] = ctxt->h.b8[3]; digest[1] = ctxt->h.b8[2]; |
242 digest[2] = ctxt->h.b8[1]; digest[3] = ctxt->h.b8[0]; | 242 digest[2] = ctxt->h.b8[1]; digest[3] = ctxt->h.b8[0]; |
243 digest[4] = ctxt->h.b8[7]; digest[5] = ctxt->h.b8[6]; | 243 digest[4] = ctxt->h.b8[7]; digest[5] = ctxt->h.b8[6]; |