我只是想用 RSA 编码/解码数据(首先解码)。我不关心数据的类型(字符串、字节或其他 lolcat 编码的数据),我只是寻找一个非常简单的函数来完成这项工作(加密操作),剩下的事情我可以完成。
这是我尝试过的:
CryptoPP::InvertibleRSAFunction rsa;
rsa.SetModulus( n_factor );
rsa.SetPrivateExponent(d_private_exponent);
rsa.SetPrime1( rsa_params.at(p1) );
rsa.SetPrime2( rsa_params.at(p2) );
// All above inputs are correct. I don't have public exponent, but it's works in other languages (I comprared all inputs/outputs)
bool key_ok = rsa.Validate(CryptoPP::NullRNG(), 15);
/* Returns false, but doesn't tell me why :/ */
CryptoPP::Integer to_decode( my_data, size_of_my_data );
res = rsa.CalculateInverse(rg,to_decode);
这将返回:
EXCEPTION : what(): CryptoMaterial: this object contains invalid values
返回的错误码对应"INVALID_DATA_FORMAT"
,可能不是按键问题,而是输入问题。
如果有人对这个库有一些经验,或者检测到一个“noob”错误(我从 4 小时开始就一直在考虑代码,所以这是可能的),任何帮助都将不胜感激。