p256_test.go 565 B

12345678910111213141516171819202122232425262728
  1. package p256
  2. import (
  3. "crypto/ecdsa"
  4. "crypto/elliptic"
  5. "crypto/rand"
  6. "testing"
  7. "github.com/stretchr/testify/require"
  8. )
  9. func TestFlipping(t *testing.T) {
  10. priv, err1 := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
  11. require.NoError(t, err1)
  12. out, err := ecdsa.SignASN1(rand.Reader, priv, []byte("big chungus"))
  13. require.NoError(t, err)
  14. r, s, err := parseSignature(out)
  15. require.NoError(t, err)
  16. r, s1, err := swap(r, s)
  17. require.NoError(t, err)
  18. r, s2, err := swap(r, s1)
  19. require.NoError(t, err)
  20. require.Equal(t, s, s2)
  21. require.NotEqual(t, s, s1)
  22. }