使用libcrypto的openssl ca命令?

使用libcrypto的openssl ca命令?,openssl,Openssl,有没有一种方法可以使用c api调用而不是shell来完成以下命令 openssl ca-in ic.csr-out ic.crt-keyfile ca.key 如果我可以在进程中完成这个过程,而不是生成一个shell,那么它会更加安全。我查看了openssl的API,不清楚如何实现这一点。是的,这是可能的。openssl本身使用api来执行此操作: 基本上,读入CSR,执行一系列X509_REQ_get调用以从CSR获取属性,并使用X509_set设置输出证书中的属性。谢谢,我错过了在存储库中

有没有一种方法可以使用c api调用而不是shell来完成以下命令

openssl ca-in ic.csr-out ic.crt-keyfile ca.key


如果我可以在进程中完成这个过程,而不是生成一个shell,那么它会更加安全。我查看了openssl的API,不清楚如何实现这一点。

是的,这是可能的。openssl本身使用api来执行此操作:


基本上,读入CSR,执行一系列
X509_REQ_get
调用以从CSR获取属性,并使用
X509_set
设置输出证书中的属性。

谢谢,我错过了在存储库中浏览的文件。也许我可以剪切和粘贴一些例程,并将它们嵌入到我的程序中。我建议将它们作为初始模板。用X509_REQ_get替换硬编码字符串和公钥生成,这应该是您最需要的。当然,X509_签名应该使用CA密钥.Jumbogram,您建议的代码段确实创建了一个证书,但似乎没有应用CA签名。这两个脚本都非常复杂,不幸的是没有注释。对我需要的进行反向工程需要一些时间。正确设置颁发者名称(通过X509_Set_issuer_name;硬编码或从颁发者证书读取/复制)。读入CA公钥/私钥,并将其用于X509\u签名。