問題タブ [pyopenssl]

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 に答える
1232 参照

python - openssl(python)を使用してsslでsshトンネルをラップすることはほぼ完了しました

これと非常によく似た質問を覚えている人もいるかもしれません。C で (libssh2 と openssl を使用して) 元のユーティリティを作成する際に助けを求めたからです。私は今それをpythonに移植しようとしていますが、予期しない場所で立ち往生しました。コアと機能の約 80% を 30 分で移植し、その後 10 時間以上を費やしましたが、まだその 1 つの機能を完了していません。

ソース全体 (~130 行、読みやすく、複雑ではない) は、http: //pastebin.com/Udm6Ehu3から入手できます。

接続、SSL の切り替え、ハンドシェイク、認証、さらには (暗号化された) コマンドの送信も正常に機能します (ルーターのログから、適切なユーザーとパスワードでログインしていることがわかります)。

問題は、トンネル シナリオの ftp_read にあります (self.proxy からの else は None です)。1つの試みはこれでした:

しかし、バイオ読み取り (または ftp_write 関数でのチャネル読み取り) の待機をブロックするか、皮肉なことに、私が処理しようとしている例外 OpenSSL.SSL.WantReadError のいずれかでスタックしてしまいます。

前述のように、ftp_read 呼び出しをコメント アウトすると、プロキシ シナリオは正常に機能します (ログイン、コマンドの送信は問題ありません)。したがって、暗号化されていない読み取り/書き込み、暗号化された読み取り/書き込みのうち、暗号化された読み取りトンネルがありません。

私は今12時間以上費やしていますが、どこにも行けていないように感じているので、どんな考えでも大歓迎です.

編集:私は誰かに私のために関数を書くように頼んでいるわけではないので、SSL (特に BIO) について 1 つまたは 2 つのことを知っていて、トンネルと BIO の間の相互作用に明らかな欠陥があることがわかっている場合は、それで十分です。回答 :) 同様に、おそらく ftp_write は要求された 10240 バイトよりも多くのデータを返す (または単に 2 つのテキスト ("blabla\n"、"command done.\n") を送信する) ため、適切にフラッシュされません。これは本当かもしれませんが、pyOpenSSL の .want_write()/.want_read() に依存して、利用可能な 0 バイト以外を報告することはできないようです。

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

python - クライアント証明書を使用するカスタム urllib オープナー

使用する必要のある API があります。API は HTTPS によって保護され、相互認証/クライアント証明書を使用します。PEM ファイルと CRT ファイルがあります。

PyOpenSSLを使用して定期的にサーバーに接続する場合、問題はありません。コードは次のとおりです。

しかし、これはクライアント証明書を使用する HTTPS API であるため、そのためのオープナーを実装しました。何らかの変更を加えたコードは次のとおりです。

しかし、2 番目のコードを実行すると、次のエラーが発生します。

最後に、私は何か間違ったことをしていますか?そうでない場合は、エラーを理解するのを手伝ってください...

乾杯。

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

python - 証明書から公開鍵を抽出し、データを暗号化する

宿題用です!サーバーの証明書を使用get_peer_certificate() して取得し、呼び出しdump_certificateを使用して証明書を変数にダンプします。フォーマットはPEMで、私にはぴったりです。

このファイル ('server.pubkey') からサーバーの公開鍵を抽出し、アルゴリズムと任意の Python ライブラリplaintextを使用して暗号化するにはどうすればよいですか。RSAこれを書いている時点で、私はpyOpenSSLを使用しています

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

network-programming - ピア検証中に送信される 2 つの証明書。なんで?

サーバ:

クライアント:

クライアント側とサーバー側の両方で、2 つの証明書を取得するのはどうしてですか。CommonName のないものと正しい CommonName= myownserver.com/myownclient.com を持つもの

前述のすべてのファイルには、キー/証明書が 1 つだけ含まれています。また、CommonName を持たない唯一の証明書であるため、最初に印刷された証明書は ca.crt であると推測しています。しかし、なぜそれが起こるのでしょうか?

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

python - 公開RSA/DSAキーのPEMシリアル化を生成する方法

PyCryptoを使用して、RSAキーのパブリックおよびプライベートPEMシリアル化を生成できましたが、PyCryptoではDSAクラスにexportKey()メソッドがありません。

PyOpenSSLを試してみると、RSAおよびDSAキーのプライベートPEMシリアル化を生成できましたが、PyOpenSSLにはcrypto.dump_publickeyメソッドがありません。

RSAおよびDSAキーのPEMシリアル化を生成する方法の提案を探しています。

どうもありがとう!

PS:その間、暗号化APIのdump_privatekeyメソッドもエクスポートするようにPyOpenSSLコードを変更しました。PyOpenSSLのバグとパッチは、 https://bugs.launchpad.net/pyopenssl/+bug/780089で見つけることができます。


私はすでにTwisted.conchを使用していたので、PyCryptoを使用してDSA / RSAキーを手動で生成し、このキーを使用してtwisted.conch.ssh.key.Keyを初期化することで、この問題を解決しました。ConchのKeyクラスは、文字列のシリアル化のためのtoStringメソッドを提供します。

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

python - PyOpenSSL:送受信せずにSSLネゴシエーションを強制しますか?

データの送受信を試行せずに、PyOpenSSL に SSL ネゴシエーション (および、具体的にはピアの証明書の取得) を実行させることは可能ですか?

現在、このコードで:

への呼び出しは をget_peer_certificate返しますNoneが、たとえば を呼び出すと、ssl_soc.write("hello")期待get_peer_certificateどおりに証明書を返し始めます。

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

python - Python: pyOpenSSL.crypto で pkcs12 証明書を読み取る

私はスペイン当局 (FNMT) によって発行された有効な証明書を持っており、それについて詳しく知りたいと思っています。ファイルの拡張子は .p12 です

その中の情報 (姓名) を読み、証明書が有効かどうかを確認したいと思います。pyOpenSSLでそれを行うことは可能ですか? OpenSSL で crypto モジュールを使用する必要があると思います。ヘルプや便利なリンクはありますか? ここで読んでみる:http://packages.python.org/pyOpenSSL/openssl-crypto.htmlしかし、多くの情報はありません:-(

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

python - PyOpenSSL を使用して X.509 証明書のカスタム拡張機能の値を抽出する

Python と PyOpenSSL を使用して、カスタム拡張機能の値を取得する方法はありますか? カスタム拡張とは、 http://www.openssl.org/docs/apps/x509v3_config.htmlの ARBITRARY EXTENSIONS で説明されている任意の拡張形式を使用してエンコードされた拡張を意味します。

また、PyOpenSSL を使用してそのような拡張機能を含む証明書を作成することは可能ですか?

これらのいずれかに対する答えが「いいえ」の場合、他の Python ライブラリでこれを行う方法についてのポインタにも興味があります。OpenSSL コマンド ライン アプリへのシステム コールを実行したくありません。

0 投票する
9 に答える
47747 参照

openssl - easy_install PyOpenSSL エラー

以下のエラーの原因について何か考えはありますか?

私はopenssl-devel.i386 0.9.8e-12.el5_5.7でLinux centosを使用しています

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

python - 1つのsocket.send()呼び出しで送信されるデータの量を増やす

データを転送するためにマシンとリモートホストの間にSSL対応のソケットを作成するための以下のようなコードがあります。sock.sendへの各呼び出しで送信されるデータの量は約16Kであることがわかります。これを構成する方法はありますか?10MBのデータを16Kチャンクで送信するのは非常に遅いですが、チャンクサイズを約1〜2 MBに構成できますか?