OpenSSL密码库算法笔记——第6.3.3章 签名函数调用关系

137 篇文章 80 订阅

数字签名中用到了多个函数,包括 ECDSA_sign、ECDSA_sign_ex、ECDSA_do_sign、ECDSA_do_sign_ex、ecdsa_do_sign、ECDSA_sign_setup、ecdsa_sign_setup。这些函数有的是用于计算签名,有的是用于做签名前的预运算;有的签名是采用DER编码,有的是采用ECDSA_SIG。下图将简要说明这些函数之间的调用关系。

6.3 签名所用函数图

        现对上图做个简要说明:

  1. ECDSA_sign和ECDSA_sign_ex的签名采用的是DER编码,故需要用i2d_ECDSA_SIG将ECDSA_do_sign_ex得出的ECDSA_SIG格式签名编码成DER形式。
  2. ECDSA_sign_setup和ecdsa_sign_setup做签名前的预运算,是可选函数。所谓的预运算就是指如果外部不输入kG和 k-1的值((x1,y1) ←kG 是ECDSA签名算法step1.1.2 需要计算的值,而k-1是step1.2所需中间值),就预先将这两个值计算出来。参见§6.2.2签名原理的ECDSA签名算法。
  3. ecs_ossl.c文件中的函数ecdsa_do_sign是具体实现签名的函数,ecdsa_sign_setup是具体实现预运算的函数。

下表对以上函数再做一个比较。

 

函数名

签名采用的编码方式

可选参数

所在文件

ECDSA_sign

DER编码

ecs_sign.c

ECDSA_sign_ex

DER编码

ecs_sign.c

ECDSA_do_sign

ECDSA_SIG

ecs_sign.c

ECDSA_do_sign_ex

ECDSA_SIG

ecs_sign.c

ecdsa_do_sign        

ECDSA_SIG

ecs_ossl.c

ECDSA_sign_setup

ECDSA_SIG

计算可选参数

ecs_sign.c

ecdsa_sign_setup   

ECDSA_SIG

计算可选参数

ecs_ossl.c

表6.4签名函数对比表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值