Method: Dkim::SignedMail#dkim_header
- Defined in:
- lib/dkim/signed_mail.rb
#dkim_header ⇒ DkimHeader
Returns Constructed signature for the mail message.
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/dkim/signed_mail.rb', line 50 def dkim_header dkim_header = DkimHeader.new raise "A private key is required" unless private_key raise "A domain is required" unless domain raise "A selector is required" unless selector # Add basic DKIM info dkim_header['v'] = '1' dkim_header['a'] = signing_algorithm dkim_header['c'] = "#{header_canonicalization}/#{body_canonicalization}" dkim_header['d'] = domain dkim_header['i'] = identity if identity dkim_header['q'] = 'dns/txt' dkim_header['s'] = selector dkim_header['t'] = (time || Time.now).to_i dkim_header['x'] = expire.to_i if expire # Add body hash and blank signature dkim_header['bh']= digest_alg.digest(canonical_body) dkim_header['h'] = signed_headers.join(':') dkim_header['b'] = '' # Calculate signature based on intermediate signature header headers = canonical_header headers << dkim_header.to_s(header_canonicalization) dkim_header['b'] = private_key.sign(digest_alg, headers) dkim_header end |