Как отключить EllipticCurvePublicNumbers.encode_point CryptographyDeprecationWarning при использовании Paramiko в Python

CryptographyDeprecationWarning:

encode_point устарел в EllipticCurvePublicNumbers и будет удален в будущей версии. Используйте EllipticCurvePublicKey.public_bytes для получения как сжатой, так и несжатой кодировки точек.


person Rajesh s    schedule 25.02.2019    source источник


Ответы (2)


Это уже исправлено в Paramiko 2.5.0:
https://www.paramiko.org/changelog.html#2.5.0
https://github.com/paramiko/paramiko/pull/1379
https://github.com/paramiko/paramiko/issues/1369

person Martin Prikryl    schedule 25.02.2019
comment
Придется ли нам не забывать проверять cryptography наличие обновлений самостоятельно? Скажем, мы используем этот обходной путь, и они исправят его в версии 2.4.3. Нам придется просто проверять наличие обновлений самостоятельно, да? Или я что-то упускаю? - person BruceWayne; 24.03.2019
comment
@BruceWayne Я не понимаю вашего вопроса. Обновления чего? - person Martin Prikryl; 24.03.2019
comment
криптография. Возможно, я неправильно понял или не совсем понял, как работают библиотеки. - person BruceWayne; 24.03.2019
comment
@BruceWayne В криптографической библиотеке нет ошибок. Проблема в том, что Paramiko использует интерфейс, который устарел в последней версии криптографической библиотеки. Это Парамико нужно обновить. - person Martin Prikryl; 24.03.2019
comment
Оооо, ладно, извините за недоразумение. Спасибо, что прояснил это для меня. - person BruceWayne; 25.03.2019
comment
@MartinPrikryl - имеет те же предупреждения с Python 3.7.2 в Ubuntu 18.04 с paramiko 2.4.2 и cryptography 2.6.2. Сделал понижение (используя приведенный выше ответ) до cryptography 2.4.2, и предупреждения исчезли. - person Guy Avraham; 03.04.2019
comment
Итак, pip3 install --upgrade paramiko действительный путь исправления, верно? - person Johnny Utahh; 11.10.2019
comment
Для Debian Buster в бэкпортах есть обновленный пакет: packages.debian.org/buster- резервные порты/python-paramiko - person Andy Beverley; 23.03.2020

Я добился большего успеха с:

import warnings
warnings.simplefilter("ignore", cryptography.utils.CryptographyDeprecationWarning)
person user9499243    schedule 06.03.2019
comment
Если у вас есть DeprecatedIn23, то у вас должен быть cryptography<=2.4.2, потому что символ переименован в DeprecatedIn25 начиная с версии 2.5. Но если у вас версия 2.4.2, у вас все равно не должно быть проблем, по словам @Martin Prikryl. Я бы предложил сказать cryptography.utils.CryptographyDeprecationWarning. Это работает во всех версиях. Спасибо за подсказку в любом случае. - person Adrian W; 09.03.2019
comment
Использование cryptography.utils.CryptographyDeprecationПредупреждать нас конечно лучше. Спасибо, Адриан. - person user9499243; 10.03.2019