解析 python 模块
今天手下小朋友再问如何找到python
模块C的代码,他觉得SSL的接口不合乎他要的。后来事情有些曲折,原叫他先使用pyOpenSSL
。最后还是要研究一下python
模块。
如下解析和编写会使用pyOpenSSL说明。
解析pyOpenSSL
pyOpenSSL 代码里src/OpenSSL/_util.py
如下引用cryptography
模块,用于把SSL
代码引入pyOpenSSL调用。当然这还是python
代码,不合乎我们要的。
from cryptography.hazmat.bindings.openssl.binding import Binding
lib = binding.lib
解析cryptography
cryptography代码里 src/cryptography/hazmat/bindings/openssl/binding.py
使用__import__
引用ssl模块,其作用在于引用SSL
的C模块。
__import__("_ssl")
解析SSL
模块
我们知道C模块代码,那如何引用的,请先下载Python代码,我指Python Compiler Source code。
查看Modules/Setup.dist
,我们找到如下编译选项。清楚知道这代码链接OpenSSL
加密库和SSL库。所以如果熟悉OpenSSL应用如何写,看_ssl.c
可以找到OpenSSL的调用实作,在此不解释。
# Socket module helper for socket(2)
_socket socketmodule.c timemodule.c
# Socket modul