在 C# 或 Java 中移植 OpenSSL 函数EC_POINT_set_compressed_coordinates_GFp需要一点帮助 。
虽然我可以使用 Bouncy Castle(首选),但我愿意从头开始构建它。
C++ 方法签名如下所示:
int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, EC_POINT *p,
const BIGNUM *x, int y_bit, BN_CTX *ctx);
从 OpenSSL:
点也可以用它们的压缩坐标来描述。对于点 (x, y),对于任何给定的 x 值,使得该点位于曲线上,y 将永远只有两个可能的值。因此,可以使用 EC_POINT_set_compressed_coordinates_GFp 和 EC_POINT_set_compressed_coordinates_GF2m 函数设置一个点,其中 x 是 x 坐标,y_bit 是值 0 或 1,以确定应使用 y 的两个可能值中的哪一个。
任何人都可以协助计算所需的数学吗?我在理解源代码时遇到了麻烦,我想确保我正确地移植了它