def sign(self, message):
canonicalization = NoFWSCanonicalization()
signer = self._key.signer(padding.PKCS1v15(), hashes.SHA1())
headers, body = _rfc822_parse(message)
h_field = []
for header, value in headers:
if self._signed_headers is None or header in self._signed_headers:
h_field.append(header)
header, value = canonicalization.canonicalize_header(
header, value)
signer.update(header)
signer.update(b":")
signer.update(value)
body = canonicalization.canonicalize_body(body)
if body:
signer.update(b"\r\n")
signer.update(body)
return _fold(
b"DomainKey-Signature: a=rsa-sha1; c=nofws; d={domain}; "
b"s={selector}; q=dns; h={headers}; b={signature}".format(
domain=self._domain,
selector=self._selector,
headers=b": ".join(h_field),
signature=base64.b64encode(signer.finalize())
)) + b"\r\n"
评论列表
文章目录