Test case for tab in FWS bug. Use minkey=512 for test cases.

This commit is contained in:
Stuart D. Gathman
2012-10-27 10:48:29 -04:00
parent a88f5f9973
commit 5f2024fdf8
2 changed files with 11 additions and 3 deletions
+2 -2
View File
@@ -591,13 +591,13 @@ def sign(message, selector, domain, privkey, identity=None,
include_headers = d.all_sign_headers() include_headers = d.all_sign_headers()
return d.sign(selector, domain, privkey, identity=identity, canonicalize=canonicalize, include_headers=include_headers, length=length) return d.sign(selector, domain, privkey, identity=identity, canonicalize=canonicalize, include_headers=include_headers, length=length)
def verify(message, logger=None, dnsfunc=get_txt): def verify(message, logger=None, dnsfunc=get_txt, minkey=1024):
"""Verify the first (topmost) DKIM signature on an RFC822 formatted message. """Verify the first (topmost) DKIM signature on an RFC822 formatted message.
@param message: an RFC822 formatted message (with either \\n or \\r\\n line endings) @param message: an RFC822 formatted message (with either \\n or \\r\\n line endings)
@param logger: a logger to which debug info will be written (default None) @param logger: a logger to which debug info will be written (default None)
@return: True if signature verifies or False otherwise @return: True if signature verifies or False otherwise
""" """
d = DKIM(message,logger=logger) d = DKIM(message,logger=logger,minkey=minkey)
try: try:
return d.verify(dnsfunc=dnsfunc) return d.verify(dnsfunc=dnsfunc)
except DKIMException as x: except DKIMException as x:
+9 -1
View File
@@ -135,7 +135,15 @@ b/mPfjC0QJTocVBq6Za/PlzfV+Py92VaCak19F4WrbVTK5Gg5tW220MCAwEAAQ=="""
# simple canonicalization. # simple canonicalization.
# http://tools.ietf.org/html/rfc4871#section-3.5 # http://tools.ietf.org/html/rfc4871#section-3.5
signed = dkim.fold(dkim_header) + sample_msg signed = dkim.fold(dkim_header) + sample_msg
result = dkim.verify(signed,dnsfunc=lambda x: _dns_responses[x]) result = dkim.verify(signed,dnsfunc=lambda x: _dns_responses[x],
minkey=512)
self.assertTrue(result)
dkim_header = dkim.fold(dkim_header)
# use a tab for last fold to test tab in FWS bug
pos = dkim_header.rindex(b'\r\n ')
dkim_header = dkim_header[:pos]+b'\r\n\t'+dkim_header[pos+3:]
result = dkim.verify(dkim_header + sample_msg,
dnsfunc=lambda x: _dns_responses[x], minkey=512)
self.assertTrue(result) self.assertTrue(result)
def test_extra_headers(self): def test_extra_headers(self):