2

私は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'には'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)");

残念ながら、ドキュメントにはcalledのパブリック メンバー関数への参照がないため、何をしたいのかわからs2kないため、これ以上お手伝いできません。という名前のメンバーが実際にないため、言及したエラーが発生しています。ドキュメントを読んで、廃止された例の目的を理解し、新しいバージョンのライブラリでその目的を達成する方法を理解する必要があります。PBKDFset_iterations()Botan::PBKDFset_iterationsset_iterations()

于 2012-08-10T21:36:58.603 に答える
-1

ライブラリ ヘッダーを見逃している可能性があります...エラー メッセージに次のように表示されます。

于 2012-08-10T13:02:53.153 に答える