New issue 3040: ssl module in pypy3.6 does not have ssl.OP_NO_SSLv2
https://bitbucket.org/pypy/pypy/issues/3040/ssl-module-in-pypy36-does-not-have

Amit Ripshtos:

Hey guys, thanks for working on pypy!

I found an issue when using aiohttp with pypy3.6 and doing verify=False , the 
aiohttp code creates SSLContext by doing:

```
sslcontext = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
sslcontext.options |= ssl.OP_NO_SSLv2
sslcontext.options |= ssl.OP_NO_SSLv3
sslcontext.options |= ssl.OP_NO_COMPRESSION
sslcontext.set_default_verify_paths()
return sslcontext
```

‌

However, this code fails with the following exception:

```
AttributeError: module 'ssl' has no attribute 'OP_NO_SSLv2'
```

‌

I tried to take a look and I saw that in pypy3.6, the attribute/option 
“OP\_NO\_SSLv2”, therefore the aiohttp package fails when using the 
verify\_ssl=False setting.

‌

**How to mimic the issue:**

Using pypy3.6, try to run this code:

```
import aiohttp

async with 
aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as 
session:
    async with session.request(method='get', url='https://google.com') as 
response:
        response.raise_for_status()
        await response.read()
```

‌

This code will fail with the exception:

`AttributeError: module 'ssl' has no attribute 'OP_NO_SSLv2'`

‌

**How it should be:**

There should be be OP\_NO\_SSLv2 attribute under ssl module.

‌

I will try to fix the issue on my own, however I’m a newbie to pypy code , 
therefore I might need help.

‌

Thanks and have a great week,

Amit.


_______________________________________________
pypy-issue mailing list
pypy-issue@python.org
https://mail.python.org/mailman/listinfo/pypy-issue

Reply via email to