【发布时间】:2012-09-06 23:04:57
【问题描述】:
我正在尝试初始化一个 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::AutoSeed_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。
【问题讨论】: