在Qt中编译botan示例示例时出错

时间:2012-08-10 10:30:09

标签: qt cryptography hash botan

我试图找出错误两天,但仍然没有得到这个未知的理由。

我已经配置并编译了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'没有名为'set_iterations'的成员

我该如何解决这个问题?

2 个答案:

答案 0 :(得分: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做什么的情况下,我无法继续提供任何帮助,因为文档没有提及名为PBKDF的{​​{1}}的公共成员函数。您收到的错误是因为set_iterations()确实没有名为Botan::PBKDF的成员。您需要阅读文档,找出set_iterations在您现在已弃用的示例中的用途,以及如何在较新版本的库中实现该目的。

答案 1 :(得分:-1)

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