2

我试图找出错误两天,但仍然没有弄清楚这个未知的原因。

我已经配置并编译了 Botan 库。一切正常,但是当尝试编写要运行的示例代码时..

S2K* s2k = get_s2k("PBKDF2(SHA-256)");
s2k->set_iterations(4049);
SecureVector<byte> key_and_IV = s2k->derive_key(48, passphrase).bits_of();
SymmetricKey key(key_and_IV, 32);

它说错误:'class Botan::PBKDF' has no member named 'set_iterations'

我怎么解决这个问题 ?

4

2 回答 2

1

v1.11.1 的 Botan 文档报告该功能get_s2k()已被弃用,建议您get_pbkdf()改用。

根据文档,get_sdk(algospec)只需返回调用的结果,该结果get_pbkdf(algo_spec)将为您提供指向class Botan::PBKDF.

首先,您的代码需要更像:

PBKDF *s2k = getpbkdf("PBKDF2(SHA-256)");

不幸的是,在不知道您想做什么的情况下,s2k我无能为力,因为文档没有引用PBKDFcalled的公共成员函数set_iterations()。您收到您提到的错误,因为Botan::PBKDF确实没有名为set_iterations. 您需要阅读文档,弄清楚set_iterations()您现在已弃用的示例中的目的是什么,以及如何在较新版本的库中实现该目的。

于 2012-08-10T21:36:58.603 回答
-1

可能你错过了你的图书馆标题......因为你的错误消息说:'没有成员命名......'

于 2012-08-10T13:02:53.153 回答