Install via npm
$ npm install dkim-signature
var DKIMSignature = require( 'dkim-signature' )
Suppose you have the content of the DKIM-Signature
email header:
v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20120113;
h=mime-version:date:message-id:subject:from:to:content-type;
bh=DrlXO8ocnosZnW5ZN7P4S/fIdR8vwHj0TyzoPISZF2Q=;
b=gOHBExs2JcJFRrozPDw88Js0dc0AHOo6YTZqrDTedfcK/jM/mxfu5rfVzuUnKAGiS5
ZvRvXvwYjIW0B9t0DDHDOs5soIukuEXeUw9OV2QD8qc5pmOShuRQWyW5pRftTF87omkj
gV2Eik5K2f8FpNlyvuLDjMUmyP8RpLaRrii6+kRRsoJzzP41IqALmlLmJfvtnkeu5kM0
v4XnQ4hBNcaLuCmq3fZfCQFDexofECQOZ8FWE0VfdASG8HOJ6jgxuKwYtNfy11ySUSrI
wFFlrjTfiNqSD9nzQns3j+xXLtqsvviJQXJgkC8O6mLel3GDwm8LHzBoszzqZ/FiL4rg
Vdfw==
Parse the signature header:
var signature = DKIMSignature.parse( header )
{
algorithm: 'rsa-sha256',
canonical: 'relaxed/relaxed',
copiedHeaders: [],
domain: 'gmail.com',
expires: null,
hash: <Buffer 0e b9 57 3b ca 1c 9e 8b 19 9d 6e 59 37 b3 ...>,
headers: [
'mime-version',
'date',
'message-id',
'subject',
'from',
'to',
'content-type'
],
identity: null,
length: null,
query: null,
selector: '20120113',
signature: <Buffer 80 e1 c1 13 1b 36 25 c2 45 46 ba 33 3c ...>,
timestamp: null,
version: '1'
}
Or create a signature header:
var signature = new DKIMSignature({
algorithm: 'rsa-sha256',
canonical: 'simple/relaxed',
domain: 'into.space',
headers: [
'mime-version',
'date',
'message-id',
'subject',
...
],
selector: '20120113',
signature: <Buffer 80 e1 c1 13 1b 36 25 c2 45 46 ba 33 3c ...>,
version: '1'
})
signature.toString()
Constructor:
- new Signature( options )
- Signature.create( options )
- Signature.parse( header )
Methods:
- signature.parse( header )
- signature.toString()