package elgamal import ( "context" "log" "math/big" "testing" "git.ali33.ru/fcg-xvii/curve/v2/tools" ) func TestMessage(t *testing.T) { // curve init c, err := tools.NewCurve( big.NewInt(2), big.NewInt(4), ) if err != nil { t.Fatal(err) } p := tools.SearchPrime(big.NewInt(100000)) if err = c.SetP(p); err != nil { t.Fatal(err) } if err = c.SetGRandom(context.Background()); err != nil { t.Fatal(err) } log.Println("CURVE NORM") ce, _ := NewCurve(c, context.Background()) log.Println("CURVE2 NORM") p1, _ := CurveKeyPair(ce, context.Background()) p2, _ := CurveKeyPair(ce, context.Background()) p1.Map().LogPretty() p2.Map().LogPretty() message := "Привет, мир ;)" mes, err := p1.MessageEncode([]byte(message), p2.KeyPublic()) if err != nil { t.Fatal(err) } src, err := p2.MessageDecode(mes) if err != nil { t.Fatal(err) } t.Log(string(src)) aPair, err := p2.KeyPublic().Attack(context.Background()) if err != nil { t.Fatal(err) } aPair.Map().LogPretty() src, err = aPair.MessageDecode(mes) if err != nil { t.Fatal(err) } t.Log(string(src)) }