Install via npm
$ npm install --save dkim
- RFC 6368 - DomainKeys Identified Mail (DKIM) Signatures
- RFC 8301 - Cryptographic Algorithm and Key Usage Update to DomainKeys Identified Mail (DKIM)
- RFC 8463 - A New Cryptographic Signature Method for DomainKeys Identified Mail (DKIM)
- RFC 8616 - Email Authentication for Internationalized Mail
- RFC 7489 - Domain-based Message Authentication, Reporting, and Conformance (DMARC)
Kind: global variable
- DKIM :
Object
- .Signature
- .Key
- .NONE :
String
- .OK :
String
- .TEMPFAIL :
String
- .PERMFAIL :
String
- .getKey(domain, [selector], callback)
- .processBody(message, method) ⇒
String
- .processHeader(headers, signHeaders, method) ⇒
String
- .verifySignature(body, headers, callback)
- .verify(message, callback)
- .filterSignatureHeaders(headers, signatureHeader) ⇒
Array.<String>
- .filterSignatureHeaders(headers, signatureHeader) ⇒
Kind: static class of DKIM
See: dkim-signature
DKIM Signature
Kind: static class of DKIM
See: dkim-key
DKIM Key
Kind: static property of DKIM
Kind: static property of DKIM
Kind: static property of DKIM
Kind: static property of DKIM
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
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)
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' )
Verify a message signature
Kind: static method of DKIM
Params
- body
Buffer
- headers
Array
- callback
function
Verify a message's signatures
Kind: static method of DKIM
Throws:
Error
If input is not a buffer
Params
- message
Buffer
- callback
function
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