15 #define uint64_t sip_uint64_t
17 typedef uint64_t sip_uint64_t
;
24 uint8_t buf
[sizeof(uint64_t)];
29 typedef struct sip_interface_st sip_interface
;
33 const sip_interface
*methods
;
36 sip_hash
*sip_hash_new(const uint8_t key
[16], int c
, int d
);
37 sip_hash
*sip_hash_init(sip_hash
*h
, const uint8_t key
[16], int c
, int d
);
38 int sip_hash_update(sip_hash
*h
, const uint8_t *data
, size_t len
);
39 int sip_hash_final(sip_hash
*h
, uint8_t **digest
, size_t *len
);
40 int sip_hash_final_integer(sip_hash
*h
, uint64_t *digest
);
41 int sip_hash_digest(sip_hash
*h
, const uint8_t *data
, size_t data_len
, uint8_t **digest
, size_t *digest_len
);
42 int sip_hash_digest_integer(sip_hash
*h
, const uint8_t *data
, size_t data_len
, uint64_t *digest
);
43 void sip_hash_free(sip_hash
*h
);
44 void sip_hash_dump(sip_hash
*h
);
46 NO_SANITIZE("unsigned-integer-overflow", uint64_t sip_hash13(const uint8_t key
[16], const uint8_t *data
, size_t len
));