def _verify(hdrs, body, keys, result, sign_headers=("Originator", "Recipient", "Content-Type",), manipulate_request=None): for algorithm in ("rsa-sha1", "rsa-sha256",): # Create signature stream = MemoryStream(body) headers = Headers() for name, value in [hdr.split(":", 1) for hdr in hdrs.splitlines()]: headers.addRawHeader(name, value) request = DKIMRequest("POST", "/", headers, stream, "example.com", "dkim", self.private_keyfile, algorithm, sign_headers, True, True, True, 3600) yield request.sign() # Possibly munge the request after the signature is done if manipulate_request is not None: manipulate_request(request) # Verify signature TestPublicKeyLookup.PublicKeyLookup_Testing.keys = keys data = (yield allDataFromStream(request.stream)) verifier = DKIMVerifier(request.headers, data, key_lookup=(TestPublicKeyLookup.PublicKeyLookup_Testing,)) TestPublicKeyLookup.PublicKeyLookup_Testing({}).flushCache() try: yield verifier.verify() except Exception, e: if result: self.fail("DKIMVerifier:verify failed: %s" % (e,)) else: if not result: self.fail("DKIMVerifier:verify did not fail")
def _doVerify(options): # Parse the HTTP file verify = open(os.path.expanduser(options["verify"])).read() _method, _uri, headers, body = _parseRequest(verify) # Check for local public key if options["pub-key"]: PublicKeyLookup_File.pubkeyfile = os.path.expanduser(options["pub-key"]) lookup = (PublicKeyLookup_File,) else: lookup = None dkim = DKIMVerifier(headers, body, lookup) if options["fake-time"]: dkim.time = 0 try: yield dkim.verify() except DKIMVerificationError, e: print("Verification Failed: %s" % (e,))
def _doVerify(options): # Parse the HTTP file verify = open(options["verify"]).read() method, uri, headers, stream = _parseRequest(verify) request = ClientRequest(method, uri, headers, stream) # Check for local public key if options["pub-key"]: PublicKeyLookup_File.pubkeyfile = options["pub-key"] lookup = (PublicKeyLookup_File,) else: lookup = None dkim = DKIMVerifier(request, lookup) if options["fake-time"]: dkim.time = 0 try: yield dkim.verify() except DKIMVerificationError, e: print("Verification Failed: %s" % (e,))
def _doVerify(options): # Parse the HTTP file verify = open(options["verify"]).read() method, uri, headers, stream = _parseRequest(verify) request = ClientRequest(method, uri, headers, stream) # Check for local public key if options["pub-key"]: PublicKeyLookup_File.pubkeyfile = options["pub-key"] lookup = (PublicKeyLookup_File, ) else: lookup = None dkim = DKIMVerifier(request, lookup) if options["fake-time"]: dkim.time = 0 try: yield dkim.verify() except DKIMVerificationError, e: print("Verification Failed: %s" % (e, ))