util_test.go 672 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright (c) Tailscale Inc & AUTHORS
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. package key
  4. import (
  5. "bytes"
  6. "testing"
  7. )
  8. func TestRand(t *testing.T) {
  9. var bs [32]byte
  10. rand(bs[:])
  11. if bs == [32]byte{} {
  12. t.Fatal("rand didn't provide randomness")
  13. }
  14. var bs2 [32]byte
  15. rand(bs2[:])
  16. if bytes.Equal(bs[:], bs2[:]) {
  17. t.Fatal("rand returned the same data twice")
  18. }
  19. }
  20. func TestClamp25519Private(t *testing.T) {
  21. for range 100 {
  22. var k [32]byte
  23. rand(k[:])
  24. clamp25519Private(k[:])
  25. if k[0]&0b111 != 0 {
  26. t.Fatalf("Bogus clamping in first byte: %#08b", k[0])
  27. return
  28. }
  29. if k[31]>>6 != 1 {
  30. t.Fatalf("Bogus clamping in last byte: %#08b", k[0])
  31. }
  32. }
  33. }