0

我正在尝试实现使用后量子(PQ)公钥算法作为公钥算法的自签名 x509 证书。我查看了 c 中的 openssl 库,以及它使用 RSA 完成的方式。我本质上是在尝试复制相同的格式。从我在 openssl 库中看到的内容来看,RSA 和其他一些受支持的算法集成在加密 EVP 层中(密钥存储为 EVP_PKEY)。我尝试使用的 openssl 库中的函数是 X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey),以及其他一些具有非常相似输入的函数。有没有办法可以将 PQ 算法集成到 EVP 层中?如果没有,是否有任何方法可以使用 EVP 层来实现相同的目标?

我曾尝试查看 openssl 库中的 evp 源代码。它似乎只支持某些算法,如 RSA、EC ......我不确定是否可以将 PQ 算法合并到 EVP 层中。我正在遵循此链接中的示例:(https://www.codepool.biz/how-to-use-openssl-to-generate-x-509-certificate-request.html)生成证书。我只是插入 PQ 算法密钥,而不是 RSA 密钥。到目前为止,当我创建我的证书时,它总是以错误的格式输出。

我正在使用这个命令:openssl x509 -in x509Req.pem -text -noout读取证书生成。它总是显示错误信息

unable to load certificate \n 140688586052032:error:0906D06C:PEM routines:
PEM_read_bio:no start line:../crypto/pem/pem_lib.c:691:Expecting: TRUSTED CERTIFICATE
4

1 回答 1

1

EVP API 使用“ ENGINE”来实现所有对称算法(密码)、摘要和非对称算法(公钥算法)。可以添加/替换 ENGINE 模块。请参阅 openssl引擎命令。

我认为这是您要研究的领域。我认为这个领域没有很多文档(我可以找到),但是您可以查看示例引擎。

如果您下载openssl 源代码,您可以在引擎文件夹中查找可用于开始实现自定义算法的示例引擎。

祝你好运!

于 2019-05-22T21:09:27.657 回答