@@ -143,10 +143,10 @@ MEXP(void) calcHashBuf(const char* input, size_t length, char* result) {
143143 int i;
144144 uint32_t a, b, c, d, e, g;
145145 uint32_t * ldata;
146- char data[1024 ];
147- memset (data, 0 , 1024 );
146+ uint32_t data[256 ];
147+ memset (data, 0 , sizeof (data) );
148148 memcpy (data, input, length);
149- ldata = ( uint32_t *) data;
149+ ldata = data;
150150
151151 for (i = 0 ; i < 64 ; i++) {
152152 ldata[i + 16 ] =
@@ -207,12 +207,11 @@ MEXP(void) calcHashBuf(const char* input, size_t length, char* result) {
207207 BSHA_OP4 (a, b, c, d, e, *ldata++, g) BSHA_OP4 (a, b, c, d, e, *ldata++, g)
208208 BSHA_OP4 (a, b, c, d, e, *ldata++, g) BSHA_OP4 (a, b, c, d, e, *ldata++, g)
209209
210- ldata = (uint32_t *) result;
211- ldata[0 ] = LSB4 (BSHA_IC1 + a);
212- ldata[1 ] = LSB4 (BSHA_IC2 + b);
213- ldata[2 ] = LSB4 (BSHA_IC3 + c);
214- ldata[3 ] = LSB4 (BSHA_IC4 + d);
215- ldata[4 ] = LSB4 (BSHA_IC5 + e);
216- ldata = NULL ;
210+ uint32_t tmp;
211+ tmp = LSB4 (BSHA_IC1 + a); memcpy (result + 0 , &tmp, 4 );
212+ tmp = LSB4 (BSHA_IC2 + b); memcpy (result + 4 , &tmp, 4 );
213+ tmp = LSB4 (BSHA_IC3 + c); memcpy (result + 8 , &tmp, 4 );
214+ tmp = LSB4 (BSHA_IC4 + d); memcpy (result + 12 , &tmp, 4 );
215+ tmp = LSB4 (BSHA_IC5 + e); memcpy (result + 16 , &tmp, 4 );
217216}
218217#endif
0 commit comments