Ошибка при компиляции примера примера ботаника в Qt
Я пытаюсь выяснить ошибку в течение двух дней, но до сих пор не выяснил причину этой неизвестной причины.
Я настроил и скомпилировал библиотеку 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);
он говорит об ошибке: "класс Botan::PBKDF" не имеет члена с именем "set_iterations"
Как я могу решить эту проблему?
2 ответа
Документы Botan для v1.11.1 сообщают, что функция get_s2k()
устарел, рекомендую использовать get_pbkdf()
вместо.
Согласно документам, get_sdk(algospec)
просто возвращает результат вызова get_pbkdf(algo_spec)
который даст вам указатель на экземпляр class
Botan::PBKDF
,
Перво-наперво, ваш код должен выглядеть примерно так:
PBKDF *s2k = getpbkdf("PBKDF2(SHA-256)");
К сожалению, не зная, что вы хотите сделать с s2k
Я ничего не могу поделать, так как в документах нет ссылки на публичную функцию-член PBKDF
называется set_iterations()
, Вы получаете ошибку, которую вы упоминаете, потому что Botan::PBKDF
на самом деле нет ни одного члена по имени set_iterations
, Вам нужно прочитать документы, понять, какова цель set_iterations()
был в вашем ныне устаревшем примере и, следовательно, как достичь этой цели в более новой версии библиотеки.
Возможно, вы пропустили заголовок своей библиотеки... как говорится в сообщении об ошибке: "нет члена с именем..."