p = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f ** 2
I tried this P and I basically get like P * regular curves (I am not sure how to explain)
So the structure and order of points are the same nothing changes
p_prime = (0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F) ** 2
K = GF(p_prime)
a = K(0)
b = K(7)
E = EllipticCurve(K, (a, b))
G = E(
K(0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798),
K(0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8)
)
private_key_hex = "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364144"
k = int(private_key_hex, 16)
P = k * G
print(f"Private key: {private_key_hex}")
print(f"X = {hex(int(P[0]))}")
print(f"Y = {hex(int(P[1]))}")
so for
Private key 3 and private key fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364144
I get the same point
Private key: fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364144
X = 0xf9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9
Y = 0x388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672
Private key: 3
X = 0xf9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9
Y = 0x388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672
Maybe I am doing something wrong