C++ X509签名->;参数这是什么意思?

C++ X509签名->;参数这是什么意思?,c++,openssl,x509,pki,C++,Openssl,X509,Pki,我正在创建一个由第三方API签名的X509证书(不使用X509\u sign())。。。到目前为止,我的工具正在工作。。。为了测试我的工具,我有第三方用来签名的pkey,所以我生成了两个证书,一个是本地签名的,另一个是用第三方API签名的 我唯一的问题是: certificate->cert_info->signature->parameter = certificate2->cert_info->signature->parameter; 证书是我正在远程

我正在创建一个由第三方API签名的X509证书(不使用X509\u sign())。。。到目前为止,我的工具正在工作。。。为了测试我的工具,我有第三方用来签名的pkey,所以我生成了两个证书,一个是本地签名的,另一个是用第三方API签名的

我唯一的问题是:

certificate->cert_info->signature->parameter = certificate2->cert_info->signature->parameter;
证书
是我正在远程签名的证书(第三方API),并且

certificate2
包含相同的信息,但由相同的私钥签名(pem格式的本地pkey)

我的问题是,签名->参数意味着什么??调试
certificate2
时,我意识到类型始终为5,in值中没有任何内容

您知道如何创建这种类型的对象以填充参数值吗


问候您

签名参数根据为证书选择的签名算法而不同。不同的算法需要不同的参数(谢天谢地,最常用的算法不需要参数)。我猜您的证书使用的签名算法是
sha-1withrsa加密
(最常用的算法)。如果是,则签名参数仅为ASN.1类型
NULL
。(顺便说一句,这就是您获取
5
的来源;空值的ASN.1编码使用type=5,length=0)。非常感谢您的回答,实际上我使用的是Sha256withrsaencryption,您知道如何使用此参数创建对象吗??因为是Asn1_项,我可以将其硬编码为5,但我希望确保始终为5。例如,如果我根据RFC 5754使用此算法(Sha256rsa),如果使用算法SHA256WithRSA加密并通过其OID指定,则参数的正确值为ASN.1 NULL(即类型5,长度0)。希望有帮助。