diff --git a/dkim/__init__.py b/dkim/__init__.py index dbcfa8d..7b9a663 100644 --- a/dkim/__init__.py +++ b/dkim/__init__.py @@ -591,13 +591,13 @@ def sign(message, selector, domain, privkey, identity=None, include_headers = d.all_sign_headers() 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. @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) @return: True if signature verifies or False otherwise """ - d = DKIM(message,logger=logger) + d = DKIM(message,logger=logger,minkey=minkey) try: return d.verify(dnsfunc=dnsfunc) except DKIMException as x: diff --git a/dkim/tests/test_dkim.py b/dkim/tests/test_dkim.py index 5805bf2..ed18ce1 100644 --- a/dkim/tests/test_dkim.py +++ b/dkim/tests/test_dkim.py @@ -135,7 +135,15 @@ b/mPfjC0QJTocVBq6Za/PlzfV+Py92VaCak19F4WrbVTK5Gg5tW220MCAwEAAQ==""" # simple canonicalization. # http://tools.ietf.org/html/rfc4871#section-3.5 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) def test_extra_headers(self):