Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 植物学家_C++_Botan - Fatal编程技术网

C++ 植物学家

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

我试图初始化一个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类的构造函数。有两个构造:

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)"));