【发布时间】:2014-02-28 15:00:30
【问题描述】:
我有一个用于生成 RSA 密钥和签名的硬件。我需要两件事:
1) 生成证书请求。使用硬件,我可以获得证书的公钥并进行签名部分。我需要代码来生成证书,即做 ASN.1/DER/PEM 的东西。
2) 使用 S/MIME 对数据进行签名。同样,我将使用硬件来执行签名部分,但我需要代码来执行格式部分:PKCS#7 来封装由上一个任务产生的签名和 x509 证书。
所以我可以同时使用 openssl 来生成 CSR 和 S/MIME 格式,但是 openssl 需要对此类任务使用私钥进行签名,并且正如我所说的那样,我通过硬件进行签名。我知道有一种称为“引擎”的机制可以将硬件功能插入到 openssl,但它使用动态库,我的平台不支持(早期的 uClinux for ARM)。
所以问题是:有没有其他方法可以强制 openssl 获取外部公钥,更重要的是,将签名委托给我的硬件?否则,您会推荐另一个我可以用来执行此操作的 C/C++ 库吗?我真的不需要加密库,只要有一个知道如何生成这些格式(证书请求和 S/MIME)的库就足够了。
【问题讨论】:
标签: c++ encryption openssl certificate pkcs#7