<div dir="ltr">Found it! Thank you for the context info and pointer, Billy!<div><br></div><div>Charlie</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Aug 28, 2022 at 12:35 AM Billy Brumley <<a href="mailto:bbb@iki.fi">bbb@iki.fi</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> I'm new to the ECC area and trying to understand the point addition here. I noticed the implementation of "ec_GFp_simple_add" is different from the algorithm described at Wikipedia. Does the function<br>
> "ec_GFp_simple_add" implement the algorithm in Wiki? Is there any doc/paper explaining the implementation of "ec_GFp_simple_add"?<br>
<br>
That ECC code pre-dates Wikipedia, so the answer is "no" :)<br>
<br>
I believe it is A.10.5 from P1363 or extremely similar. (A crypto standard <br>
from the late 90s---you'll have to do your own digging.)<br>
<br>
At a high level, it is Jacobian projective coordinates with codepath <br>
optimizations for mixed projective-affine inputs (if applicable).<br>
<br>
Please keep in mind the fact that this particular code uses (any form of) <br>
projective coordinates is only internally relevant for OpenSSL. In the <br>
public API, all getters / setters / etc related to projective coordinates <br>
were deprecated as of OpenSSL 3.0.<br>
<br>
Hope it helps,<br>
<br>
BBB</blockquote></div>