C++ 植物学家
我试图初始化一个PK_签名者对象,这似乎比Botan 1.8.10版给我带来了更多的问题。我目前正在使用Botan的最新稳定版本(1.10),我遇到了问题 在Botan 1.8.10中,我看到程序员的例子如下:C++ 植物学家,c++,botan,C++,Botan,我试图初始化一个PK_签名者对象,这似乎比Botan 1.8.10版给我带来了更多的问题。我目前正在使用Botan的最新稳定版本(1.10),我遇到了问题 在Botan 1.8.10中,我看到程序员的例子如下: Botan::RSA_PrivateKey pkey(rng, p, q, 65537, 0, n); Botan::PK_Signer signer(pkey, "EMSA3(SHA-1)"); 在Botan 1.10.3中,没有类似PK_Signer类的构造函数。有两个构造: Bo
Botan::RSA_PrivateKey pkey(rng, p, q, 65537, 0, n);
Botan::PK_Signer signer(pkey, "EMSA3(SHA-1)");
在Botan 1.10.3中,没有类似PK_Signer类的构造函数。有两个构造:
Botan::PK_Signer(const PK_Signer &);
Botan::PK_Signer(const PK_Signing_Key &key, EMSA *emsa);
这不是一个问题,直到我开始在使用第二个构造函数时遇到问题
我尝试过改变很多事情,但最有意义的方式是:
植物学:自动播种;
植物学家:RSA_私钥pkey(rng,p,q,0x10001,0,n)
这样做会引发错误:
error: no matching function for call to 'Botan::PK_Signer::PK_Signer(Botan::RSA_PrivateKey&, Botan::EMSA3 (*)(Botan::SHA_160))'
我不知道为什么会发生这种情况,因为根据Botan文档继承自抽象类EMSA。感谢您的帮助,Hetelek。
Botan::SHA_160
是一个类,因此您定义的emsa
变量是一个函数,而不是EMSA3
实例
根据Botan 1.8中的示例,您可以使用:
#include <botan/look_pk.h>
...
Botan::PK_Signer signer(pkey, get_emsa("EMSA3(SHA-1)"));
#包括
...
植物学:pky_Signer Signer(pkey,get_emsa(“EMSA3(SHA-1)”);
这也适用于植物学1.10
#include <botan/look_pk.h>
...
Botan::PK_Signer signer(pkey, get_emsa("EMSA3(SHA-1)"));