前面已经提到无穷远点为椭圆曲线加法群的单位元,记为O。这个无穷远点在仿射坐标系下是无法表示的,在Jacobi射影坐标系下为,。为了实现起来方便,在代码中将无穷远点简化为Z分量为0,而不再去考虑X坐标和Y坐标的关系。
───────────────────────────────────────
int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point)
功能: 设置无穷远点
输入: group,point
输出: -
返回: 1【正常】 or 0【出错】
出处: ec_lib.c
调用: ▼ int ec_GFp_simple_point_set_to_infinity(const EC_GROUP *group, EC_POINT *point)
备注: point->Z ← 0
───────────────────────────────────────
既然在实现中只是将无穷远点设置为Z ← 0,那么判断点是否为无穷远点就变成判断该点的Z分量是否为零。
───────────────────────────────────────
int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *point)
功能: 判断点是否为无穷远点
输入: group,point
输出: -
返回: 1【是无穷远点】 or 0【不是无穷远点】
出处: ec_lib.c
调用: ▼ int ec_GFp_simple_is_at_infinity(const EC_GROUP *group, const EC_POINT *point)
───────────────────────────────────────