跳轉到內容

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。

華夏公益教科書