"Source: Text/Geometry/CrvEllFldFin.text";
"Line: 1169";
"Date: Tue Jun  7 22:27:14 2016";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/CrvEllFldFin.text, line: 1169
// Example: H132E8 ()
print "Example: H132E8";
ei := GetEchoInput();
SetEchoInput(true);
p := NextPrime(2^131);
n := p + 1;
n;
assert $1 eq 2722258935367507707706996859454145691688;
Factorization(n);
E0 := SupersingularEllipticCurve(GF(p));
G<x>, f := AbelianGroup(E0);
G;
n eq #G;
assert $1;
P0 := f(x);
E1 := BaseExtend(E0, GF(p^2));
P1 := E1!P0;
repeat
   Q1 := Random(E1);
   z1 := WeilPairing(P1, Q1, n);
until Order(z1) eq n;
IsOrder(Q1, n);
assert $1;
r := 1234567;
z2 := WeilPairing(r*P1, Q1, n);
z1^r eq z2;
assert $1;
WeilPairing(P1, r*P1, n);
assert $1 eq 1;
SetEchoInput(ei);
