summaryrefslogtreecommitdiff
path: root/passlib/tests
diff options
context:
space:
mode:
authorEli Collins <elic@assurancetechnologies.com>2011-01-25 01:17:40 +0000
committerEli Collins <elic@assurancetechnologies.com>2011-01-25 01:17:40 +0000
commit2ba159bb201d3da7fe5fcd533e1a6531a3489062 (patch)
tree6f2a3e51150d9c729f3695d36688a7f1637da89d /passlib/tests
parent5e9e909043cab4133443c574ef4318bb229e87ec (diff)
downloadpasslib-2ba159bb201d3da7fe5fcd533e1a6531a3489062.tar.gz
work on lanman hash
Diffstat (limited to 'passlib/tests')
-rw-r--r--passlib/tests/test_des_crypt.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/passlib/tests/test_des_crypt.py b/passlib/tests/test_des_crypt.py
index ea8898a..6553a77 100644
--- a/passlib/tests/test_des_crypt.py
+++ b/passlib/tests/test_des_crypt.py
@@ -131,6 +131,58 @@ if enable_test("backends"):
def get_crypt(self):
return mod.crypt
+
+class DesTest(TestCase):
+
+ #test vectors taken from http://www.skepticfiles.org/faq/testdes.htm
+
+ #(key, plaintext, ciphertext) all as 64 bit
+ test_des_vectors = [
+ (int(line[4:21],16), int(line[21:38],16), int(line[38:],16))
+ for line in
+ """ 0000000000000000 0000000000000000 8CA64DE9C1B123A7
+ FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF 7359B2163E4EDC58
+ 3000000000000000 1000000000000001 958E6E627A05557B
+ 1111111111111111 1111111111111111 F40379AB9E0EC533
+ 0123456789ABCDEF 1111111111111111 17668DFC7292532D
+ 1111111111111111 0123456789ABCDEF 8A5AE1F81AB8F2DD
+ 0000000000000000 0000000000000000 8CA64DE9C1B123A7
+ FEDCBA9876543210 0123456789ABCDEF ED39D950FA74BCC4
+ 7CA110454A1A6E57 01A1D6D039776742 690F5B0D9A26939B
+ 0131D9619DC1376E 5CD54CA83DEF57DA 7A389D10354BD271
+ 07A1133E4A0B2686 0248D43806F67172 868EBB51CAB4599A
+ 3849674C2602319E 51454B582DDF440A 7178876E01F19B2A
+ 04B915BA43FEB5B6 42FD443059577FA2 AF37FB421F8C4095
+ 0113B970FD34F2CE 059B5E0851CF143A 86A560F10EC6D85B
+ 0170F175468FB5E6 0756D8E0774761D2 0CD3DA020021DC09
+ 43297FAD38E373FE 762514B829BF486A EA676B2CB7DB2B7A
+ 07A7137045DA2A16 3BDD119049372802 DFD64A815CAF1A0F
+ 04689104C2FD3B2F 26955F6835AF609A 5C513C9C4886C088
+ 37D06BB516CB7546 164D5E404F275232 0A2AEEAE3FF4AB77
+ 1F08260D1AC2465E 6B056E18759F5CCA EF1BF03E5DFA575A
+ 584023641ABA6176 004BD6EF09176062 88BF0DB6D70DEE56
+ 025816164629B007 480D39006EE762F2 A1F9915541020B56
+ 49793EBC79B3258F 437540C8698F3CFA 6FBF1CAFCFFD0556
+ 4FB05E1515AB73A7 072D43A077075292 2F22E49BAB7CA1AC
+ 49E95D6D4CA229BF 02FE55778117F12A 5A6B612CC26CCE4A
+ 018310DC409B26D6 1D9D5C5018F728C2 5F4C038ED12B2E41
+ 1C587F1C13924FEF 305532286D6F295A 63FAC0D034D9F793
+ 0101010101010101 0123456789ABCDEF 617B3A0CE8F07100
+ 1F1F1F1F0E0E0E0E 0123456789ABCDEF DB958605F8C8C606
+ E0FEE0FEF1FEF1FE 0123456789ABCDEF EDBFD1C66C29CCC7
+ 0000000000000000 FFFFFFFFFFFFFFFF 355550B2150E2451
+ FFFFFFFFFFFFFFFF 0000000000000000 CAAAAF4DEAF1DBAE
+ 0123456789ABCDEF 0000000000000000 D5D44FF720683D0D
+ FEDCBA9876543210 FFFFFFFFFFFFFFFF 2A2BB008DF97C2F2
+ """.split("\n") if line.strip()
+ ]
+
+ def test_des_encrypt_int_block(self):
+ from passlib.utils._slow_des_crypt import des_encrypt_int_block
+ for k,p,c in self.test_des_vectors:
+ result = des_encrypt_int_block(k,p)
+ self.assertEqual(result, c, "key=%r p=%r:" % (k,p))
+
#=========================================================
#EOF
#=========================================================