問題タブ [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.

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

python - 特定のパディング技術を使用してM2CryptoでPythonでドキュメントに署名する方法は?

.pemファイルに保存されている秘密鍵を使用してPythonでテキストにデジタル署名する必要があります。最近はM2Cryptoが好ましい方法のようですので、それを使用しています。私はそれのほとんどを手に入れていると思いますが、パディングを構成する方法について混乱しています。具体的には、次のkSecPaddingPKCS1SHA1ように呼び出されて説明されるパディングスキームを使用して、iPhoneアプリの署名を確認する必要があります。

署名されるデータはSHA1ハッシュです。標準のASN.1パディング、および基になるRSA操作のPKCS1パディングが実行されます。

暗号の専門家ではないので、私はこれが何を意味するのか曖昧な考えしか持っていません。私はRFCのいくつかを調べようとしましたが、それらは侵入できないことがわかりました。RSAオブジェクトの暗号化/復号化メソッドはパディングタイプを使用しているようですが、署名の検証に関連する同様の方法は見当たりません。

特にコードに関して、どんな助けでもありがたいです。

(ある意味で、これはこの質問の逆です。)


わかりました、以下の答えは正しいAFAICTです。次のコードは、パディングスキームtextを使用してiPhoneで検証するための署名を生成します。kSecPaddingPKCS1SHA1

(編集して申し訳ありませんが、暗号ハッカーは宇宙で最もお粗末なドキュメンテーションライターの一部であると言えますか?)

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

java - Java から Python RSA

クライアント側でライブラリ Bouncy Castle J2ME を使用し、他方で Python M2Crypto を使用して、Java から Python への文字列を暗号化しようとしています。

すべてがうまくいっています。適切に復号化できますが、問題はパディングです。

M2Crypto lib は (私が知る限り) 次のパディング スキームのみを提供します: no_padding = 3 pkcs1_padding = 1 sslv23_padding = 2 pkcs1_oaep_padding = 4

弾む城 J2ME は以下を提供するだけですが: NoPadding OAEPWithAndPadding PKCS5Padding SSL3Padding

したがって、両方の間で NoPadding を使用できますが、復号化後に生成される文字列はごちゃごちゃした文字でいっぱいになります。

パディングを整理したいのですが、パディングスキーム間で変換する方法がわかりません/それが可能かどうか。

これを理解するのを手伝ってください、それは私を殺しています!

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

xml - 署名検証にM2Cryptoを使用したxmlデータファイルからのGen公開鍵

私はxml形式のpubキーを持っています:

だから私はこのようなthmsを試してみます:

エラーが発生しました:

何か案は?

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

python - OpenSSLキーを作成するときにcommonNameに何を入力しますか?

ネットワーク上の名前のないホスト間でピアツーピア方式で動作するアプリケーションアプリケーションフレームワークがあります。トラフィックを暗号化したいので、M2Cryptoを使用してセットアップを実装しましたが、問題が発生しました。証明書を作成するときに「commonName」に何を入力すればよいかわかりません。ドメイン名が必要なようですが、これを実行しているコンピュータにはドメイン名がありません。commonNameに「temphost」を付けただけですが、これは明らかに重要なパラメーターです。私はそれをテストしようとしたときにこれを手に入れました:

M2Crypto.SSL.Checker.WrongHost:ピア証明書commonNameがホストと一致しません。予想される127.0.0.1、temphostを取得しました

commonNameを一般化する方法はありますか?

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

python - m2crypto カスタム証明書の検証

2 つのピア間に暗号化された接続を構築する必要があり、両方を認証する必要があります。両方のピアは、もう一方のピア公開鍵のフィンガープリント (SHA256 ハッシュ) を既に共有しています。X509 または OpenPGP キー/証明書は、私のニーズに対して大きすぎてかさばり、セキュリティ モデルに適合しないため、使用していません。

x509モデルを悪用して、M2Crypto(素敵なライブラリ)との接続を構築しようとしています:

  • rsa 秘密鍵を指定して、自己署名付きのほとんど空の証明書を作成します。

  • 私の証明書を提供している他のピアに接続します

  • 他のピア証明書の公開鍵のフィンガープリントを確認します。

次のコードは安全ですか? それが正しいか?それをもっとうまくやる方法はありますか(おそらく他のライブラリを使って)?証明書の検証を要求していないため、OpenSSLが実際に認証に証明書の公開鍵を使用していないことに疑問があります。

der-encoded rsa キーによって認証された暗号化されたストリームを使用する必要があるだけです。Python 用のフリー ソフトウェア ソリューションは大歓迎です。私は M2Crypto をもっとよく知っていて、同じプロジェクトで既にいくつかのコードを使用しているので、M2Crypto がもっと欲しいです。

これが私のコードです(クライアントピアだけで、サーバーは似ているはずです):

回答とアドバイスをありがとうございました。

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

python - M2Crypto:load_dynamic_engine()のAttributeError

M2Crypto-0.20.2を使用しています。OpenSCプロジェクトのengine_pkcs11とAladdinPKIクライアントを使用して、sslを介してxmlrpc呼び出しを行うトークンベースの認証を行いたいと思います。

PKCS#11エンジンとAladdinモジュールをロードしようとしています(以下のコードを参照)。しかし、エラーが発生します:AttributeError:'module'オブジェクトに属性'load_dynamic_engine'がありません

M2Cryptoのドキュメントによると、この関数は使用可能である必要があります。これは私が読んでいるドキュメントです: http ://www.heikkitoivonen.net/m2crypto/api/

誰かが私に正しいドキュメントを教えたり、エンジンをロードする方法を理解するのを手伝ってもらえますか?

ありがとう!

0 投票する
6 に答える
5913 参照

python - M2Crypto.Engine を使用して USB トークンにアクセスするためのヘルプが必要

M2Crypto-0.20.2 を使用しています。OpenSC プロジェクトの engine_pkcs11 と、SSL 経由で xmlrpc 呼び出しを行うトークン ベースの認証に Aladdin PKI クライアントを使用したいと考えています。

これは私が受け取るエラーです:

の場合load_private_key()、最初の引数として何を渡す必要がありますか? M2Crypto のドキュメントでは説明されていません。

エンジンのロード中にエラーは発生しませんが、エンジンが正しくロードされているかどうかはわかりません。エンジン ID は特定の名前でなければならないようですが、そのリストはどこにもありません。 'dynamic'私のために働いています。

どんな助けでも大歓迎です!

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

openssl - M2CryptoEngineクラスメソッドの「name」とは

次の3つのエンジンメソッドでは、引数として「name」が必要です。

「名前」とは正確には何ですか?例から、USBトークンのある種のスロットIDのように見えることがわかりました。IDを見つけるにはどうすればよいですか?

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

python - PythonでECDSA/SHA2 S-MIME署名を確認する方法は?

2つの署名スキームから選択する必要があります。

  • RSA /SHA2S-MIME署名
  • ECDSA /SHA2S-MIME署名

そのために、Pythonソフトウェアはこのスキームの1つをサポートする必要があります。現在、いくつかの政治的な理由から、ECDSAソリューションが好まれています。

ECDSAソリューションはPython暗号モジュール(M2Crypto、...)のいずれかでサポートされていますか?その例はありますか?

ECDSAのサポートは、opensslでも非常に若いようです。

前もって感謝します