从组件构建OpenSSL RSA

问题描述 投票:0回答:1

我到处都在寻找答案,但是我认为我真正需要的是具有OpenSSL相关经验的人为我指明正确的方向。

在Python中,有一个库PyCryptodome,它具有多种加密算法(包括RSA)的纯Python实现。它们具有称为construct的RSA模块的功能,该模块从其各种组件(constructnedp)构建RSA密钥。我虽然无法在OpenSSL中找到类似的功能,可能只是因为我不知道在其文档中的位置。

任何帮助将不胜感激。

c openssl openssh libcrypto
1个回答
0
投票

OpenSSL允许您通过创建自己的RSA结构(通过q)然后通过RSA_new()RSA_set0_keyRSA_set0_factors填充它来提供这些值。

[请注意,您仅可以使用RSA_set0_crt_params来完全定义RSA公钥/私钥,但是传统上提供了多个其他值(例如n, e, dp是形成模数的质数,而q,[ C0]和iqmp是CRT系数。

OpenSSL要求您提供这些作为dmp1实例,并且通过dmq1函数分配它们后<。当您在OpenSSL中看到具有该命名方案的函数时,表示您正在设置一个值,但不会增加引用计数,因此,如果您自己释放BN *,它将在结构中成为无效指针。

您可以在set0中确切地看到它的工作方式,但是我强烈建议您不要自己这样做,除非您对OpenSSL及其可疑之处非常满意。
© www.soinside.com 2019 - 2024. All rights reserved.