/node-dkim

DomainKeys Identified Mail

Primary LanguageJavaScriptMIT LicenseMIT

DomainKeys Identified Mail (DKIM)

npm npm npm downloads build status

Install via npm

$ npm install --save dkim

API

DKIM : Object

Kind: global variable


DKIM.Signature

Kind: static class of DKIM
See: dkim-signature


new DKIM.Signature()

DKIM Signature


DKIM.Key

Kind: static class of DKIM
See: dkim-key


new DKIM.Key()

DKIM Key


DKIM.NONE : String

Kind: static property of DKIM


DKIM.OK : String

Kind: static property of DKIM


DKIM.TEMPFAIL : String

Kind: static property of DKIM


DKIM.PERMFAIL : String

Kind: static property of DKIM


DKIM.getKey(domain, [selector], callback)

Retrieve a domain key

Kind: static method of DKIM
Todo

  • DNS seems to FORMERR on unregistered / expired domains, which maybe should be a TEMPFAIL (?)
  • make this public_key = dkim_find_key(q_val, d_val, s_val), where *_val are the signature's attribute values
  • Throw error if the public key is not a Buffer

Params

  • domain String
  • [selector] String
  • callback function

DKIM.processBody(message, method) ⇒ String

Canonicalize the message body according to methods defined in RFC[XXXX]

Kind: static method of DKIM
Throws:

  • Error If canonicalization method is unsupported

Params

  • message Buffer | String
  • method String - (simple|relaxed)

DKIM.processHeader(headers, signHeaders, method) ⇒ String

Canonicalize the message header according to methods defined in RFC[6376]

Kind: static method of DKIM
Throws:

  • Error If canonicalization method is unsupported

Params

  • headers Array.<String> - Each header is formatted as <field>: <value>
  • signHeaders Array
  • method String - (simple|relaxed)

Example

DKIM.processHeader( [ 'A: X', 'B : Y\t\r\n\tZ  '], [ 'A' ], 'relaxed' )

DKIM.verifySignature(body, headers, callback)

Verify a message signature

Kind: static method of DKIM
Params

  • body Buffer
  • headers Array
  • callback function

DKIM.verify(message, callback)

Verify a message's signatures

Kind: static method of DKIM
Throws:

  • Error If input is not a buffer

Params

  • message Buffer
  • callback function

verify.filterSignatureHeaders(headers, signatureHeader) ⇒ Array.<String>

Filter out signature headers other than the specified signatureHeader

Kind: static method of verify
Returns: Array.<String> - filtered headers
Params

  • headers Array.<String> - list of headers to filter
  • signatureHeader String - signature header to keep