I'd guess it's related to upgraded version of build tools in our release
pipeline -- possibly related to abi3?

Alex

On Wed, Apr 21, 2021 at 12:31 PM Łukasz Hanuszczak <hanuszc...@google.com>
wrote:

> Hello again,
>
> On Thu, Apr 15, 2021 at 2:30 PM Alex Gaynor <alex.gay...@gmail.com> wrote:
>
>> I don't believe we made any fundamental changes to our DLLs -- all we've
>> done is update OpenSSL versions over this period.
>>
>
> There is one thing I noticed that changed between 2.9.2 and 3.3.2: all DLL
> files in `cryptography\hazmat\bindings` (`_constant_time`, `_openssl`,
> `_padding`) in 2.9.2 are suffixed with platform compatibility tags (so it
> is `_openssl.cp36-win_amd64.pyd`), whereas in 3.3.2 they are not (it is
> just `_openssl.pyd`). While this might not be the culprit here, it is
> definitely suspicious—do you have any ideas what caused this change and
> whether this can affect how the DLL is loaded?
>
> Thank you,
> Łukasz
>
>
>>
> We have definitely not introduced any new system dependencies.
>>
>> Alex
>>
>> On Thu, Apr 15, 2021 at 8:10 AM Łukasz Hanuszczak via Cryptography-dev <
>> cryptography-dev@python.org> wrote:
>>
>>> Hello,
>>>
>>> Our team uses two continuous integration systems that build and package
>>> the Windows distribution of our project. One of them is internal and runs
>>> on Windows 7, the other one is AppVeyor (running Windows 2012, which is
>>> based on Windows 8 best to my knowledge) that works with our open-source
>>> repository on GitHub.
>>>
>>> Both systems use the same script that initializes the virtual
>>> environment, upgrades pip, installs dependencies. The only significant
>>> difference is that the internal pipeline does not have internet access and
>>> uses vendored wheels (though downloaded from PyPI upfront).
>>>
>>> Both systems use exactly the same version of Python and pip, as
>>> witnessed by the output of `pip debug --verbose`:
>>>
>>> ```
>>> (...)
>>> pip version: pip 21.0.1 from c:\buildenv\python_64\lib\site-packages\pip
>>> (python 3.6)
>>> sys.version: 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC
>>> v.1916 64 bit (AMD64)]
>>> (...)
>>> ```
>>>
>>> Unfortunately, after upgrading `cryptography` from 2.9.2 to 3.3.2, the
>>> AppVeyor task started to fail with the following error (during runtime, the
>>> package installation process itself works fine):
>>>
>>> ```
>>> (...)
>>>   File
>>> "c:\buildenv\python_64\lib\site-packages\cryptography\hazmat\backends\openssl\__init__.py",
>>> line 7, in <module>
>>>     from cryptography.hazmat.backends.openssl.backend import backend
>>>   File
>>> "c:\buildenv\python_64\lib\site-packages\cryptography\hazmat\backends\openssl\backend.py",
>>> line 117, in <module>
>>>     from cryptography.hazmat.bindings.openssl import binding
>>>   File
>>> "c:\buildenv\python_64\lib\site-packages\cryptography\hazmat\bindings\openssl\binding.py",
>>> line 14, in <module>
>>>     from cryptography.hazmat.bindings._openssl import ffi, lib
>>> ImportError: DLL load failed: The specified module could not be found.
>>> ```
>>>
>>> I have verified that on both systems there is the `cryptography` OpenSSL
>>> DLL available
>>> (`c:\buildenv\python_64\lib\site-packages\cryptography\hazmat\bindings\_openssl.pyd`)
>>> and that it has exactly the same size (3,107,328 bytes). I have also
>>> checked and tried using a newer version of `cryptography` (3.4.7) on
>>> AppVeyor but the problem does not go away.
>>>
>>> Has there been any change in handling of the OpenSSL DLL between 2.9.2
>>> and 3.3.2? Or is there any other reason that might hint the source of
>>> issues? Is it possible that the DLL itself introduced some new system
>>> dependency that has to be installed first?
>>>
>>> Thank you,
>>> Łukasz
>>> _______________________________________________
>>> Cryptography-dev mailing list
>>> Cryptography-dev@python.org
>>> https://mail.python.org/mailman/listinfo/cryptography-dev
>>>
>>
>>
>> --
>> All that is necessary for evil to succeed is for good people to do
>> nothing.
>>
>

-- 
All that is necessary for evil to succeed is for good people to do nothing.
_______________________________________________
Cryptography-dev mailing list
Cryptography-dev@python.org
https://mail.python.org/mailman/listinfo/cryptography-dev

Reply via email to