diff --git a/ChangeLog b/ChangeLog index 34ccc11..987d6ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,8 @@ UNRELEASED Version 0.9.2 + - Fix the arcsign script so it works with the current API (Note: the new + srv_id option is the authserv_id to use in the ARC signatures - Only AR + fields with an authserv-id that matches srv_id will be considered for + ARC signing) - Refactor canonicalization.py strip_trailing_lines to avoid using re for more consistent processing across python versions (Thanks to Jonathan Bastien-Filiatrault for the change) diff --git a/dkim/arcsign.py b/dkim/arcsign.py index ff5a263..12ed72a 100644 --- a/dkim/arcsign.py +++ b/dkim/arcsign.py @@ -37,8 +37,8 @@ logging.basicConfig(level=10) def main(): - if len(sys.argv) != 4: - print("Usage: arcsign.py selector domain privatekeyfile", file=sys.stderr) + if len(sys.argv) != 5: + print("Usage: arcsign.py selector domain privatekeyfile srv_id", file=sys.stderr) sys.exit(1) if sys.version_info[0] >= 3: @@ -49,17 +49,18 @@ def main(): selector = sys.argv[1].encode('ascii') domain = sys.argv[2].encode('ascii') privatekeyfile = sys.argv[3] + srv_id = sys.argv[4].encode('ascii') message = sys.stdin.read() # Pick a cv status cv = dkim.CV_None - if re.search('arc-seal', message, re.IGNORECASE): + if re.search(b'arc-seal', message, re.IGNORECASE): cv = dkim.CV_Pass #try: sig = dkim.arc_sign(message, selector, domain, open(privatekeyfile, "rb").read(), - domain + ": none", cv, dkim.util.get_linesep(message)) + srv_id, cv, dkim.util.get_linesep(message)) for line in sig: sys.stdout.write(line) sys.stdout.write(message)