diff -r a38e6916504c -r e135ccae6783 ext/ezmlm/hash/hash.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ext/ezmlm/hash/hash.h Fri May 12 16:17:41 2017 -0700 @@ -0,0 +1,46 @@ + +#include + +static VALUE rb_mEzmlm; +static VALUE rb_cEZHash; + + +#ifndef SURF_H +#define SURF_H + +#define ROTATE(x,b) (((x) << (b)) | ((x) >> (32 - (b)))) +#define MUSH(i,b) x = t[i] += (((x ^ seed[i]) + sum) ^ ROTATE(x,b)); + +typedef struct { + unsigned int seed[32]; + unsigned int sum[8]; + unsigned int out[8]; + unsigned int in[12]; + int todo; +} surfpcs; + +static const unsigned int littleendian[8] = { + 0x03020100, 0x07060504, 0x0b0a0908, 0x0f0e0d0c, + 0x13121110, 0x17161514, 0x1b1a1918, 0x1f1e1d1c +} ; +#define end ((unsigned char *) &littleendian) +#define data ((unsigned char *) s->in) +#define outdata ((unsigned char *) s->out) + +extern void surf( unsigned int out[8], const unsigned int in[12], const unsigned int seed[32] ); +extern void surfpcs_init( surfpcs *s, const unsigned int k[32] ); +extern void surfpcs_add( surfpcs *s, const char *x,unsigned int n ); +extern void surfpcs_addlc( surfpcs *s, const char *x,unsigned int n ); +extern void surfpcs_out( surfpcs *s, unsigned char h[32] ); +#endif + + +#ifndef SUBHASH_H +#define SUBHASH_H + +unsigned int subhashs(const char *s); +unsigned int subhashb(const char *s,long len); +#define subhashsa(SA) subhashb((SA)->s,(SA)->len) + +#endif +