1

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;
4

1 に答える 1

3

ポインターはPythonでは何もできないため、Pythonではあまり意味がありません。それらは単なる整数になります。お気づきのとおり、idメソッドを使用してオブジェクトのアドレスを取得できます。しかし、それはまさにそれが何であるか、アドレスです。ポインタではないので、何もできません。

また、次のように表示されます。Pythonのすべてがポインターです。pyOpenSSLオブジェクト用に持っている変数ポインターです。ただし、これはpyOpenSSLオブジェクトへのポインタであり、接続構造へのポインタではありません。その構造に直接アクセスできる可能性はほとんどありません。

ですから、代わりに何をしたいのかを教えてください。多分別の解決策があります。

于 2009-08-07T13:22:03.687 に答える