They should have found someone who knows what they are doing or not implement it at all. We're talking about a company with a $1B+ yearly revenue here.
They put their name behind it https://blog.cloudflare.com/introducing-circl/ and it looks like whoever they hired to do the work couldn't even read the wikipedia page for the algorithm.
> Algorithm 2 assumes that the input point P is in E(Fp2)[N], i.e., has been validated according to Appendix A
Appendix A:
> The main scalar multiplication routine (in Algorithm 2) assumes that the input point lies in
E(Fp2 )[N]. However, since we have #E(Fp2) = 392 ยท N, and in light of small subgroup attacks [39]
that can be carried out in certain scenarios, here we briefly mention how our software enables the
assertion...
Not saying the same situation either; obviously Colin made a silly mistake while refactoring.
We don't actually know the issue with these implementors, but again I ask, with having actual professionals in the field, what should they have done instead of rolling their own for a primitive that doesn't exist in the language?
They put their name behind it https://blog.cloudflare.com/introducing-circl/ and it looks like whoever they hired to do the work couldn't even read the wikipedia page for the algorithm.