Add CanonicalizationPolicy, which encapsulates the combined hybrid simple/relaxed schemes.

This commit is contained in:
William Grant
2011-06-04 14:05:54 +10:00
parent 19b554212e
commit 7b1a3f70dc
2 changed files with 21 additions and 3 deletions
+7 -3
View File
@@ -25,7 +25,10 @@ import logging
import re
import time
from dkim.canonicalization import algorithms
from dkim.canonicalization import (
algorithms,
CanonicalizationPolicy,
)
from dkim.crypto import (
DigestTooLargeError,
HASH_ALGORITHMS,
@@ -334,8 +337,9 @@ def verify(message, logger=None, dnsfunc=get_txt):
except KeyError as e:
logger.error("unknown canonicalization algorithm: %s" % e.message)
return False
headers = header_algorithm.canonicalize_headers(headers)
body = body_algorithm.canonicalize_body(body)
canon_policy = CanonicalizationPolicy(header_algorithm, body_algorithm)
headers = canon_policy.canonicalize_headers(headers)
body = canon_policy.canonicalize_body(body)
try:
hasher = HASH_ALGORITHMS[sig[b'a']]