私はOpenSSLライブラリへのpyOpenSSLインターフェイスを使用していますが、必要な機能がいくつかありません。これらのメソッドをサポートするためには変更できません。理由)。オブジェクトの内部構造のポインタにアクセスする
私が達成したいことは、OpenSSLオブジェクトポインタを取得することです。その後、私はctypesを通して欠けている機能を呼び出すことができます。それを行う最善の方法は何ですか?
私はid()を使用してpyOpenSSLオブジェクトへのポインタを取得できることをすでに発見しました。どうすればssl変数にアクセスできますか? pyOpenSSL/connections.hから
:あなたは彼らと何もできないよう
typedef struct {
PyObject_HEAD
SSL *ssl;
ssl_ContextObj *context;
PyObject *socket;
PyThreadState *tstate;
PyObject *app_data;
} ssl_ConnectionObj;
pyOpenSSLで利用できないSSL_set_verify関数を使用したい(SSL接続ではなくコンテキストオブジェクトに対してのみset_verifyがある)、pyOpenSSLを変更したくない(Ubuntuでパッケージ化されたものを使いたいパッチを提供しても変更される可能性の低いLTS 8.04)。 – math
一般に公開されていない関数は使用できません。あなたはpyOpenSSLを一切使わずにスキップして、ctypesを使うだけでも可能です。私はctypesに慣れていませんが、pyOpenSSLから正しいハンドルを取得するのは難しいので、ミックスで使用することはできません。 私はあなたの最善の策は、ソースからpyOpenSSLをインストールしてパッチを提出することだと思います。 –