标签: pyopenssl

pyOpenSSL和WantReadError

我有一个套接字服务器,我试图在python 2.5上转移到SSL,但我遇到了pyOpenSSL的障碍.我找不到任何关于使用它的好教程,所以我主要依靠猜测.

以下是我的服务器如何设置套接字:

ctx = SSL.Context(SSL.SSLv23_METHOD)
ctx.use_privatekey_file ("mykey.pem")
ctx.use_certificate_file("mycert.pem")
sock = SSL.Connection(ctx, socket.socket(socket.AF_INET, socket.SOCK_STREAM))
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
addr = ('', int(8081))
sock.bind(addr)
sock.listen(5)
Run Code Online (Sandbox Code Playgroud)

以下是它如何接受客户:

sock.setblocking(0)
while True:
  if len(select([sock], [], [], 0.25)[0]):
    client_sock, client_addr = sock.accept()
    client = ClientGen(client_sock)
Run Code Online (Sandbox Code Playgroud)

以下是它从连接的套接字发送/接收的方式:

while True:
  (r, w, e) = select.select([sock], [sock], [], 0.25)

  if len(r):
    bytes = sock.recv(1024)
  if len(w):
    n_bytes = sock.send(self.message)
Run Code Online (Sandbox Code Playgroud)

它是紧凑的,但你得到了一般的想法.问题是,一旦发送/接收循环开始,它就会在发送或接收任何内容之前立即死亡(我无论如何都可以看到):

Traceback (most recent call last):
  File "ClientGen.py", line 50, in networkLoop
    n_bytes = sock.send(self.message
WantReadError
Run Code Online (Sandbox Code Playgroud)

手册中对'WantReadError'的描述非常模糊,说它几乎可以来自任何地方.我究竟做错了什么?

python ssl pyopenssl

2
推荐指数
1
解决办法
2186
查看次数

Twisted DTLS连接

如何使用twcry与m2crypto(或pyopenssl)实现dtls协议?

python twisted pyopenssl m2crypto

2
推荐指数
1
解决办法
1352
查看次数

使用PyOpenSSL提取X.509证书自定义扩展的值

使用Python和PyOpenSSL,有没有办法检索自定义扩展的价值?通过自定义扩展,我的意思是使用在http://www.openssl.org/docs/apps/x509v3_config.html的 ARBITRARY EXTENSIONS下描述的任意扩展格式编码的扩展.

此外,是否可以使用PyOpenSSL创建包含此类扩展的证书?

如果其中任何一个的答案都是"否",我也会对如何使用任何其他Python库执行此操作的指针感兴趣.我不想对OpenSSL命令行应用程序执行系统调用.

python pyopenssl x509

2
推荐指数
1
解决办法
8631
查看次数

为什么 pyOpenSSL 有 OpenSSL DLL 的单独副本?

我正在Python 2.7.8下开发。其中的 _ssl.pyd 是使用 OpenSSL 1.0.1h 构建的。

但是,我还有 pyOpenSSL 0.10(我知道,旧版本)来满足所需的依赖关系。pyOpenSSL 包括 libeay32.dll 和 ssleay32.dll 版本 0.9.8o。

这是怎么回事?是因为 pyOpenSSL 提供了 OpenSSL 库的直接接口吗?

python openssl pyopenssl

2
推荐指数
1
解决办法
4115
查看次数

致命错误:在pypy中找不到'openssl/e_os2.h'文件

当我运行命令pypy -m pip安装加密

然后我有以下错误:

cc -arch x86_64 -O2 -fPIC -Wimplicit -I/opt/pypy-5.0.1/include -c build/temp.macosx-10.10-x86_64-2.7/_openssl.c -o build/temp.macosx-10.10-x86_64 -2.7/build/temp.macosx-10.10-x86_64-2.7/_openssl.o build/temp.macosx-10.10-x86_64-2.7/_openssl.c:423:10:致命错误:'openssl/e_os2.h'文件没有发现生成#include ^ 1错误.错误:命令'cc'失败,退出状态为1

----------------------------------------
Run Code Online (Sandbox Code Playgroud)

命令"/ usr/local/bin/pypy -u -c"import setuptools,tokenize; file ='/ private/var/folders/_t/8l_tq9210xl4bzlhkspnv8br0000gn/T/pip-build-Gjhf5l/cryptography/setup.py'; exec(compile(getattr(tokenize,'open',open)(file).read() .replace('\ r \n','\n'),file,'exec'))"install --record /var/folders/_t/8l_tq9210xl4bzlhkspnv8br0000gn/T/pip-6_y8I9-record/install-record.txt --single-version-external-managed --compile"失败,错误代码为1/private/var/folders/_t/8l_tq9210xl4bzlhkspnv8br0000gn/T/pip-build-Gjhf5l/cryptography /

python cryptography pypy pyopenssl python-2.7

2
推荐指数
1
解决办法
747
查看次数

Pyopenssl验证文件签名

我想使用pyopenssl验证下载文件的签名和证书,但文档不清楚,谷歌没有帮助.

我在用户的计算机上有一个根CA证书,现在当用户下载文件时,我将随之发送证书和签名.首先,我需要在机器上使用rootCA验证证书,然后我需要用文件验证签名

在openssl中,我可以使用以下来验证ca证书

openssl verify -CAfile <root_pem> <cert_pem>
Run Code Online (Sandbox Code Playgroud)

以及以下验证文件

openssl dgst <algo> -verify <cert_pub_key> -signature <signature> <file>
Run Code Online (Sandbox Code Playgroud)

我正在寻找使用python进行相同的方式,最好是pyopenssl

python pyopenssl

2
推荐指数
1
解决办法
2060
查看次数

无法为 Python 3 安装 pyOpenSSL

我正在运行一个依赖于 OpenSSL 的 Pyhon3 脚本,它依赖于 OpenSSL。但是,我在安装它时遇到问题。

# pip3 install pyOpenSSL
Downloading/unpacking pyOpenSSL
  Downloading pyOpenSSL-17.4.0-py2.py3-none-any.whl (52kB): 52kB downloaded
Requirement already satisfied (use --upgrade to upgrade): six>=1.5.2 in /usr/lib/python3/dist-packages (from pyOpenSSL)
Downloading/unpacking cryptography>=1.9 (from pyOpenSSL)
  Downloading cryptography-2.1.3.tar.gz (441kB): 441kB downloaded
  Running setup.py (path:/tmp/pip-build-ljoosnix/cryptography/setup.py) egg_info for package cryptography
    error in cryptography setup command: Invalid environment marker: python_version < '3'
    Complete output from command python setup.py egg_info:
    error in cryptography setup command: Invalid environment marker: python_version < '3'

----------------------------------------
Cleaning up...
Command python setup.py …
Run Code Online (Sandbox Code Playgroud)

pip pyopenssl python-3.x

2
推荐指数
1
解决办法
6336
查看次数

如何使用 pyOpenssl 解码 CSR

从网页中获取一个字符串作为它

-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDPzCCAqgCAQAwZDELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAmJqMQswCQYDVQQH
EwJiajERMA8GA1UEChMIbXhjei5uZXQxETAPBgNVBAsTCG14Y3oubmV0MRUwEwYD
VQQDEwx3d3cubXhjei5uZXQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMQ7
an4v6pHRusBA0prMWXMWJCXY1AO1H0X8pvZj96T5GWg++JPCQE9guPgGwlD02U0B
NDoEABeD1fwyKZ+JV5UFiOeSjO5sWrzIupdMI7hf34UaPNxHo6r4bLYEykw/Rnmb
GKnNcD4QlPkypE+mLR4p0bnHZhe3lOlNtgd6NpXbAgMBAAGgggGZMBoGCisGAQQB
gjcNAgMxDBYKNS4yLjM3OTAuMjB7BgorBgEEAYI3AgEOMW0wazAOBgNVHQ8BAf8E
BAMCBPAwRAYJKoZIhvcNAQkPBDcwNTAOBggqhkiG9w0DAgICAIAwDgYIKoZIhvcN
AwQCAgCAMAcGBSsOAwIHMAoGCCqGSIb3DQMHMBMGA1UdJQQMMAoGCCsGAQUFBwMB
MIH9BgorBgEEAYI3DQICMYHuMIHrAgEBHloATQBpAGMAcgBvAHMAbwBmAHQAIABS
AFMAQQAgAFMAQwBoAGEAbgBuAGUAbAAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABp
AGMAIABQAHIAbwB2AGkAZABlAHIDgYkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAADANBgkqhkiG9w0BAQUFAAOBgQBIKHVhHb9FZdVLV4VZ
9DK4aBSuYY//jlIpvsfMIdHXfAsuan7w7PH87asp1wdb6lD9snvLZix1UGK7VQg6
wUFYNlMqJh1m7ITVvzhjdnx7EzCKkBXSxEom4mwbvSNvzqOKAWsDE0gvHQ9aCSby
NFBQQMoW94LqrG/kuIQtjwVdZA==
-----END NEW CERTIFICATE REQUEST-----
Run Code Online (Sandbox Code Playgroud)

如何将其解码为纯文本

Certificate information
Common name: www.xxx.net
Organization:xxx.net
Organizational unit:xxx.net
City/locality:bj
State/province:bj
Country:CN
Signature algorithm:SHA1
Key algorithm:RSA
Key size:1024
Run Code Online (Sandbox Code Playgroud)

我知道有第三方 pyopenssl,但不确定如何从 Web 前端处理字符串缓冲区。或者你有什么更好的主意?谢谢

python pyopenssl csr decoder

1
推荐指数
1
解决办法
4783
查看次数

使用 Python 从 PE 文件中提取软件签名证书

当尝试使用从 PE 文件中提取证书时cryptography,失败并显示ValueError: Unable to load certificate. 我可以使用命令行从同一个 PE 文件中正确提取subprocess证书openssl。我想了解使用的代码版本出了什么问题cryptography

我使用的是Python 3.7.1、加密2.4.2和pefile 2018.8.8

import pefile
from cryptography import x509
from cryptography.hazmat.backends import default_backend

pe = pefile.PE(fname)
pe.parse_data_directories(directories=[pefile.DIRECTORY_ENTRY['IMAGE_DIRECTORY_ENTRY_SECURITY']])
sigoff = 0
siglen = 0
for s in pe.__structures__:
    if s.name == 'IMAGE_DIRECTORY_ENTRY_SECURITY':
        sigoff = s.VirtualAddress
        siglen = s.Size
pe.close()
with open(fname, 'rb') as fh:
    fh.seek(sigoff)
    thesig = fh.read(siglen)
cert = x509.load_der_x509_certificate(thesig[8:], default_backend())
Run Code Online (Sandbox Code Playgroud)

这失败了ValueError: Unable to load certificate

python openssl pyopenssl portable-executable python-cryptography

1
推荐指数
1
解决办法
2400
查看次数

Pip 在安装软件包时挂起

我在虚拟环境中使用 django。我正在使用 powershell 并尝试安装 pyopenssl。

内部虚拟环境:

点版本 = 19.2.3

蟒蛇版本= 3.8.3

外部虚拟环境:

点版本 = 21.2.4

蟒蛇版本= 3.8.3

我尝试使用 python -m pip install -U pip and升级虚拟环境中的 pip pip install --upgrade pip ,但它被挂起,没有产生任何输出,这里是 屏幕截图

我尝试pip install pyopenssl

(bookmarks) bookmarks> pip install pyopenssl
Collecting pyopenssl
  Using cached https://files.pythonhosted.org/packages/b2/5e/06351ede29fd4899782ad335c2e02f1f862a887c20a3541f17c3fa1a3525/pyOpenSSL-20.0.1-py2.py3-none-any.whl
Collecting six>=1.5.2 (from pyopenssl)
  Using cached https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl
Collecting cryptography>=3.2 (from pyopenssl)
  Using cached https://files.pythonhosted.org/packages/cc/98/8a258ab4787e6f835d350639792527d2eb7946ff9fc0caca9c3f4cf5dcfe/cryptography-3.4.8.tar.gz
  Installing build dependencies ...
Run Code Online (Sandbox Code Playgroud)

它挂在了Installing build dependencies ...。我等了30分钟但什么也没发生。

我也尝试过python -m pip install pyopenssl

(bookmarks) bookmarks> …
Run Code Online (Sandbox Code Playgroud)

python pip pyopenssl

1
推荐指数
1
解决办法
2万
查看次数