使用Botan从私钥中提取公钥

阿米尔

我正在尝试使用非对称私钥-公钥对消息进行加密。Botan使用Load_key()函数的中,我读取了私钥,并希望从中提取私钥。为了在其构造函数中构造RSA公钥,我需要一个“算法标识符”对象和一个“密钥位”。算法标识符对象使用pcks8_algorithm_identifier()函数。

问题是“密钥位”返回asecure_vector<unsigned char>而不是a,vector<unsigned char>并且bad::alloc exception在我要将其传递给RSA_PublicKey构造函数时遇到了a

有人遇到这样的问题吗?如果存在通过从Botan中的输入文件中加载密钥来进行非对称加密的另一种方法,我将不胜感激

f9c69e9781fa194211448473495534

Botan使用两个接口表示非对称密钥对:Public_KeyPrivate_KeyPrivate_Key接口继承自Public_Key因此,当您获得诸如RSA_PrivateKeyvia的信息时PKCS8::load_key,此对象既已表示公钥也表示私钥。也就是说,您可以将此对象插入需要使用的其他方法中Public_Key

为了访问原始密钥位,Public_Key接口定义了一个std::vector<uint8_t> public_key_bits()Private_Key接口还有一个附加的secure_vector<uint8_t> private_key_bits()因此,每个Private_Key实例应该同时拥有public_key_bitsprivate_key_bits使用。

参考:https : //github.com/randombit/botan/blob/master/src/lib/pubkey/pk_keys.h

附加说明:secure_vector该类std::vector具有特殊的分配器,可确保在销毁对象时覆盖基础内存,以使诸如私钥位之类的敏感信息不会保留在内存中。如果您实际上必须将a转换secure_vector为法向量,Botan::unlock则可以使用便捷功能https://github.com/randombit/botan/blob/master/src/lib/base/secmem.h)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章