GMSSL :SM2椭圆曲线公钥密码算法——数字签名算法3

2022-09-08 12:26:25

2021SC@SDUSC

 签名前准备函数?(应该是在这个翻译吧

EC:椭圆曲线

EC_KEY:elliptic curve keysec-key - npm

        This project defines a wrapper for Elliptic Curve (EC) private and public keys.

BN_CTX((bignum_ctx)是一个保存BIGNUM临时变量的结构

OpenSSL BN_CTX用法 | 经验摘录

BIGNUM:

①初始化函数
BIGNUM *BN_new(void);    新生成一个BIGNUM结构
void BN_free(BIGNUM *a);   释放一个BIGNUM结构,释放完后a=NULL;
void BN_init(BIGNUM *);    初始化所有项均为0,一般为BN_ init(&c)
void BN_clear(BIGNUM *a);  将a中所有项均赋值为0,但是内存并没有释放
void BN_clear_free(BIGNUM *a); 相当与将BN_free和BN_clear综合,要不就赋值0,要不就释放空间。

更多的函数内容可以看Openssl 之大数运算函数 BN_无与伦比BLOG-CSDN博客_openssl大数运算

定义局部变量(上图)

java类中ec_point,表示仿射坐标中椭圆曲线(EC)上的点

ECPoint 包/类/方法中文说明 - Java 11 API中文版 - 手册 - 时代Java

⬆ 两种会出现error的情况下

 ⬆ 新建三个BIGNUM结构体

  ⬆五种会出现SM2err的情况

 void BN_clear_free(BIGNUM *a); 相当与将BN_free和BN_clear综合,要不就赋值0,要不就释放空间。

我的理解是,这一步为签名算法成功实现扫清障碍,一切会出现SM2err的情况,都会在这一步会被排除,保证下一步do-sign顺利进行。

  • 作者:vincy_yeha
  • 原文链接:https://blog.csdn.net/vincy_yeha/article/details/121195912
    更新时间:2022-09-08 12:26:25