GB35114---SM3withSM2证书生成及读取(二)

本文介绍如何使用openssl库处理GB35114标准下的SM3withSM2证书,包括读取设备私钥进行数字签名和解密,以及验证服务端公钥的签名。代码示例展示了使用PEM_read_bio_ECPrivateKey和X509相关函数的操作。请注意,GB35114证书的交换不同于SSL认证,是通过物理方式完成的。
摘要由CSDN通过智能技术生成

接上篇

GB35114---SM3withSM2证书生成及读取(一)

作为相机,我们需要读取设备端(自己)的私钥:

        1、对random2+random1+sip服务器id做数字签名;

        2、对cryptkey进行解密得到VKEK;

        3、对METHOD+From+to+CallID+Date+VKEK+消息体进行散列运算。

以及服务端的公钥:

         1、校验sign2签名结果;

现在我们用openssl库来处理。

来看看我这边的代码

int gb35114_module_init()
{
	X509 *x = NULL;
        EVP_PKEY *pkey = NULL;
	BIO *priio = NULL;
	EC_KEY  *prikey = NULL;
	
	do
	{
		auth = malloc(GB_AUTH_T_LEN);
		if(NULL == auth)
		{
			return 0;
		}
		memset(auth,0,GB_AUTH_T_LEN);
		
		x = load_cert(GB35114_SERCER_FILE, FORMAT_PEM, "Certificate");
		if(NULL == x)
		{
			DBG_WARN("load cert ERR\n");
			break;
		}
		//read cer pubkey
		pkey = X509_get_pubkey(x);
		if(NULL == pke
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值