diff --git a/dkim/__init__.py b/dkim/__init__.py index dca0e0a..3eb6bc2 100644 --- a/dkim/__init__.py +++ b/dkim/__init__.py @@ -296,10 +296,10 @@ class DKIM(object): return False # Currently, we only validate the first DKIM-Signature line found. - try: - sig = parse_tag_value(sigheaders[0][1]) - except InvalidTagValueList,e: - raise MessageFormatError(e) + #try: + sig = parse_tag_value(sigheaders[0][1]) + #except InvalidTagValueList,e: + # raise MessageFormatError(e) sig = parse_tag_value(sigheaders[0][1]) logger = self.logger diff --git a/dkim/util.py b/dkim/util.py index 13c56d4..84ff1b2 100644 --- a/dkim/util.py +++ b/dkim/util.py @@ -55,7 +55,7 @@ def parse_tag_value(tag_list): @param tag_list: A string containing a DKIM Tag=Value list. """ tags = {} - tag_specs = tag_list.split(b';') + tag_specs = tag_list.strip().split(b';') # Trailing semicolons are valid. if not tag_specs[-1]: tag_specs.pop() diff --git a/dkimverify.py b/dkimverify.py index 3294c74..1af0868 100644 --- a/dkimverify.py +++ b/dkimverify.py @@ -32,7 +32,8 @@ if sys.version_info[0] >= 3: sys.stdin = sys.stdin.detach() message = sys.stdin.read() -if not dkim.verify(message): +d = dkim.DKIM(message) +if not d.verify(): print("signature verification failed") sys.exit(1) print("signature ok") diff --git a/testutil.py b/testutil.py index 578cc42..52ef097 100644 --- a/testutil.py +++ b/testutil.py @@ -13,7 +13,8 @@ class ParseTestCase(unittest.TestCase): 3KzW0yB9JHwiDCw1EioVkv+OMHhAYzoIypA0bQyi2bc=; ''' sig = parse_tag_value(hval) - print sig + self.assertEquals(sig[b't'],'1308078492') + self.assertEquals(len(sig),11) def suite(): s = unittest.makeSuite(ParseTestCase,'test')