使用OpenSSL,我可以使用X509
结构创建和签署证书:
X509 *x509 = X509_new();
...
X509_set_pubkey(x509, pkey);
X509_sign(x509, pkey, EVP_sha1());
但是,X509_sign
函数将EVP_PKEY
作为第二个参数,它是RSA
,DSA
,DH
之一的包装器,或者EC_KEY
。但是,我想使用OpenSSL不支持的自定义签名方案对证书进行签名。有什么方法可以做到这一点吗?
此外,我还需要向证书添加自定义“颁发者公钥信息”以识别证书颁发机构。
作为一种解决方法,我可以使用虚拟密钥对证书进行签名,一旦SSL连接启动,提供颁发者的公钥和证书签名,然后进行验证。这可能是一个更好的选择吗?