مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-12-01 05:43:04 +00:00
Merge pull request #1522 from postalserver/dkim-wrapping-part-2
هذا الالتزام موجود في:
@@ -17,7 +17,7 @@ module Postal
|
||||
end
|
||||
|
||||
def dkim_header
|
||||
"DKIM-Signature: v=1;" + dkim_properties + signature
|
||||
"DKIM-Signature: v=1; " + dkim_properties.join("\r\n\t") + signature.scan(/.{1,72}/).join("\r\n\t")
|
||||
end
|
||||
|
||||
private
|
||||
@@ -96,16 +96,18 @@ module Postal
|
||||
end
|
||||
|
||||
def dkim_properties
|
||||
String.new.tap do |header|
|
||||
header << " a=rsa-sha256; c=relaxed/relaxed;"
|
||||
header << " d=#{@domain_name}; s=#{@dkim_identifier}; t=#{Time.now.utc.to_i};"
|
||||
header << " bh=#{body_hash}; h=#{header_names.join(':')};"
|
||||
header << " b="
|
||||
Array.new.tap do |header|
|
||||
header << "a=rsa-sha256; c=relaxed/relaxed;"
|
||||
header << "d=#{@domain_name};"
|
||||
header << "s=#{@dkim_identifier}; t=#{Time.now.utc.to_i};"
|
||||
header << "bh=#{body_hash};"
|
||||
header << "h=#{header_names.join(':')};"
|
||||
header << "b="
|
||||
end
|
||||
end
|
||||
|
||||
def dkim_header_for_signing
|
||||
"dkim-signature:v=1;" + dkim_properties
|
||||
"dkim-signature:v=1; #{dkim_properties.join(' ')}"
|
||||
end
|
||||
|
||||
def signable_header_string
|
||||
|
||||
@@ -20,11 +20,12 @@ describe Postal::DKIMHeader do
|
||||
allow(domain).to receive(:dkim_key).and_return(OpenSSL::PKey::RSA.new(frontmatter['private_key']))
|
||||
allow(domain).to receive(:dkim_identifier).and_return(frontmatter['dkim_identifier'])
|
||||
|
||||
expectation = "DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; " \
|
||||
"d=#{frontmatter['domain']}; s=#{frontmatter['dkim_identifier']}; t=#{mocked_time.to_i}; " \
|
||||
"bh=#{frontmatter['bh']}; "\
|
||||
"h=#{frontmatter['headers']}; " \
|
||||
"b=#{frontmatter['b']}"
|
||||
expectation = "DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r\n" \
|
||||
"\td=#{frontmatter['domain']};\r\n" \
|
||||
"\ts=#{frontmatter['dkim_identifier']}; t=#{mocked_time.to_i};\r\n" \
|
||||
"\tbh=#{frontmatter['bh']};\r\n"\
|
||||
"\th=#{frontmatter['headers']};\r\n" \
|
||||
"\tb=#{frontmatter['b'].scan(/.{1,72}/).join("\r\n\t")}"
|
||||
|
||||
header = described_class.new(domain, email)
|
||||
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم