Commit Graph

144 Commits

Author SHA1 Message Date
William Grant 7b1a3f70dc Add CanonicalizationPolicy, which encapsulates the combined hybrid simple/relaxed schemes. 2011-06-04 14:05:54 +10:00
William Grant 472750c0db Signature algorithm names are now defined in dkim.crypto. 2011-06-03 22:34:23 +10:00
William Grant 5f949337d1 Handle Unicode in get_txt. 2011-06-03 22:24:21 +10:00
William Grant a82f3110ea Split out DNS utilities into their own module. 2011-06-03 22:07:42 +10:00
William Grant 28aaa6f2f2 dkim.canonicalization now has an algorithms dict mapping names to algorithms. Use it. 2011-06-03 21:52:33 +10:00
William Grant 589853aee5 Split out dkim.canonicalization, and test it. Note that test_wsp_strips_headers is correctly failing, as trailing whitespace is not stripped from header names. 2011-06-03 21:16:31 +10:00
William Grant f4875a8768 Don't crash when asked to verify a badly encoded domain or selector. 2011-06-02 23:07:01 +10:00
William Grant d9e3b49a8e Make encodings all ascii/utf-8 as appropriate. 2011-03-19 22:44:46 +11:00
William Grant 672c6084e3 python2.6 base64.b64encode doesn't like bytearrays... convert to bytes instead. 2011-03-19 21:24:48 +11:00
William Grant 44db746563 More bytestring conversions in __init__. pydns seems to like to deal with unicode, so convert on the way in and back. 2011-03-19 21:01:54 +11:00
William Grant 3cf0a5ce9f Merge pydns support from trunk. 2011-03-19 20:58:23 +11:00
William Grant 128288a20c Fall back to pydns if dnspython is unavailable. 2011-03-19 20:56:37 +11:00
William Grant 8cf859db4f bytesify __init__. Tests now parse if dns.resolver is removed. 2011-03-19 20:09:01 +11:00
William Grant f5db65966e Use new 2.6/3.x except syntax. 2011-03-19 18:36:19 +11:00
William Grant 46c57176a2 Use normal Python logging everywhere, not printing to debuglog. 2011-03-19 18:27:11 +11:00
William Grant 167b2986d7 validate_signature_field now raises a ValidationError if it finds an issue. 2011-03-19 18:04:41 +11:00
William Grant d5ffbac38a EMSA_PKCS1_v_1_5_encode now works out the hash ID itself. 2011-03-19 17:14:14 +11:00
William Grant 2ee087da01 Extract parse_pem_private_key, and test it and parse_public_key. 2011-03-19 16:23:48 +11:00
Martin Pool c646369d66 Update fix for bug 587783 verifying relaxed signatures 2011-03-15 16:30:16 +11:00
Scott Kitterman 00164b8b5c * Change py_modules to packages in setup.py so it will install correctly.
* Explicitly mark all files modified from the original upstream (licensing paranoia).
2011-03-15 00:10:03 -04:00
William Grant 440dd14de0 Correct crypto exception handling. 2011-03-12 17:19:59 +11:00
William Grant 7dec2e4697 Merge trunk. 2011-03-12 12:32:14 +11:00
William Grant c19043d70f Use a better, tested Tag=Value parser. 2011-03-12 12:28:39 +11:00
William Grant 142285bc03 More docstrings. 2011-03-12 12:09:43 +11:00
William Grant ed497a40d6 Add docstrings to the two crypto functions. 2011-03-12 12:05:15 +11:00
William Grant cbe755269c Restore erroneously removed license header. 2011-03-10 09:31:03 +11:00
William Grant bbe60e0646 int2str returns a string instead of a list, so the ''.join() is redundant. 2011-03-10 00:05:42 +11:00
William Grant 7526317dfe Unexport EMSA_PKCS1_v1_5_encode; it's only used by RSASSA_PKCS1_v1_5_*. 2011-03-10 00:03:26 +11:00
William Grant c82703cea9 Implement RSASSA-PKCS1-v1_5 in dkim.crypto, and use that in verify() and sign(). Move str2int/int2str into dkim.crypto. Verification no longer does a constant-time string compare; there is no private key involved on which a timing attack could be performed. 2011-03-10 00:03:15 +11:00
William Grant 5898094fe1 Factor out RSA into perform_rsa. 2011-03-09 23:37:59 +11:00
William Grant 6f715a1a01 Extract crypto stuff to dkim.crypto. 2011-03-09 23:27:04 +11:00
William Grant b6d3502f9e Split ASN.1 utilities out into their own file. 2011-03-09 23:23:01 +11:00
William Grant b3225a0a24 Extract parse_private_key. 2011-03-09 23:14:11 +11:00
William Grant fb2d8678fd Use parse_tag_value in verify(). 2011-03-09 22:54:41 +11:00
William Grant a6374ed26d Extract signature field validation. 2011-03-09 21:40:51 +11:00
William Grant ece86c0e67 Shrink the mandatory fields check. 2011-03-09 21:36:46 +11:00
William Grant 2437ab75a3 Extract public key parsing. 2011-03-09 21:21:58 +11:00
William Grant 160fb39e39 Extract hash_headers. 2011-03-09 20:59:10 +11:00
William Grant 405757ef49 Use the new EMSA-PKCS1-v1_5 function in verify() too. 2011-03-09 20:49:45 +11:00
William Grant c859c87c73 Take the hash ID as an arg. 2011-03-09 20:44:12 +11:00
William Grant bcbe6d19aa Start ripping out EMSA-PKCS1-v1_5. 2011-03-09 20:37:04 +11:00
William Grant b165714c52 Remove old test which was specific to the original upstrea. 2011-03-09 20:16:53 +11:00
William Grant fbe24a0001 Allow callers to override the DNS function used by verify(). 2011-03-09 20:10:04 +11:00
William Grant df2c20d4b3 Turn dkim into a package. 2011-03-09 18:07:27 +11:00