From 4acc5b43b6914c96b3d2833539b77dac472cb19c Mon Sep 17 00:00:00 2001 From: Tomas Krizek Date: Wed, 18 Jul 2018 13:17:39 +0200 Subject: [PATCH] dns/hash: keep module for backward compatibility, add deprecation warning --- ChangeLog | 5 +++++ dns/__init__.py | 1 + dns/hash.py | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 dns/hash.py diff --git a/ChangeLog b/ChangeLog index 0c76f969..b43537d4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-07-18 Tomas Krizek + + * dns/hash.py: added deprecation warning. Module is no longer + necessary and will be removed in future versions. + 2017-12-21 Daniel Robbins * dns/dnssec.py: migrated code from pycrypto (apparently no diff --git a/dns/__init__.py b/dns/__init__.py index 3852729b..c848e485 100644 --- a/dns/__init__.py +++ b/dns/__init__.py @@ -22,6 +22,7 @@ __all__ = [ 'entropy', 'exception', 'flags', + 'hash', 'inet', 'ipv4', 'ipv6', diff --git a/dns/hash.py b/dns/hash.py new file mode 100644 index 00000000..5176137e --- /dev/null +++ b/dns/hash.py @@ -0,0 +1,35 @@ +# Copyright (C) 2011 Nominum, Inc. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose with or without fee is hereby granted, +# provided that the above copyright notice and this permission notice +# appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +"""Hashing backwards compatibility wrapper""" + +import hashlib +import warnings + +warnings.warn( + "dns.hash module will be removed in future versions. Please use hashlib instead.", + DeprecationWarning) + +hashes = {} +hashes['MD5'] = hashlib.md5 +hashes['SHA1'] = hashlib.sha1 +hashes['SHA224'] = hashlib.sha224 +hashes['SHA256'] = hashlib.sha256 +hashes['SHA384'] = hashlib.sha384 +hashes['SHA512'] = hashlib.sha512 + + +def get(algorithm): + return hashes[algorithm.upper()] -- 2.47.3