接上篇
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