| 1234567891011121314151617181920212223242526272829303132333435 | #!/usr/bin/env sageimport sysimport osfrom sage.all import *def dump_point(P):    xy = P.xy()    xyh = map(lambda v:hex(int(v))[2:-1], xy)    return xyh[0] + " " + xyh[1]# PTWIST-168 prime curvep = 2**168 - 2**8 - 1F = GF(p)b = 114301813541519167821195403070898020343878856329174x = 2y = 342581008510239659405023808572191026457361540109042r = 374144419156711147060143343079555958890598677719703E = EllipticCurve(F, [-3, b])print EP = E.random_point()Q = E.random_point()s = F.random_element()cmd = "./ptwist168 " + dump_point(P) + " " + dump_point(Q) + " " + hex(int(s))[2:-1]print cmdos.system(cmd)P2 = 2*PPQ = P+Qfor i in xrange(1000):    P = int(s)*Pprint dump_point(P2)print dump_point(PQ)print dump_point(P)
 |