1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2025-12-01 05:43:04 +00:00

Merge pull request #1522 from postalserver/dkim-wrapping-part-2

هذا الالتزام موجود في:
Adam Cooke
2021-08-01 23:14:17 +01:00
ملتزم من قبل GitHub
الأصل 4880eee1d9 476129cc1b
التزام 32b42af2f9
2 ملفات معدلة مع 15 إضافات و12 حذوفات

عرض الملف

@@ -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)