跳转到内容

OpenSSL/EC POINT add

来自 Wikibooks,开放世界开放书籍

EC_POINT_add 将两个点 ab 相加,并将结果放在 r 中。类似地,EC_POINT_dbl 将点 a 加倍,并将结果放在 r 中。在这两种情况下,r 可以是 ab 之一。

EC_POINT_invert 计算提供的点 a 的逆。结果将放回 a 中。

函数 EC_POINT_is_at_infinity 测试提供的点是否在无穷远处。

EC_POINT_is_on_curve 测试提供的点是否在曲线上。

EC_POINT_cmp 比较两个提供的点,并测试它们是否相等。

函数 EC_POINT_make_affine 和 EC_POINTs_make_affine 将 EC_POINT(s) 的内部表示强制转换为仿射坐标系。对于 EC_POINTs_make_affine,值 num 提供要强制转换的数组 points 中的点数。

EC_POINT_mul 计算值 generator * n + q * m,并将结果存储在 r 中。值 n 可以为 NULL,在这种情况下,结果只是 q * m

EC_POINTs_mul 计算值 generator * n + q[0] * m[0] + ... + q[num-1] * m[num-1]。与 EC_POINT_mul 一样,值 n 可以为 NULL。

函数 EC_GROUP_precompute_mult 存储生成器的倍数,以加快点乘法速度,而 EC_GROUP_have_precompute_mult 测试是否已完成预计算。有关生成器的信息,请参阅 EC_GROUP_copy

返回值

[编辑 | 编辑源代码]

以下函数在成功时返回 1,在错误时返回 0:EC_POINT_add、EC_POINT_dbl、EC_POINT_invert、EC_POINT_make_affine、EC_POINTs_make_affine、EC_POINTs_make_affine、EC_POINT_mul、EC_POINTs_mul 和 EC_GROUP_precompute_mult。

EC_POINT_is_at_infinity 如果点在无穷远处,则返回 1,否则返回 0。

EC_POINT_is_on_curve 如果点在曲线上,则返回 1,否则返回 0,在错误时返回 -1。

EC_POINT_cmp 如果点不相等,则返回 1,如果相等,则返回 0,在错误时返回 -1。

EC_GROUP_have_precompute_mult 如果已完成预计算,则返回 1,否则返回 0。

华夏公益教科书