SM2_compute_key()函数原型
时间: 2024-02-25 09:51:15 浏览: 25
SM2_compute_key()函数原型如下:
```c
int SM2_compute_key(const EC_KEY *ec_key, const EC_POINT *peer_key, unsigned char *out, size_t outlen, void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen));
```
其中,参数含义如下:
- `ec_key`:SM2算法的EC密钥对象指针。
- `peer_key`:对端公钥的EC点对象指针。
- `out`:输出的密钥数据缓冲区。
- `outlen`:输出密钥数据的长度。
- `KDF`:密钥派生函数指针,用于将计算出的共享密钥派生成指定长度的密钥。
函数返回值为计算出的共享密钥的长度,若计算失败则返回-1。
相关问题
sm2_compute_id_digest
SM2算法是由中国国家密码管理局研究所设计的一种公钥密码算法,与国际上使用广泛的RSA和ECC算法不同,SM2算法采用了国密体系所定义的椭圆曲线密码体系,并加入了大量的安全机制,使得它在国内文化背景下具有很高的安全性和可靠性。
在SM2算法中,sm2_compute_id_digest函数是用于计算消息摘要的函数。它采用了国密体系中定义的哈希算法,将原始消息转化为一个长度为256位的固定长度摘要。sm2_compute_id_digest函数的具体实现步骤如下:
1. 读入输入的消息数据,计算数据的长度,以便于之后的拼接和填充操作。
2. 采用SM3哈希算法对输入消息进行处理,并将处理结果保存在buf1缓冲区中。
3. 用掩码随机化过程进行填充,将buf1缓冲区中的处理结果拼接在掩码随机值的末尾。填充过程需要满足国密体系所定义的填充规则,以确保填充后的消息在安全上是可靠的。
4. 使用SM3哈希算法再次对填充过后的消息进行处理,得到256位的摘要值,并将其保存在buf2缓冲区中。
5. 返回计算得到的消息摘要值。
总的来说,sm2_compute_id_digest函数是SM2算法中一个非常重要的组成部分之一,它的计算结果对于算法的安全性和可靠性具有关键的影响。在使用SM2算法进行加密和签名操作时,都需要调用sm2_compute_id_digest函数计算消息摘要,以确保加密和签名结果的正确性和安全性。
SM2_compute_id_digest
`SM2_compute_id_digest`是一种计算身份标识摘要的函数,它也是基于SM2椭圆曲线公钥密码算法设计的。在SM2算法中,身份标识摘要是使用哈希函数对身份标识进行计算得到的,通常也是使用SHA-256作为哈希函数。身份标识是指在SM2签名中,签名者的身份信息,例如证书序列号等。通过计算身份标识摘要,可以确保签名者的身份信息真实可信,从而增加签名的可信度。`SM2_compute_id_digest`函数在SM2签名中也是一个重要的组成部分,它可以帮助我们对签名进行验证,以确保签名的真实性和完整性。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)