問題タブ [botan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
783 参照

c++ - Cygwin の失敗をデバッグするには?

Centos から Cygwin に移植していますが、アプリケーションがエラー メッセージなしで終了し、Botan::InitializationVector のコンストラクターの実行中に終了ステータス 0 になっていることがわかりました。

スピン変数を待機している main() で積極的に gdb をアタッチしようとすると、通常のスタック トレースが得られません。

そのため、gdb がないため、何が問題なのかを把握するのは困難です。

Cygwin でエラー メッセージが表示されないのに、アプリケーションが実行中に終了するのはなぜですか?

コンストラクターの後ではなく前の行のみを表示する詰まりのため、コンストラクター内にあると推測します。

Botanはオープン ソースです: http://botan.randombit.net/ src/sym_algo/symkey.{h,cpp} からのコード スニペットを次に示します。


失敗したコードを main() に移動したところ、正常に動作しました。また、コードの周りに try catch ... を配置しましたが、例外はスローされません。main() とアプリケーションの後半の障害点の間で何か問題が発生します。分割統治を行って、機能しなくなった正確なポイントを絞り込むことができます。Botan 開発者の 1 人が、これも失敗する代わりに使用するために、この簡素化されたコードを提供してくれました。


デバッガーが動作するようになったので、segv が表示されます。

auto_rng.h コードは次のとおりです。

0 投票する
1 に答える
5552 参照

android - JNIを使​​用して共有ライブラリにアクセスするときの「未定義の参照」

JNIを使​​用してBotan(暗号化アルゴリズムのライブラリ)のバージョンを構築し、 AndroidでいくつかのネイティブC++プログラムを実行しようとしています。
NDKツールチェーン(NDK R5b)を使用して、エラーなしでlibbotan.soを作成できました。しかし、Androidプロジェクト(例)からソースファイル(exampleError.cpp)をコンパイルすると、次のエラーが発生します。

これが私のexampletError.cppです:

対応するJavaクラスcreateError.javaは次のとおりです。privatenativevoidsimpleTestCall();

ここでAndroid.mkを見ることができます:

最後になりましたが、Application.mkは次のとおりです。

注:JNIフォルダーの構造は次のとおりです。Android.mkApplication.mk botan / botan_all.h sources / botan_all.cpp exampleError.cpp

また、libbotan.soの内容も確認しました。これは次のとおりです。

しかし、この出力にエラーが見られるかどうかはわかりません。その上、私はこのエラーをオンラインで検索しました。たとえば、ここです。残念ながら、まだ問題を解決できていません。

だから私の質問は次のようになります:私は何を間違っているのですか?

0 投票する
1 に答える
737 参照

c++ - Botan Amalgamation ファイルと VS2008 の使用方法

  • Windows XP SP3 のクリーン インストール
  • Python 2.7.2 をインストールします。
  • Botan 1.10.1 をデスクトップに抽出します。
  • configure.py --cc=msvc --disable-shared --gen-amalgamation を実行します
  • botan_all.hbotan_all.cppを開発ワークステーションにコピーします
  • VS2008 で新しいプロジェクトの Win32 コンソール プロジェクトを作成する

これにより、102 エラーが発生します...このライブラリを使用している人はいますか?

0 投票する
1 に答える
1176 参照

qt - QtはBotan_v1.10.1ライブラリでは機能しません

Qt4.7.3を最新のBotanv1.10.1ライブラリで動作させるようにしています。

Windows用のBotanバイナリがありますが、*。dllファイルはMSVisualStudio専用のようです。そこで、Botanをmingw32でコンパイルして、Qt互換の*.dllファイルと*.aファイルを取得できるようにしました。

いくつかの追加情報:
-Windows764ビット。
-32ビットモードでコンパイルしようとしました。
-Qtはすべて最新のものであり、32ビットモードでインストールされており、うまく機能します。
-Botanはx86Windows用のv1.10.1です。

Qtコマンドプロンプトを開き、次のコマンドを発行しました。

このコマンドはMakefileを生成しました。

次に、このコマンドを使用しました。

このコマンドは、数分間実行した後、次のエラーを生成します。

C:\ Botan-1.10.1 \ src \ utils \ time.cpp:関数内'tm Botan :::: do_gmtime(time_t)':C:\ Botan-1.10.1 \ src \ utils \ time.cpp:55 :エラー:'gmtime_s'はこのスコープで宣言されていませんmingw32-make:* [build \ lib\time.obj]エラー1

C:\ Botan-1.10.1 \ src \ utils \ time.cppを開いて、これを変更しました

これに

次に、mingw32-makeを再度実行しました。今回はさらにコンパイルし、このエラーでスタックしました。

C:\ Botan-1.10.1> mingw32-make process_begin:CreateProcess(NULL、rm -f libbotan-1.10.a、...)が失敗しました。make(e = 2):システムは指定されたファイルを見つけることができません。mingw32-make:* [libbotan-1.10.a]エラー2

このエラーを乗り越えることはできません。どんな助けでも大歓迎です。

0 投票する
1 に答える
1299 参照

mingw - Windows7 64bit で MinGW を使用して Botan をコンパイルする際の問題

MSVC 以外のバージョンの Botan を環境にインストールしようとしています。tarball をダウンロードし、ファイルを抽出して、configure.py を実行しました。

configure.py を実行した後、make を実行すると、「申し訳ありませんが、実装されていません: 64 ビット モードはコンパイルされていません」というエラーで失敗します。

このエラーの原因と修正方法を教えてください。

configure.py からの出力:

make からの出力:

0 投票する
1 に答える
1945 参照

c++ - Botan RSA署名検証をPyCryptoのものと一致させる方法

クライアント コンピューターにダウンロードされる RSA 署名を生成するキー ジェネレーターを開発しています。

クライアント コンピューターで、RSA 署名と公開鍵を使用して文字列を検証したいと考えています。あなたが助けてくれるなら、私が知りたいのは、署名を検証するために使用する必要があるアルゴリズムは何か、または私のコードの何が問題なのかです。

[編集は提案でコードを更新しましたが、それでも成功しません。]

Python コード:

そして C++ コード:

0 投票する
1 に答える
1191 参照

c++ - Botan c ++ハッシュ関数generate_bcrypt()

Botanの関数generate_bcrypt()を使用してパスワードのハッシュを取得しようとしています。
ここでマニュアル http://botan.randombit.net/passhash.htmlを読み ました。その後、私はそれをまだ一度読んだ。ソースコード:


正常にコンパイルしましたが、実行すると次のようになります。

なぜそれを手に入れたのか分かりません(もちろん、スタックに何か問題があることは理解しています)。しかし、私はこれについてボタンをあえて非難することさえできません。だから私はどこかで何か間違ったことをしたと思います。もちろん、私はこのライブラリを離れて、別のことを試すことができます。しかし、私はすでにこのライブラリにバインドしているので(decrypt()とecnrypt()-裕福なものを使用しました)、一度依存関係を作成したくありません。誰かが私の間違いが隠されているヒントを教えてくれれば、私は本当に嬉しく、さらには幸せになります。

おっと、私のスクリーンショットを見るのは難しいです。私はそれらを再アップロードしました:

http://s14.radikal.ru/i187/1203/d1/b1b1a52d051d.png

http://s51.radikal.ru/i131/1203/5f/893fe9f6bbc5.png

ぼたんに何かおかしいとしか思えない…でも信じられない

0 投票する
1 に答える
301 参照

c++ - ボタン暗号化の結果を QDomDocument に出力し、その逆も可能

Qt 内の暗号化に Botan ライブラリを使用しています。あるファイルから別のファイルに暗号化および復号化できるように機能していますが、ファイルからQDomDocument(暗号化されたファイルはXMLファイルになります)に暗号化し、QDomDocumentから復号化するように変更しようとしていますファイルに。

これは、実際の暗号化のために私がこれまでに持っているものです (filePlainText/fileEnc は単なる txt ファイル パスです)。

DataSink_Stream は ofsteam または ostream を受け入れます。したがって、ファイルから変数に復号化するときに ostream を使用する必要があると考えています。しかし、ostream の内容を QDomDocument にフィードできるものに保存するにはどうすればよいでしょうか?

次に、暗号化してファイルに戻すには、istream を ofstream に使用しますが、QDomDocument コンテンツを istream にフィードするにはどうすればよいですか?

0 投票する
1 に答える
396 参照

c++ - Botan 1.10.1 のコンパイル: 未定義の名前空間

ボタン 1.4 からボタン 1.10 に切り替えました。私のMac(OSX10.6)では、設定、作成、インストールがうまくいきました。しかし、libを使用しようとしています

ビルド エラーが発生します。

特別な文字列実装を使用する必要はありますか? すべてのライブラリが利用可能で、パスは問題ないようです (/usr/local/include)。

0 投票する
2 に答える
1293 参照

python - Botan Base64 文字列よりも短い Python Base64 文字列

AES/Rijndael [256 ビット キー / 128 ビット ブロック サイズ] 対称暗号化を機能させることができました。pycrypto で暗号化し、C++ の Botan で復号化します。

ただし、Python で暗号化結果を base64 エンコードしようとすると、結果の文字列は、Base64_Encoder を使用して Botan によって生成された同じ文字列よりも短くなります。例:

ボタン Base64:

zjjxmJf5KPs183I/Evc+JunbOdmbm4bWyhLsdZI8fuVUnKQAeSj0ivmKIYu7HBjM7gLgLV+xtSKcsCeQD7Gy4w==

Py-3k Base64:

zjjxmJf5KPs183I/Evc+JunbOdmbm4bWyhLsdZI8fuVUnKQAeSj0ivmKIYu7HBjM

文字列は 64 文字のマークまではまったく同じであることがわかります。Botan で Python base64 文字列を復号化しようとすると、「十分な入力がありません」というエラーが表示されます。

Python base64 文字列を Botan で受け入れられるようにするにはどうすればよいですか?

-- 編集 -- Python で Botan base64 でエンコードされた文字列をデコードする場合:

したがって、Python pycrypto の結果:

Pythonは何かを「省略」しているようです。しかし、何?

-- 編集 2 --

pycrypto の結果を base64decode して復号化しようとすると、Botan は次のようにスローします。

そのため、pycrypto は Botan で復号化できるほど「十分な」出力を生成していません。

-- EDIT 3 --- コード例:

Python: 機密情報を変更しました。

C++ (Qt + ボタン)

-- 編集 4 --

Botan で暗号化され、base64 でエンコードされた文字列を Python で解読してみることにしましたが、うまくいきましたが、パディングのように見えるものがたくさん追加されました。

次に、base64 エンコーディングの前にそのパディングを pycrypto の結果に追加して、以下を生成しましたが、Botan は復号化を拒否しています ;(

-- ANSWER -- (システム上、さらに 5 時間は自己回答できませんでした!)

私はついにすべてのドキュメントに目を通し、答えを見つけました! モードに使用するパディング方法を指定する必要があります。NoPadding を指定した例

そしてヴィオラ!出力は pycrypto と正確に一致します。参考:[http://botan.randombit.net/filters.html][1]

[1]: Botan Docs: 暗号フィルター