X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=HighwayHash.xs;h=f806845c5e54fa47c1398aac4473fbf84237f210;hb=af6c79411156f5dab0563e9317c0bff4e08f2a1c;hp=28ba7a2d4d9ccfd45117e06739ff6a35d8cb98f4;hpb=bcb464e9c0fc3968210090c60ae202029c8ab96b;p=digest-highwayhash.git diff --git a/HighwayHash.xs b/HighwayHash.xs index 28ba7a2..f806845 100644 --- a/HighwayHash.xs +++ b/HighwayHash.xs @@ -16,7 +16,7 @@ void process_key(pTHX_ AV *key_av, uint64_t *key) { if(av_len(key_av) + 1 != 4) croak("Key for highway_hash must be a 4-element array"); for(i = 0 ; i < 4 ; i++) { - elt = *av_fetch(key_av, i, false); + elt = *av_fetch(key_av, i, 0); if(SvU64OK(elt)) key[i] = SvU64(elt); else @@ -24,14 +24,14 @@ void process_key(pTHX_ AV *key_av, uint64_t *key) { } } -uint64_t highway_hash64(AV *key_av, char *bytes, uint64_t size) { +uint64_t highway_hash64(AV *key_av, unsigned char *bytes, uint64_t size) { dTHX; uint64_t key[4]; process_key(aTHX_ key_av, key); return HighwayHash64(bytes, size, key); } -AV* highway_hash128(AV *key_av, char *bytes, uint64_t size) { +AV* highway_hash128(AV *key_av, unsigned char *bytes, uint64_t size) { dTHX; AV* result; uint64_t key[4]; @@ -44,11 +44,11 @@ AV* highway_hash128(AV *key_av, char *bytes, uint64_t size) { return result; } -AV* highway_hash256(AV *key_av, char *bytes, uint64_t size) { +AV* highway_hash256(AV *key_av, unsigned char *bytes, uint64_t size) { dTHX; AV* result; uint64_t key[4]; - uint64_t hash[2]; + uint64_t hash[4]; process_key(aTHX_ key_av, key); HighwayHash256(bytes, size, key, hash); result = newAV(); @@ -60,11 +60,12 @@ AV* highway_hash256(AV *key_av, char *bytes, uint64_t size) { } MODULE = Digest::HighwayHash PACKAGE = Digest::HighwayHash +PROTOTYPES: DISABLE BOOT: PERL_MATH_INT64_LOAD_OR_CROAK; -uint64_t highway_hash64(AV *key_av, char *bytes, uint64_t length(bytes)) +uint64_t highway_hash64(AV *key_av, unsigned char *bytes, uint64_t length(bytes)) -AV* highway_hash128(AV *key_av, char *bytes, uint64_t length(bytes)) +AV* highway_hash128(AV *key_av, unsigned char *bytes, uint64_t length(bytes)) -AV* highway_hash256(AV *key_av, char *bytes, uint64_t length(bytes)) +AV* highway_hash256(AV *key_av, unsigned char *bytes, uint64_t length(bytes))