Commit c2aa09ad authored by Brett Cannon's avatar Brett Cannon

Have the sha module raise a DeprecationWarning as specified in PEP 4.

parent 03b75fa4
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
# Copyright (C) 2005 Gregory P. Smith (greg@electricrain.com) # Copyright (C) 2005 Gregory P. Smith (greg@electricrain.com)
# Licensed to PSF under a Contributor Agreement. # Licensed to PSF under a Contributor Agreement.
import warnings
warnings.warn("the sha module is deprecated; use the hashlib module instead",
DeprecationWarning, 2)
from hashlib import sha1 as sha from hashlib import sha1 as sha
new = sha new = sha
......
import hmac import hmac
import sha from hashlib import sha1
import unittest import unittest
from test import test_support from test import test_support
...@@ -43,7 +43,7 @@ class TestVectorsTestCase(unittest.TestCase): ...@@ -43,7 +43,7 @@ class TestVectorsTestCase(unittest.TestCase):
def test_sha_vectors(self): def test_sha_vectors(self):
def shatest(key, data, digest): def shatest(key, data, digest):
h = hmac.HMAC(key, data, digestmod=sha) h = hmac.HMAC(key, data, digestmod=sha1)
self.assertEqual(h.hexdigest().upper(), digest.upper()) self.assertEqual(h.hexdigest().upper(), digest.upper())
shatest(chr(0x0b) * 20, shatest(chr(0x0b) * 20,
...@@ -95,11 +95,11 @@ class ConstructorTestCase(unittest.TestCase): ...@@ -95,11 +95,11 @@ class ConstructorTestCase(unittest.TestCase):
def test_withmodule(self): def test_withmodule(self):
# Constructor call with text and digest module. # Constructor call with text and digest module.
import sha from hashlib import sha1
try: try:
h = hmac.HMAC("key", "", sha) h = hmac.HMAC("key", "", sha1)
except: except:
self.fail("Constructor call with sha module raised exception.") self.fail("Constructor call with hashlib.sha1 raised exception.")
class SanityTestCase(unittest.TestCase): class SanityTestCase(unittest.TestCase):
......
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
import warnings import warnings
warnings.filterwarnings("ignore", "the md5 module is deprecated.*", warnings.filterwarnings("ignore", "the md5 module is deprecated.*",
DeprecationWarning) DeprecationWarning)
warnings.filterwarnings("ignore", "the sha module is deprecated.*",
DeprecationWarning)
import md5, sha, hmac import md5, sha, hmac
......
...@@ -4,6 +4,10 @@ ...@@ -4,6 +4,10 @@
# Publication 180-1, Secure Hash Standard, 1995 April 17 # Publication 180-1, Secure Hash Standard, 1995 April 17
# http://www.itl.nist.gov/div897/pubs/fip180-1.htm # http://www.itl.nist.gov/div897/pubs/fip180-1.htm
import warnings
warnings.filterwarnings("ignore", "the sha module is deprecated.*",
DeprecationWarning)
import sha import sha
import unittest import unittest
from test import test_support from test import test_support
......
...@@ -529,8 +529,8 @@ def uuid4(): ...@@ -529,8 +529,8 @@ def uuid4():
def uuid5(namespace, name): def uuid5(namespace, name):
"""Generate a UUID from the SHA-1 hash of a namespace UUID and a name.""" """Generate a UUID from the SHA-1 hash of a namespace UUID and a name."""
import sha from hashlib import sha1
hash = sha.sha(namespace.bytes + name).digest() hash = sha1(namespace.bytes + name).digest()
return UUID(bytes=hash[:16], version=5) return UUID(bytes=hash[:16], version=5)
# The following standard UUIDs are for use with uuid3() or uuid5(). # The following standard UUIDs are for use with uuid3() or uuid5().
......
...@@ -220,6 +220,8 @@ Core and builtins ...@@ -220,6 +220,8 @@ Core and builtins
Library Library
------- -------
- sha now raises a DeprecationWarning upon import.
- md5 now raises a DeprecationWarning upon import. - md5 now raises a DeprecationWarning upon import.
- mimify now raises a DeprecationWarning upon import. - mimify now raises a DeprecationWarning upon import.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment