我试图找出错误两天,但仍然没有得到这个未知的理由。
我已经配置并编译了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'的成员
我该如何解决这个问题?
答案 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)
可能你错过了你的图书馆标题......因为你的错误信息说:'没有名字的成员......'