z_test.go 860 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package dhellman
  2. import (
  3. "context"
  4. "log"
  5. "math/big"
  6. "testing"
  7. "git.ali33.ru/fcg-xvii/curve/v2/tools"
  8. )
  9. func TestMessage(t *testing.T) {
  10. c, err := tools.NewCurve(
  11. big.NewInt(2),
  12. big.NewInt(4),
  13. )
  14. if err != nil {
  15. t.Fatal(err)
  16. }
  17. p := tools.SearchPrime(big.NewInt(1000000))
  18. if err = c.SetP(p); err != nil {
  19. t.Fatal(err)
  20. }
  21. if err = c.SetGRandom(context.Background()); err != nil {
  22. t.Fatal(err)
  23. }
  24. p1, _ := randomCurveKeyPair(c)
  25. p2, _ := randomCurveKeyPair(c)
  26. message := []byte("Hello, WORLD!!!")
  27. encoded, err := p1.messageEncode(message, p2.pub)
  28. if err != nil {
  29. t.Fatal(err)
  30. }
  31. log.Println(encoded)
  32. data, err := p2.messageDecode(encoded, p1.pub)
  33. if err != nil {
  34. t.Fatal(err)
  35. }
  36. log.Println(string(data))
  37. aPriv, err := p1.pub.attack(context.Background())
  38. if err != nil {
  39. t.Fatal(err)
  40. }
  41. log.Println(aPriv.x, p1.priv.x)
  42. }