- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Crypto++ 实现 RSA。我正在尝试生成一对 RSA key (公钥和私钥)来像这样提交文件。
当我把所有代码都放在main
中时,代码可以完美运行。当我尝试将它拆分为一个函数并将 AutoSeededRandomPool
对象作为参数传递时,如下所示:
int generateKeyToFile(
AutoSeededRandomPool rnd,
string publicKeyFileName, string privateKeyFileName){
try
{
RSA::PrivateKey rsaPrivate;
rsaPrivate.GenerateRandomWithKeySize(rnd, 3072);
RSA::PublicKey rsaPublic(rsaPrivate);
EncodePrivateKey(privateKeyFileName, rsaPrivate);
EncodePublicKey(publicKeyFileName, rsaPublic);
cout << "Successfully generated and saved RSA keys" << endl;
return 1;
}
catch (CryptoPP::Exception& e)
{
cerr << e.what() << endl;
return -1;
}
}
构建项目时出现错误:
error C2719: 'rnd': formal parameter with __declspec(align('8')) won't be aligned
我无法从 Google 找到此错误的确切 Crypto++ 相关结果,但我找到了 error code C2719 的一些结果.其内容:
'parameter': formal parameter with __declspec(align('#')) won't be aligned
The align __declspec modifier is not permitted on function parameters. Function parameter alignment is controlled by the calling convention used. For more information, see Calling Conventions.
The following sample generates C2719 and shows how to fix it:
// C2719.cpp
void func(int __declspec(align(32)) i); // C2719
// try the following line instead
void func(int i);
我还不知道将这个“解决方案”应用到我的案例中。
似乎 AutoSeededRandomPool
不能作为参数传递。有办法解决这个问题吗?
最佳答案
int generateKeyToFile(
AutoSeededRandomPool rnd,
string publicKeyFileName, string privateKeyFileName){
...
}
使用引用:
int GenerateKeyToFile(
RandomNumberGenerator& rnd,
const string& publicKeyFileName,
const string& privateKeyFileName)
{
...
}
我不确定 AutoSeededRandomPool
是否可复制构造。我认为事情正在按预期进行,因为您可能不应该复制一个。只需通过引用或指针传递它。
关于c++ - 使用 CryptoPP::RSA 时无法将 AutoSeededRandomPool 作为参数传递,错误 C2729,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40623607/
第一次尝试在 xcode 中开发简单的 C++ 东西。我已经有一段时间没有使用 C++ 了,我也不经常使用 Mac,所以如果这是微不足道的,请多多包涵。 我只是从这里获取了 AutoSeededRan
我正在使用 Crypto++ 实现 RSA。我正在尝试生成一对 RSA key (公钥和私钥)来像这样提交文件。 当我把所有代码都放在main中时,代码可以完美运行。当我尝试将它拆分为一个函数并将 A
我是一名优秀的程序员,十分优秀!