問題タブ [m2crypto]
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.
security - web2pyで保存されたデータを暗号化する最良の方法は何ですか?
web2py に保存されているデータ、より正確にはパスワードを暗号化する必要があります。
これは認証に関するものではなく、KeePass のようなアプリケーションに関連するものです。
私はそれが web2py に含まれているのを見てきましたが、M2Secretはそれを簡単に行うことができます。M2Secret では、これを使用できます。
しかし、アプライアンスに M2Crypto ライブラリを含める必要があります。
すでにweb2pyに含まれているPyMeでこれを行う方法はありますか?
python - シンボルが見つかりません: _PEM_read_bio_EC_PUBKEY openssl 0.9.8x または 1.0.0x に対してコンパイルされた場合の M2Crypto-0.20.2 のインポート
M2Crypto が MAC OS X 10.4.11 上の最新の openssl バージョン (0.9.8x 以降) に対してコンパイルされている場合、Python 2.6.5 で M2Crypto バージョン 0.20.2 をインポートすると失敗します。
コンパイルはこれらの openssl バージョンに対して機能しますが、シンボルが見つからないため、M2Crypto はインポートに失敗します: _PEM_read_bio_EC_PUBKEY
Python 2.6.5 (r265:79359、2010 年 3 月 24 日、01:32:55) [GCC 4.0.1 (Apple Inc. build 5493)] ダーウィンで「help」、「copyright」、「credits」、または「license」と入力詳細については。
import M2Crypto トレースバック (最新の呼び出しは最後): ファイル ""、1 行目、ファイル "M2Crypto/ init .py"、22 行目、インポート _ m2crypto の ImportError: dlopen(M2Crypto/ _m2crypto.so, 2): シンボルが見つかりません: _PEM_read_bio_EC_PUBKEY 参照元: M2Crypto/__m2crypto.so 予期される: 動的ルックアップ
M2Crypto を openssl バージョン 0.9.7l または 0.9.7m に対してコンパイルすると、問題なく動作します。
なにか提案を?
python - Python M2crypto エラー
crda
クロス プラットフォーム (ARM) でエージェント モジュールをビルドしようとしています。同じものをビルドするには、入力モジュールの 1 つがm2crypto
共有オブジェクト ファイルです。クロスコンパイルに成功し、m2crypto.so
ファイルが生成されました。
コマンドを実行するmake
と、Python スクリプトが内部的に呼び出され、m2crypto.so
モジュールを入力として受け取り、openssl(RSA) キーを生成する必要があります。
__m2crypto.so
私が直面している問題は、python スクリプトがファイルからモジュールをインポートできなかったことです。私はpython 2.4バージョンを使用しています。そして、私が得ているエラーは
m2crypto
ホストマシン(x86プラットフォーム)用にコンパイルしcrda
て同じものをビルドしようとすると、pythonはm2crypto.so
ファイルをインポートできます。
別のプラットフォーム (ARM) で正常にビルドする方法に関する提案。
前もって感謝します、ラムズch
python - CentOS に M2Crypto をインストールする
ソースからコンパイルして CentOS に M2Crypto をインストールしようとしています。私は python setup.py ビルドを行っていますが、次のエラーが発生します。
お知らせ下さい ...
プラサンナ
python - PythonでSSL証明書を確認するにはどうすればよいですか?
証明書がカスタムCAによって署名されていることを確認する必要があります。OpenSSLコマンドラインユーティリティを使用すると、これを行うのは簡単です。
しかし、Pythonでも同じことをする必要があり、コマンドラインユーティリティを呼び出したくありません。私の知る限り、M2CryptoはOpenSSLの「最も完全な」Pythonラッパーですが、コマンドラインユーティリティの機能を実現する方法がわかりません。
Cコードでこれと同じタスクを実行する方法についてこの質問を参照すると、私は約半分を得ることができました。 私が選択した変数名は、opensslverifyコマンドラインユーティリティのソースコードで使用されているものと同じです。を参照してくださいopenssl-xxx/apps/verify.c
。
ですから、途中ですが、実際に検証を行うことができないようです。私は何かが足りないのですか?M2Cryptoから使用する必要のある他の関数はありますか?OpenSSLの完全に異なるPythonラッパーを探す必要がありますか?Pythonでこのタスクを実行するにはどうすればよいですか!?!?
証明書を使用してファイルを暗号化/復号化していることに注意してください。SSL接続が確立されていないため、SSL接続ベースのピア証明書検証(すでに回答済み)の使用には関心がありません。
python - M2CryptoのCSR拡張スタックへのアクセス
拡張スタックが追加された証明書署名要求があります。この要求に基づいて証明書を作成するときは、そのスタックにアクセスして、最終的な証明書の作成に使用できるようにしたいと思います。
ただし、拡張機能( 、など)にM2Crypto.X509.X509
アクセスするためのヘルパーは多数ありますが、拡張機能を追加するためのメンバーのみを提供しているように見えますが、特定のオブジェクトに既に関連付けられている拡張機能を検査する方法はありません。get_ext
get_ext_at
M2Crypto.X509.Request
ここで何かが足りませんか?
python - OpenSSLとM2Cryptoを静的にリンクする
M2Cryptoは標準を使用します
モジュールをビルドしてインストールする手順。distutils / setuptoolsを使用すると多少の調整が可能ですが、OpenSSLをモジュールに静的にリンクする方法が見つからないようです。この変更を行う機能はないようです。
静的にリンクされたOpenSSLを使用してM2Cryptoを構築する方法はありますか?(それが唯一の方法である場合、私は手で保釈しsetup.py
てそれを行うつもりです。私が行く前に誰かがこれに取り組んだかどうかを尋ねて、すでに解決された問題を解決するのに何時間も費やしたいと思います)。
python - SWIGビルドデバッグツール/ヒント
WindowsでPython2.5.4用のOpenSSL1.0.0c(または0.9.7m)を使用してM2Crypto 0.21.1をビルドしようとしていますが、SWIGは私に対して陰謀を企てています。SWIG2.0.1とSWIG1.3.40の両方を試しましたが、同じエラーが発生します。
OpenSSL / SWIGのすべての順列は、このエラーを示しています。私は手で小枝を呼び出して、私ができるすべての「余分な冗長」オプションを渡すことを試みましたが、それらのどれも有益に近いものではありません。この問題の本当の原因を見つけるために他に何ができますか?
(このサイトにはM2Cryptoの.iファイルを編集するための提案がありますが、0.21.1にはすでに提案された変更が統合されています)
openssl - crypto++ を使用して、openssl で生成されたデータ署名を検証します
Pythonで実行されているサーバーがあり、m2cryptoを使用してメッセージsha256ダイジェストに署名しています。openssl CLIによって生成された公開および秘密RSAキーを使用しています。サーバー側では、すべてが問題ありません
Pythonコード:
privateKey = M2Crypto.RSA.load_key (sys.argv[2])
signedDigest = privateKey.sign (ダイジェスト、「sha256」)
署名が適切であることを再確認します。
pubKey = M2Crypto.RSA.load_pub_key("key.pub.pem")
if pubKey.verify(digest, signedDigest, 'sha256') (など....)
署名済みの sha256 ダイジェストをファイルに保存し、元のメッセージと共にクライアントに送信します。
クライアント側では、c++ vc6 で実行され、署名済みの sha256 ダイジェスト (バイナリとして) と署名済みのメッセージを読み込みます。ここでの目的は、署名付きの sha256 と共にメッセージを検証することです。静的リンクとして cryptopp を使用していますが、sha256 を計算し、Python の sha256 と比較して同じ結果を得ることができるため、正常に動作することがわかっています。コードは次のとおりです。
RSA::公開鍵 pubKey;
pubKey.Load( FileSource(LicenseControl::pubKeyPath, true));
RSASS< PKCS1v15, SHA >::検証者 検証者(pubKey);
//shaDigest は新しく計算された sha256、signatureByte はサーバーから受信したメッセージの署名です。
result = verifier.VerifyMessage( shaDigest, CryptoPP::SHA256::DIGESTSIZE, signatureByte, 512);
これはコンパイルして実行しますが、常に false を返します。署名が有効であることを確認するために、openssl CLI を直接使用して検証しました (m2crypto python ラッパー経由ではありません)。
openssl dgst -sha256 -verify key.pub.pem -signature sign original_file
検証済み OK
これにより、署名された sha256 ダイジェストが問題なく、公開鍵を使用してメッセージを正常に検証できることが確認されます。DER および PEM 形式を認識しています (openssl には PEM、cryptop には DER を使用)。したがって、公開鍵は正しいと思います。今私の問題は、暗号化ライブラリを使用して署名を検証する方法です??? 私はドキュメントを読みましたが、何日も経った後でも、まだ中国語のように見えます. 私は次のようなことを試しました
RSASS< PSSR、SHA >::Verifier verifier(pubKey);
PSSR を使用して Python コードで暗号化しますが、運はありません...署名された sha256 ダイジェストを公開鍵でのみ復号化し、受信ファイルから計算された新しい sha256 ダイジェストと比較することを検討しています。しかし、その単純でさえ、ドキュメントには見つかりませんでした...ベリファイアを適切に使用する方法はありますか?
公開鍵を使用して復号化する方法は? 前の質問が解決できない場合
python - AES で使用する強力なワンタイム セッション キーを生成する方法
メッセージの暗号化に M2Crypto の AES を使用していますが、ランダムなセッション キーを生成する方法とその長さについて混乱しています。M2crypto はランダムキーを生成する機能を提供していますか?