hash_arm.go 498 B

123456789101112131415161718192021222324252627
  1. // +build arm
  2. package siphash
  3. // NB: ARM implementation of forgoes extra speed for Hash()
  4. // and Hash128() by simply reusing the same blocks() implementation
  5. // in assembly used by the streaming hash.
  6. func Hash(k0, k1 uint64, p []byte) uint64 {
  7. var d digest
  8. d.size = Size
  9. d.k0 = k0
  10. d.k1 = k1
  11. d.Reset()
  12. d.Write(p)
  13. return d.Sum64()
  14. }
  15. func Hash128(k0, k1 uint64, p []byte) (uint64, uint64) {
  16. var d digest
  17. d.size = Size128
  18. d.k0 = k0
  19. d.k1 = k1
  20. d.Reset()
  21. d.Write(p)
  22. return d.sum128()
  23. }