TwoFishのウィキペディア ページは、C (およびコード)でのこの参照実装を示していますが、これには問題がmain
ありませんが、実装の最初の数パスでは、試みた「既知のベクトル」テスト ケースのいずれも正しく処理されませんでした。API を正しく使用していないという問題があると思われますが、どこからエラーを探し始めればよいかわかりません。そのことに頭を悩ませるのではなく、次のようなコードベースから始めたいと思います。
- すぐに使える
- テストあり
- 自己完結型
- わかりやすくするために書かれています
私はまた、C または C++ コードのような C を強く好みます。
注: 現時点では、何よりもコードの読みやすさに関心があります。1 つのブロックを暗号化および復号化できる小さくて単純なコードと、1 つまたは 3 つの呼び出しをハードコーディングするメイン関数が理想的です。それを超えるほとんどのもの (ユーザー インターフェイスなど) は、私のユース ケースでは単なるノイズになります。
また、Boost よりも制限の厳しいライセンスを持っているものは、比較するための既知の適切な値と状態の情報源としてのみ役立ちます。