gpt4 book ai didi

c++ - 牡丹PK_Signer

转载 作者:太空狗 更新时间:2023-10-29 23:07:36 26 4
gpt4 key购买 nike

我正在尝试初始化一个 PK_Signer 对象,这似乎给我带来了比 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 类那样的构造函数。有 2 个构造函数:

Botan::PK_Signer(const PK_Signer &);
Botan::PK_Signer(const PK_Signing_Key &key, EMSA *emsa);

这不是问题,直到我开始在使用第二个构造函数时遇到问题。

我尝试过改变很多东西,但最有意义的方法是: Botan::AutoSeeded_RNG rng; Botan::RSA_PrivateKey pkey(rng, p, q, 0x10001, 0, n);

Botan::EMSA3 emsa(Botan::SHA_160);
Botan::PK_Signer signer(pkey, &emsa);

这样做会引发错误:

error: no matching function for call to 'Botan::PK_Signer::PK_Signer(Botan::RSA_PrivateKey&, Botan::EMSA3 (*)(Botan::SHA_160))'

我不知道为什么会这样,根据 Botan 文档 EMSA3继承自抽象类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)"));

它也应该在 Botan 1.10 中工作。

关于c++ - 牡丹PK_Signer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12309673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com