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.

35 lines
944 B

11 years ago
  1. package crypto
  2. import (
  3. "testing"
  4. "crypto/rand"
  5. )
  6. func TestSign(t *testing.T) {
  7. privKey := make([]byte, 32)
  8. _, err := rand.Read(privKey)
  9. if err != nil { t.Fatal(err) }
  10. pubKey := MakePubKey(privKey)
  11. signature := SignMessage([]byte("hello"), privKey, pubKey)
  12. v1 := &Verify{
  13. Message: []byte("hello"),
  14. PubKey: pubKey,
  15. Signature: signature,
  16. }
  17. ok := VerifyBatch([]*Verify{v1, v1, v1, v1})
  18. if ok != true { t.Fatal("Expected ok == true") }
  19. if v1.Valid != true { t.Fatal("Expected v1.Valid to be true") }
  20. v2 := &Verify{
  21. Message: []byte{0x73},
  22. PubKey: pubKey,
  23. Signature: signature,
  24. }
  25. ok = VerifyBatch([]*Verify{v1, v1, v1, v2})
  26. if ok != false { t.Fatal("Expected ok == false") }
  27. if v1.Valid != true { t.Fatal("Expected v1.Valid to be true") }
  28. if v2.Valid != false { t.Fatal("Expected v2.Valid to be true") }
  29. }