I would like to have an algorithm (possibly very inefficient) that computes the endomorphism ring of a given elliptic curve E over a finite field k.
For simplicity, we shall assume that E is ordinary (to avoid maximal orders in quaternion algebras...), so it is enough to compute the conductor of End(E) in the imaginary quadratic field K:=Q(π), where q=|k| and π=√a2q−4q. We know that this conductor divides [OK:Z[π]], the latter being quite easy to compute in SAGE I suppose.
But now, is there a way to check whether, for a given f∣[OK:Z[π]], we have Z+fOK=End(E) ? This is where I don't know how to proceed.
I am aware of Kohel's thesis (iml.univ-mrs.fr/~kohel/pub/thesis.pdf), which involves isogeny graphs, but I'm not sure if one can implement this on SAGE easily.
Ideally, I want to reproduce the table on page 303 here (van-der-geer.nl/~gerard/AV.pdf), which lists EndF7(E) for all (isomorphism classes of) elliptic curves over F7.