hash_arm.go 513 B

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