diff --git a/dkimsign.py b/dkimsign.py index 4594215..4ddd39e 100644 --- a/dkimsign.py +++ b/dkimsign.py @@ -37,24 +37,38 @@ parser.add_argument('selector', action="store") parser.add_argument('domain', action="store") parser.add_argument('privatekeyfile', action="store") parser.add_argument('--hcanon', choices=['simple', 'relaxed'], - default='relaxed', type=bytes, + default='relaxed', help='Header canonicalization algorithm: default=relaxed') parser.add_argument('--bcanon', choices=['simple', 'relaxed'], - default='simple', type=bytes, + default='simple', help='Body canonicalization algorithm: default=simple') parser.add_argument('--identity', help='Optional value for i= tag.') args=parser.parse_args(arguments) +signature_algorithm=b'rsa-sha256' +include_headers = None +length = None +logger = None if sys.version_info[0] >= 3: + args.selector = bytes(args.selector, encoding='UTF-8') + args.domain = bytes(args.domain, encoding='UTF-8') + if args.identity is not None: + args.identity = bytes(args.identity, encoding='UTF-8') + args.hcanon = bytes(args.hcanon, encoding='UTF-8') + args.bcanon = bytes(args.bcanon, encoding='UTF-8') # Make sys.stdin and stdout binary streams. sys.stdin = sys.stdin.detach() sys.stdout = sys.stdout.detach() +canonicalize = (args.hcanon, args.bcanon) message = sys.stdin.read() try: - sig = dkim.sign(message, args.selector, args.domain, open( - args.privatekeyfile, "rb").read(), identity = args.identity, - canonicalize=(args.hcanon, args.bcanon)) + d = dkim.DKIM(message,logger=logger, + signature_algorithm=signature_algorithm) + sig = d.sign(args.selector, args.domain, open( + args.privatekeyfile, "rb").read(), identity = args.identity, + canonicalize=canonicalize, include_headers=include_headers, + length=length) sys.stdout.write(sig) sys.stdout.write(message) except Exception as e: