問題タブ [evp-cipher]
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.
c++11 - OpenSSL で EVP 暗号を復号化した後、8 バイトの平文が常に正しくない
EVP 関数と対称キーを使用して、OpenSSL ライブラリで一部のデータを復号化できません。を使用するようにコマンドでデータを暗号化しopenssl enc
、付属の C++ コードで復号化します。これは機能します...ほとんど。
使用するデータに関係なく、復号化を実行した後、平文の 8 バイトの 2 番目のブロック (バイト 8 から 15) は正しくありませんが、ファイルの残りの部分は正しくなっています。私は 130 MB のファイルでもこれを行いました。これらのバイトを除いて、すべての 130 MB は完全に正しく、ファイル内の正しい位置にあります。
これは、ARM ターゲットと Ubuntu 12.04 (異なるライブラリ、異なるツールチェーン) でビルドした場合の両方で発生します。
問題のある短い完全なプログラムを次に示します。その下には、それを示す端末出力がいくつかあります。
これは実際の問題のデモです。すべてゼロの 1 メガのファイルを作成し、暗号化、復号化してから、od
. これを複数回実行すると、これらの 8 つの間違ったバイトの値が実行ごとに変化します...
encryption - openssl rc2-64-cbc nopad の復号化に使用される間違ったキーを検出する方法
rc2-64-cbc NO PADDING を使用して暗号化された暗号化されたデータがいくつかあります。うまく復号化できました。
問題 : 暗号化されたコンテンツが間違ったキーで暗号化されていても、復号化でエラーが発生することはありません。代わりに、rc2 とパディングがないため、ガベージ値に復号化されます。
openssl Linux コマンド プロンプトと C/C++ プログラム (EVP_* API 呼び出しを使用) から試しました。
これを検出するためのopensslオプション/方法はありますか? (コマンドラインまたは EVP_* C/C++ API 呼び出し)
c - コマンドラインからのカスタム openSSL エンジンのテスト
簡単な質問: コマンド ラインから作成しているカスタム openSSL エンジンの機能を確認するにはどうすればよいですか?
現在、私はこのすばらしいチュートリアルに従っており、テスト プログラム (ソース コードはこちら、test/wssha256engine_test.c にあるテストプログラム) を使用してエンジン (すべて 2 のダイジェスト値を返す) を正常に実行できます。
ただし、理由により、openssl コマンド ライン インターフェイスを使用して、先ほど書いたエンジンを実行し、md5 ではなく sha256 を使用して、この他のチュートリアルのようにランダムな文字列のダイジェストを計算させたいと思います。
しかし、これを実行しようとすると、エンジンが読み込まれず、ダイジェストの NID が存在しないというエラーが表示され、代わりに標準アルゴリズムで文字列がハッシュされます。
コマンド ラインでエンジンを使用できないのに、それをロードする C プログラムを作成できるのはなぜですか? また、エンジンを使用してコマンド ラインからダイジェストを計算するにはどうすればよいでしょうか?
注: コマンド ラインからエンジンをロードすることはできますが、使用することはできません。