使用 post-quantum public 密钥算法在 C 中创建 X509 证书?
Creating X509 certificate in C using post-quantum public key algorithm?
我正在尝试实现使用 post-量子 (PQ) public 密钥算法作为 public 密钥算法的自签名 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层中。我正在按照此 link: (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
EVP API uses a "ENGINE" for it's implementation of all the symmetric algorithms (ciphers), digests and asymmetric algorithms (public key algorithms). A ENGINE module can be added / replaced. See openssl engine 命令。
我想这就是您要研究的领域。我认为这方面没有很多文档(我能找到),但是您可以查看示例引擎。
如果您下载 openssl source,您可以在 engines 文件夹中查找示例引擎,您可以使用它们来开始实施您的自定义算法。
祝你好运!
我正在尝试实现使用 post-量子 (PQ) public 密钥算法作为 public 密钥算法的自签名 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层中。我正在按照此 link: (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
EVP API uses a "ENGINE" for it's implementation of all the symmetric algorithms (ciphers), digests and asymmetric algorithms (public key algorithms). A ENGINE module can be added / replaced. See openssl engine 命令。
我想这就是您要研究的领域。我认为这方面没有很多文档(我能找到),但是您可以查看示例引擎。
如果您下载 openssl source,您可以在 engines 文件夹中查找示例引擎,您可以使用它们来开始实施您的自定义算法。
祝你好运!