z_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package elgamal
  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. // curve init
  11. c, err := tools.NewCurve(
  12. big.NewInt(2),
  13. big.NewInt(4),
  14. )
  15. if err != nil {
  16. t.Fatal(err)
  17. }
  18. p := tools.SearchPrime(big.NewInt(100000))
  19. if err = c.SetP(p); err != nil {
  20. t.Fatal(err)
  21. }
  22. if err = c.SetGRandom(context.Background()); err != nil {
  23. t.Fatal(err)
  24. }
  25. log.Println("CURVE NORM")
  26. ce, _ := NewCurve(c, context.Background())
  27. log.Println("CURVE2 NORM")
  28. p1, _ := CurveKeyPair(ce, context.Background())
  29. p2, _ := CurveKeyPair(ce, context.Background())
  30. p1.Map().LogPretty()
  31. p2.Map().LogPretty()
  32. message := "Привет, мир ;)"
  33. mes, err := p1.MessageEncode([]byte(message), p2.KeyPublic())
  34. if err != nil {
  35. t.Fatal(err)
  36. }
  37. src, err := p2.MessageDecode(mes)
  38. if err != nil {
  39. t.Fatal(err)
  40. }
  41. t.Log(string(src))
  42. aPair, err := p2.KeyPublic().Attack(context.Background())
  43. if err != nil {
  44. t.Fatal(err)
  45. }
  46. aPair.Map().LogPretty()
  47. src, err = aPair.MessageDecode(mes)
  48. if err != nil {
  49. t.Fatal(err)
  50. }
  51. t.Log(string(src))
  52. }