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 中没有多大意义,因为你不能对它们做任何事情。它们只是一个整数。正如您所注意到的,您可以使用 id 方法获取对象的地址。但这就是它的本质,地址。它不是一个指针,所以你不能用它做任何事情。

你也可以这样看:Python 中的一切都是指针。pyOpenSSL 对象的变量指针。但它是指向 pyOpenSSL 对象的指针,而不是指向连接结构的指针。您不太可能直接访问该结构。

所以你必须告诉我们你想做什么。也许还有另一种解决方案。

于 2009-08-07T13:22:03.687 回答