如何在不读/写密钥文件的情况下使用crypto ++?

时间:2012-07-21 02:36:45

标签: c++ rsa crypto++

我正在使用Crypto ++ RSA api来加密和解密某些内容,RSAES_OAEP_SHA_Encryptor和RSAES_OAEP_SHA_Decryptor都需要一个存储pub / pri密钥的文件。

:(,但我需要将密钥存储在我的C ++代码变量中,以避免访问文件?

或者有没有比Crypto ++更好的lib?

2 个答案:

答案 0 :(得分:1)

粗略地浏览一下用户指南和API文档,建议您应该能够使用StringSource替换FileSource。

答案 1 :(得分:0)

Crpyto ++ Keys and Formats wiki页面深入介绍了这一点。您可以使用DEREncodePrivateKeyDEREncodePublicKeyBERDecodePrivateKeyBERDecodePublicKey。以下是两个例子的简短介绍。

第一个使用DER编码将密钥保存到文件。

ByteQueue q1;
publicKey.DEREncodePublicKey(q1);

FileSink fs1("key_1.der", true);
q1.TransferTo(fs1);

第二个使用DER编码将密钥保存到字符串。

ByteQueue q2;
publicKey.DEREncodePublicKey(q2);

string key_2;
StringSink ss2(key_2);
q2.TransferTo(ss2);

您可以使用BERDecodePublicKey恢复已保存的密钥。

使用私钥时,请使用DEREncodePrivateKeyBERDecodePrivateKey