You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
876 B

  1. package nano
  2. import (
  3. "encoding/hex"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. "github.com/stretchr/testify/require"
  7. )
  8. func TestLedgerKeys(t *testing.T) {
  9. assert, require := assert.New(t), require.New(t)
  10. // cryptoCase from sign_test
  11. cases := []struct {
  12. msg, pubkey, sig string
  13. valid bool
  14. }{
  15. {
  16. msg: "F00D",
  17. pubkey: "8E8754F012C2FDB492183D41437FD837CB81D8BBE731924E2E0DAF43FD3F2C93",
  18. sig: "787DC03E9E4EE05983E30BAE0DEFB8DB0671DBC2F5874AC93F8D8CA4018F7A42D6F9A9BCEADB422AC8E27CEE9CA205A0B88D22CD686F0A43EB806E8190A3C400",
  19. valid: true,
  20. },
  21. }
  22. for i, tc := range cases {
  23. bmsg, err := hex.DecodeString(tc.msg)
  24. require.NoError(err, "%d", i)
  25. priv := NewMockKey(tc.msg, tc.pubkey, tc.sig)
  26. pub := priv.PubKey()
  27. sig := priv.Sign(bmsg)
  28. valid := pub.VerifyBytes(bmsg, sig)
  29. assert.Equal(tc.valid, valid, "%d", i)
  30. }
  31. }