it-swarm.com.de

Anstößige KryptografieDeprecationWarning wegen der fehlenden hmac.compare_time-Funktion überall

Die Dinge liefen gut, bis eines meiner Projekte anfing, dies überall zu drucken, zumindest einmal bei jeder Ausführung:

local/lib/python2.7/site-packages/cryptography/hazmat/primitives/constant_time.py:26: CryptographyDeprecationWarning: Support for your Python version is deprecated. The next version of cryptography will remove support. Please upgrade to a 2.7.x release that supports hmac.compare_digest as soon as possible.

Ich habe keine Ahnung, warum er gestartet wurde, und die Ausgabe der Anwendungen/Tools wird unterbrochen, insbesondere wenn sie von anderen Tools erfasst und verwendet wird. Wie viele Schwierigkeiten im Laufe der Zeit bin ich ziemlich sicher, dass es sich auf urllib und durch Assoziation requests bezieht. Schlimmer noch, ich habe so viele Projekte und Querabhängigkeiten, dass ich nicht alle Importe und Verzweigungen mit dem Aufruf an warnings.filterwarnings() aktualisieren kann, um die Warnung zu unterdrücken.

Ich habe Python 2.7.6. Anscheinend geht das in 2.7.7 weg. Nur habe ich einige Systeme, die 2.7.6 haben, wo ich nicht die Warnungen sehe. In einer Version kann etwas deaktiviert sein oder auch nicht, und ich habe es möglicherweise versehentlich durch eine andere Version ersetzt.

Mein Ubuntu, Python, urllib, Anfragen (mit der Sicherheitsoption), Kryptografie und hmac sind alle identische Versionen/Builds auf Systemen, auf denen die Warnung ausgegeben wird, und auf Systemen, die dies nicht tun.

Es scheint keine relevanten Warnungen oder Ankündigungen online zu geben, und es scheint, dass jedes verwandte Projekt zu diesem Zeitpunkt statisch/stabil ist (obwohl 'hmac' über PIP installiert werden kann, hat sich dies seit acht Jahren nicht geändert).

4
Dustin Oprea

Ich habe diesen Fehler für einige Zeit getroffen. Für meine Umgebung war es ein Problem, Python auf eine höhere Version als 2.7.6 zu aktualisieren. Die einfachere Lösung war das Downgrade des Kryptographiemoduls mit pip:

pip2.7 install cryptography==2.2.2

Ich denke, die beste Lösung ist jedoch, Ihre Python-Version zu aktualisieren

16
mbenhalima

Ich bekam diese Warnung für einen einfachen requests.get-Anruf. Diese Warnung wird gedruckt, wenn das Modul cryptography.hazmat.primitives.constant_time geladen wird. Daher sollte dies normalerweise nur einmal pro Python-Programm erfolgen. Wenn Sie es oft sehen, muss dies darauf zurückzuführen sein, dass ein Python-Programm (wie ein Hilfsprogramm) mehrmals ausgeführt wird. Sie müssen nur dieses Programm identifizieren und den folgenden Code zum Haupteinstiegspunkt hinzufügen:

import cryptography
from cryptography import utils
with warnings.catch_warnings():
    warnings.simplefilter('ignore', cryptography.utils.DeprecatedIn23)
    import cryptography.hazmat.primitives.constant_time
2
haridsv