Add Diane Trout's addition sig validation tests.

This commit is contained in:
Stuart D Gathman
2015-02-21 20:06:36 -05:00
parent c6523a3d72
commit b8722f4a66
2 changed files with 32 additions and 1 deletions
+31
View File
@@ -18,6 +18,7 @@
import os.path import os.path
import unittest import unittest
import time
import dkim import dkim
@@ -224,6 +225,36 @@ b/mPfjC0QJTocVBq6Za/PlzfV+Py92VaCak19F4WrbVTK5Gg5tW220MCAwEAAQ==
sigerror = True sigerror = True
self.assertTrue(sigerror) self.assertTrue(sigerror)
def test_validate_signature_fields(self):
sig = {b'v': b'1',
b'a': b'rsa-sha256',
b'b': b'K/UUOt8lCtgjp3kSTogqBm9lY1Yax/NwZ+bKm39/WKzo5KYe3L/6RoIA/0oiDX4kO\n \t Qut49HCV6ZUe6dY9V5qWBwLanRs1sCnObaOGMpFfs8tU4TWpDSVXaNZAqn15XVW0WH\n \t EzOzUfVuatpa1kF4voIgSbmZHR1vN3WpRtcTBe/I=',
b'bh': b'n0HUwGCP28PkesXBPH82Kboy8LhNFWU9zUISIpAez7M=',
b'c': b'simple/simple',
b'd': b'kitterman.com',
b'h': b'From:To:Subject:Date:Cc:MIME-Version:Content-Type:\n \t Content-Transfer-Encoding:Message-Id',
b's': b'2007-00',
b't': b'1299525798'}
dkim.validate_signature_fields(sig)
# try new version
sigVer = sig.copy()
sigVer[b'v'] = 2
self.assertRaises(dkim.ValidationError, dkim.validate_signature_fields, sigVer)
# try with x
sigX = sig.copy()
sigX[b'x'] = b'1399525798'
dkim.validate_signature_fields(sig)
# try with late t
sigX[b't'] = b'1400000000'
self.assertRaises(dkim.ValidationError, dkim.validate_signature_fields, sigX)
# try without t
now = int(time.time())
sigX[b'x'] = str(now+400000).encode('ascii')
dkim.validate_signature_fields(sigX)
# try when expired a day ago
sigX[b'x'] = str(now - 24*3600).encode('ascii')
self.assertRaises(dkim.ValidationError, dkim.validate_signature_fields, sigX)
def test_suite(): def test_suite():
from unittest import TestLoader from unittest import TestLoader
return TestLoader().loadTestsFromName(__name__) return TestLoader().loadTestsFromName(__name__)
+1 -1
View File
@@ -52,7 +52,7 @@ def parse_tag_value(tag_list):
Interprets the syntax specified by RFC4871 section 3.2. Interprets the syntax specified by RFC4871 section 3.2.
Assumes that folding whitespace is already unfolded. Assumes that folding whitespace is already unfolded.
@param tag_list: A string containing a DKIM Tag=Value list. @param tag_list: A bytes string containing a DKIM Tag=Value list.
""" """
tags = {} tags = {}
tag_specs = tag_list.strip().split(b';') tag_specs = tag_list.strip().split(b';')