public string GenerateSignature([NotNull] Email email)
{
if (email == null)
{
throw new ArgumentNullException("email");
}
if (email.Headers == null)
{
throw new ArgumentException("email headers property is null");
}
var headers = DkimCanonicalizer.CanonicalizeHeaders(email.Headers, this.HeaderCanonicalization, true, _headersToSign);
//if (this.Debug != null)
//{
// this.Debug.WriteContent("DKIM signature", email.Headers[SignatureKey].Value);
// this.Debug.WriteContent("DKIM canonicalized headers", headers);
//}
// assumes signature ends with "b="
return Convert.ToBase64String(_privateKeySigner.Sign(this.Encoding.GetBytes(headers), this.SigningAlgorithm));
}