libpurple/protocols/gg/lib/sha1.c

branch
release-2.x.y
changeset 35685
703d7d7bdf60
parent 35627
fd11790cc4d6
child 35686
cae91a875b23
child 37180
cf498d4b54bb
--- a/libpurple/protocols/gg/lib/sha1.c	Tue Apr 01 00:00:26 2014 +0200
+++ b/libpurple/protocols/gg/lib/sha1.c	Thu Apr 03 14:48:56 2014 +0200
@@ -88,13 +88,13 @@
 /* blk0() and blk() perform the initial expand. */
 /* I got the idea of expanding during the round function from SSLeay */
 #ifndef GG_CONFIG_BIGENDIAN
-#define blk0(i) (block->l[i] = (rol(block->l[i], 24) & 0xFF00FF00) \
-    |(rol(block->l[i], 8) & 0x00FF00FF))
+#define blk0(i) (block.l[i] = (rol(block.l[i], 24) & 0xFF00FF00) \
+    |(rol(block.l[i], 8) & 0x00FF00FF))
 #else
-#define blk0(i) block->l[i]
+#define blk0(i) block.l[i]
 #endif
-#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \
-    ^block->l[(i+2)&15]^block->l[i&15], 1))
+#define blk(i) (block.l[i&15] = rol(block.l[(i+13)&15]^block.l[(i+8)&15] \
+    ^block.l[(i+2)&15]^block.l[i&15], 1))
 
 /* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */
 /* style:comma:start-ignore */
@@ -115,10 +115,8 @@
     unsigned char c[64];
     uint32_t l[16];
 } CHAR64LONG16;
-CHAR64LONG16* block;
-static unsigned char workspace[64];
-    block = (CHAR64LONG16*)workspace;
-    memcpy(block, buffer, 64);
+    CHAR64LONG16 block;
+    memcpy(&block, buffer, sizeof(block));
     /* Copy context->state[] to working vars */
     a = state[0];
     b = state[1];

mercurial