Strip leading and trailing whitespace before parsing.
This commit is contained in:
+3
-3
@@ -296,10 +296,10 @@ class DKIM(object):
|
||||
return False
|
||||
|
||||
# Currently, we only validate the first DKIM-Signature line found.
|
||||
try:
|
||||
#try:
|
||||
sig = parse_tag_value(sigheaders[0][1])
|
||||
except InvalidTagValueList,e:
|
||||
raise MessageFormatError(e)
|
||||
#except InvalidTagValueList,e:
|
||||
# raise MessageFormatError(e)
|
||||
|
||||
sig = parse_tag_value(sigheaders[0][1])
|
||||
logger = self.logger
|
||||
|
||||
+1
-1
@@ -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()
|
||||
|
||||
+2
-1
@@ -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")
|
||||
|
||||
+2
-1
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user