q = 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001 K = GF(q) a = K(0x00) b = K(0x05) E = EllipticCurve(K, (a, b)) G = E(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000, 0x02) E.set_order(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001 * 0x01) p = 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001 Scalar = GF(p) A = E(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000, 0x0000000000000000000000000000000000000000000000000000000000000002) x = Scalar(0x0000000000000000000000000000000000000000000000000000000000000057) print(int(x)) #print([hex(x) for x in (x * A).xy()]) B = E(0x04cbd122b054187ff98f0726651096de7f55a213c233902764fe87d376eeb99c, 0x2d5c8c632b1f33eb42726cda0af9f95eaf3dfa8511e6a7b657713dbf62bb13a5) assert int(x) * A == B yy = Scalar(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe) y = x - Scalar(90) print(hex(int(y))) assert yy == y