hash.c 755 B

123456789101112131415161718192021222324252627282930313233
  1. #include "brl.mod/blitz.mod/blitz.h"
  2. #ifndef XXHASH_H_5627135585666179
  3. #define XXH_STATIC_LINKING_ONLY
  4. #define XXH_IMPLEMENTATION
  5. #include "xxhash.h"
  6. #endif
  7. BBString * bmx_gen_hash(BBString * txt) {
  8. char buf[64];
  9. snprintf(buf, 64, "0x%llx", XXH3_64bits(txt->buf, txt->length * sizeof(BBChar)));
  10. return bbStringFromCString(buf);
  11. }
  12. XXH3_state_t * bmx_hash_createState() {
  13. return XXH3_createState();
  14. }
  15. void bmx_hash_reset(XXH3_state_t * state) {
  16. XXH3_64bits_reset(state);
  17. }
  18. void bmx_hash_update(XXH3_state_t * state, void * data, int length) {
  19. XXH3_64bits_update(state, data, length);
  20. }
  21. BBString * bmx_hash_digest(XXH3_state_t * state) {
  22. char buf[64];
  23. snprintf(buf, 64, "%llx", XXH3_64bits_digest(state));
  24. return bbStringFromCString(buf);
  25. }