Integrate new tests into existing test suite in dkim.tests
This commit is contained in:
@@ -86,6 +86,49 @@ class TestSignAndVerify(unittest.TestCase):
|
|||||||
res = dkim.verify(sig + self.message, dnsfunc=self.dnsfunc)
|
res = dkim.verify(sig + self.message, dnsfunc=self.dnsfunc)
|
||||||
self.assertFalse(res)
|
self.assertFalse(res)
|
||||||
|
|
||||||
|
def test_dkim_dignature_canonicalization(self):
|
||||||
|
# <https://bugs.edge.launchpad.net/ubuntu/+source/pydkim/+bug/587783>
|
||||||
|
# Relaxed-mode header signing is wrong
|
||||||
|
sample_msg = """\
|
||||||
|
From: mbp@canonical.com
|
||||||
|
To: scottk@example.com
|
||||||
|
Subject: this is my
|
||||||
|
test message
|
||||||
|
""".replace('\n', '\r\n')
|
||||||
|
|
||||||
|
sample_privkey = """\
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIBOwIBAAJBANmBe10IgY+u7h3enWTukkqtUD5PR52Tb/mPfjC0QJTocVBq6Za/
|
||||||
|
PlzfV+Py92VaCak19F4WrbVTK5Gg5tW220MCAwEAAQJAYFUKsD+uMlcFu1D3YNaR
|
||||||
|
EGYGXjJ6w32jYGJ/P072M3yWOq2S1dvDthI3nRT8MFjZ1wHDAYHrSpfDNJ3v2fvZ
|
||||||
|
cQIhAPgRPmVYn+TGd59asiqG1SZqh+p+CRYHW7B8BsicG5t3AiEA4HYNOohlgWan
|
||||||
|
8tKgqLJgUdPFbaHZO1nDyBgvV8hvWZUCIQDDdCq6hYKuKeYUy8w3j7cgJq3ih922
|
||||||
|
2qNWwdJCfCWQbwIgTY0cBvQnNe0067WQIpj2pG7pkHZR6qqZ9SE+AjNTHX0CIQCI
|
||||||
|
Mgq55Y9MCq5wqzy141rnxrJxTwK9ABo3IAFMWEov3g==
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
|
"""
|
||||||
|
|
||||||
|
sample_pubkey = """\
|
||||||
|
-----BEGIN PUBLIC KEY-----
|
||||||
|
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANmBe10IgY+u7h3enWTukkqtUD5PR52T
|
||||||
|
b/mPfjC0QJTocVBq6Za/PlzfV+Py92VaCak19F4WrbVTK5Gg5tW220MCAwEAAQ==
|
||||||
|
-----END PUBLIC KEY-----
|
||||||
|
"""
|
||||||
|
|
||||||
|
sample_dns = """\
|
||||||
|
k=rsa; \
|
||||||
|
p=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANmBe10IgY+u7h3enWTukkqtUD5PR52T\
|
||||||
|
b/mPfjC0QJTocVBq6Za/PlzfV+Py92VaCak19F4WrbVTK5Gg5tW220MCAwEAAQ=="""
|
||||||
|
|
||||||
|
_dns_responses = {'example._domainkey.canonical.com.': sample_dns}
|
||||||
|
for header_mode in [dkim.Relaxed, dkim.Simple]:
|
||||||
|
|
||||||
|
dkim_header = dkim.sign(sample_msg, 'example', 'canonical.com',
|
||||||
|
sample_privkey, canonicalize=(header_mode, dkim.Relaxed))
|
||||||
|
signed = dkim_header + sample_msg
|
||||||
|
|
||||||
|
result = dkim.verify(signed,dnsfunc=lambda x: _dns_responses[x])
|
||||||
|
self.assertTrue(result)
|
||||||
|
|
||||||
def test_suite():
|
def test_suite():
|
||||||
from unittest import TestLoader
|
from unittest import TestLoader
|
||||||
|
|||||||
@@ -61,6 +61,19 @@ class TestParseTagValue(unittest.TestCase):
|
|||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
DuplicateTag, parse_tag_value, b'foo=bar;foo=baz')
|
DuplicateTag, parse_tag_value, b'foo=bar;foo=baz')
|
||||||
|
|
||||||
|
def test_trailing_whitespace(self):
|
||||||
|
hval = '''v=1; a=rsa-sha256; d=facebookmail.com; s=s1024-2011-q2; c=relaxed/simple;
|
||||||
|
q=dns/txt; i=@facebookmail.com; t=1308078492;
|
||||||
|
h=From:Subject:Date:To:MIME-Version:Content-Type;
|
||||||
|
bh=+qPyCOiDQkusTPstCoGjimgDgeZbUaJWIr1mdE6RFxk=;
|
||||||
|
b=EUmDmdnAsNtjSEHGHNTa8PXgGaEUtOVezagmninX5Bs/Q26R9r3AMgawyUSKkbHp
|
||||||
|
/bQZU6QPZfdvmLMPdIWCQPo8SP+gsz4dpox2efO61DlvgYaxBRhwFedAW9LjYhQc
|
||||||
|
3KzW0yB9JHwiDCw1EioVkv+OMHhAYzoIypA0bQyi2bc=;
|
||||||
|
'''
|
||||||
|
sig = parse_tag_value(hval)
|
||||||
|
self.assertEquals(sig[b't'],'1308078492')
|
||||||
|
self.assertEquals(len(sig),11)
|
||||||
|
|
||||||
|
|
||||||
def test_suite():
|
def test_suite():
|
||||||
from unittest import TestLoader
|
from unittest import TestLoader
|
||||||
|
|||||||
@@ -1,13 +1,4 @@
|
|||||||
import unittest
|
import unittest
|
||||||
import testutil
|
from dkim.tests import test_suite
|
||||||
import testsign
|
|
||||||
|
|
||||||
def suite():
|
|
||||||
s = unittest.TestSuite()
|
|
||||||
s.addTest(testutil.suite())
|
|
||||||
s.addTest(testsign.suite())
|
|
||||||
return s
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
unittest.TextTestRunner().run(suite())
|
|
||||||
|
|
||||||
|
unittest.TextTestRunner().run(test_suite())
|
||||||
|
|||||||
-61
@@ -1,61 +0,0 @@
|
|||||||
|
|
||||||
# Demonstrate
|
|
||||||
# <https://bugs.edge.launchpad.net/ubuntu/+source/pydkim/+bug/587783>
|
|
||||||
# Relaxed-mode header signing is wrong
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import dkim
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
sample_msg = """\
|
|
||||||
From: mbp@canonical.com
|
|
||||||
To: scottk@example.com
|
|
||||||
Subject: this is my
|
|
||||||
test message
|
|
||||||
""".replace('\n', '\r\n')
|
|
||||||
|
|
||||||
sample_privkey = """\
|
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
|
||||||
MIIBOwIBAAJBANmBe10IgY+u7h3enWTukkqtUD5PR52Tb/mPfjC0QJTocVBq6Za/
|
|
||||||
PlzfV+Py92VaCak19F4WrbVTK5Gg5tW220MCAwEAAQJAYFUKsD+uMlcFu1D3YNaR
|
|
||||||
EGYGXjJ6w32jYGJ/P072M3yWOq2S1dvDthI3nRT8MFjZ1wHDAYHrSpfDNJ3v2fvZ
|
|
||||||
cQIhAPgRPmVYn+TGd59asiqG1SZqh+p+CRYHW7B8BsicG5t3AiEA4HYNOohlgWan
|
|
||||||
8tKgqLJgUdPFbaHZO1nDyBgvV8hvWZUCIQDDdCq6hYKuKeYUy8w3j7cgJq3ih922
|
|
||||||
2qNWwdJCfCWQbwIgTY0cBvQnNe0067WQIpj2pG7pkHZR6qqZ9SE+AjNTHX0CIQCI
|
|
||||||
Mgq55Y9MCq5wqzy141rnxrJxTwK9ABo3IAFMWEov3g==
|
|
||||||
-----END RSA PRIVATE KEY-----
|
|
||||||
"""
|
|
||||||
|
|
||||||
sample_pubkey = """\
|
|
||||||
-----BEGIN PUBLIC KEY-----
|
|
||||||
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANmBe10IgY+u7h3enWTukkqtUD5PR52T
|
|
||||||
b/mPfjC0QJTocVBq6Za/PlzfV+Py92VaCak19F4WrbVTK5Gg5tW220MCAwEAAQ==
|
|
||||||
-----END PUBLIC KEY-----
|
|
||||||
"""
|
|
||||||
|
|
||||||
sample_dns = """\
|
|
||||||
k=rsa; \
|
|
||||||
p=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANmBe10IgY+u7h3enWTukkqtUD5PR52T\
|
|
||||||
b/mPfjC0QJTocVBq6Za/PlzfV+Py92VaCak19F4WrbVTK5Gg5tW220MCAwEAAQ=="""
|
|
||||||
|
|
||||||
_dns_responses = {'example._domainkey.canonical.com.': sample_dns}
|
|
||||||
|
|
||||||
|
|
||||||
class SignTestCase(unittest.TestCase):
|
|
||||||
|
|
||||||
def testsign(self):
|
|
||||||
for header_mode in [dkim.Relaxed, dkim.Simple]:
|
|
||||||
|
|
||||||
dkim_header = dkim.sign(sample_msg, 'example', 'canonical.com',
|
|
||||||
sample_privkey, canonicalize=(header_mode, dkim.Relaxed))
|
|
||||||
signed = dkim_header + sample_msg
|
|
||||||
|
|
||||||
result = dkim.verify(signed,dnsfunc=lambda x: _dns_responses[x])
|
|
||||||
self.assertTrue(result)
|
|
||||||
|
|
||||||
def suite():
|
|
||||||
s = unittest.makeSuite(SignTestCase,'test')
|
|
||||||
return s
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
unittest.TextTestRunner().run(suite())
|
|
||||||
-24
@@ -1,24 +0,0 @@
|
|||||||
import unittest
|
|
||||||
from dkim.util import parse_tag_value
|
|
||||||
|
|
||||||
class ParseTestCase(unittest.TestCase):
|
|
||||||
|
|
||||||
def testParse(self):
|
|
||||||
hval = '''v=1; a=rsa-sha256; d=facebookmail.com; s=s1024-2011-q2; c=relaxed/simple;
|
|
||||||
q=dns/txt; i=@facebookmail.com; t=1308078492;
|
|
||||||
h=From:Subject:Date:To:MIME-Version:Content-Type;
|
|
||||||
bh=+qPyCOiDQkusTPstCoGjimgDgeZbUaJWIr1mdE6RFxk=;
|
|
||||||
b=EUmDmdnAsNtjSEHGHNTa8PXgGaEUtOVezagmninX5Bs/Q26R9r3AMgawyUSKkbHp
|
|
||||||
/bQZU6QPZfdvmLMPdIWCQPo8SP+gsz4dpox2efO61DlvgYaxBRhwFedAW9LjYhQc
|
|
||||||
3KzW0yB9JHwiDCw1EioVkv+OMHhAYzoIypA0bQyi2bc=;
|
|
||||||
'''
|
|
||||||
sig = parse_tag_value(hval)
|
|
||||||
self.assertEquals(sig[b't'],'1308078492')
|
|
||||||
self.assertEquals(len(sig),11)
|
|
||||||
|
|
||||||
def suite():
|
|
||||||
s = unittest.makeSuite(ParseTestCase,'test')
|
|
||||||
return s
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
unittest.TextTestRunner().run(suite())
|
|
||||||
Reference in New Issue
Block a user