Documentation
While there are several comments in Secp256r1.sol, including NatSpec documentation, some of these are outdated. For example, the NatSpec parameters for Verify
do not correspond to the actual parameters the function takes, and the description of the _jAdd
function suggests this function computes a doubling.
Making the naming of variables in the _jAdd
function (and to an extent, _modifiedJacobianDouble
) more consistent would make it easier to verify correctness of the calculations. While the parameters are called p1, p2, p3, q1, q2, q3
, the comments and variable names used in the function suggest x1, y1, z1, x2, y2, z2
.
The comment before _modifiedJacobianDouble
suggests this function is operating on modified Jacobian coordinates, but it actually uses the usual Jacobian coordinates. With modified Jacobian coordinates, one would pass four arguments, (x, y, z, w)
where w=a*z^4
.