いくつかの理由から、私はPythonのsslモジュールを拡張する必要があります。クリニック入力があった元の関数の前に :"クリニック"が使用されている場合、どのようにしてPythonモジュール用の新しい関数を作成できますか?
特に私はC.に私の問題は、opensslのとは関係ありません)(load_cert_chainの第二のバージョンを必要とするのではなく、「診療所」に対処する方法
/*[clinic input]
_ssl._SSLContext.load_cert_chain
certfile: object
keyfile: object = NULL
password: object = NULL
[clinic start generated code]*/
static PyObject *
_ssl__SSLContext_load_cert_chain_impl(PySSLContext *self, PyObject *certfile,
PyObject *keyfile, PyObject *password)
/*[clinic end generated code: output=9480bc1c380e2095 input=7cf9ac673cbee6fc]*/
{
PyObject *certfile_bytes = NULL, *keyfile_bytes = NULL;
pem_password_cb *orig_passwd_cb = self->ctx->default_passwd_callback;
...
これまでのところ、私が知っている、_ssl__SSLContext_load_cert_chain_implはload_cert_chainの実装であり、_ssl.ch このヘッダファイル内で定義されて_ssl__SSLContext_load_cert_chain、内と呼ばれる、しかし、clinic-によって自動生成されるが、それではないこと?
したがって、私は新しい機能load_cert_chain2をオリジナルのコピーとして定義し始めます。すべてが自動作成されているからですか?
私はあなたが書いたことを知っています。しかし、load_cert_chain、load_cert_chain2のコピーを作成するには、_ssl.c.h内の関連する部分もコピーする必要がありますか?私はそれが間違った方法だと思う、hファイルが自動生成されるためです。 – michael
実際、私はclinic.pyもインストールしていません。私がしたのは、元のコードに従って_ssl.c.hを変更することでした。それは動作し、新しいメソッドはPythonインタプリタから呼び出すことができます。 – michael
あなたは変更したいものを明確にすることができますか? – MSeifert