diff options
| author | Eli Collins <elic@assurancetechnologies.com> | 2011-01-25 01:17:40 +0000 |
|---|---|---|
| committer | Eli Collins <elic@assurancetechnologies.com> | 2011-01-25 01:17:40 +0000 |
| commit | 2ba159bb201d3da7fe5fcd533e1a6531a3489062 (patch) | |
| tree | 6f2a3e51150d9c729f3695d36688a7f1637da89d /passlib/tests | |
| parent | 5e9e909043cab4133443c574ef4318bb229e87ec (diff) | |
| download | passlib-2ba159bb201d3da7fe5fcd533e1a6531a3489062.tar.gz | |
work on lanman hash
Diffstat (limited to 'passlib/tests')
| -rw-r--r-- | passlib/tests/test_des_crypt.py | 52 |
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 #========================================================= |
