Ошибка при компиляции примера примера ботаника в 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) который даст вам указатель на экземпляр classBotan::PBKDF,

Перво-наперво, ваш код должен выглядеть примерно так:

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

К сожалению, не зная, что вы хотите сделать с s2k Я ничего не могу поделать, так как в документах нет ссылки на публичную функцию-член PBKDF называется set_iterations(), Вы получаете ошибку, которую вы упоминаете, потому что Botan::PBKDF на самом деле нет ни одного члена по имени set_iterations, Вам нужно прочитать документы, понять, какова цель set_iterations() был в вашем ныне устаревшем примере и, следовательно, как достичь этой цели в более новой версии библиотеки.

Возможно, вы пропустили заголовок своей библиотеки... как говорится в сообщении об ошибке: "нет члена с именем..."

Другие вопросы по тегам