dkim-verifier
Version:
DKIM Signature Verifier in TypeScript
56 lines (41 loc) • 1.46 kB
Markdown
# DKIM Signature Verification with Typescript
[](https://github.com/invers-technology/dkim-ts/blob/master/LICENSE)
[](https://www.typescriptlang.org)  [](https://github.com/invers-technology/dkim-ts/actions/workflows/index.yml)
A dkim signature implementation with imap example and circom circuit.
**Use at your own risk**.
## Install
```
$ npm i dkim-verifier
```
## Usage
```ts
import { readFileSync } from "fs";
import {
parseEmailToCanonicalized,
verifyBody,
verifyDkimSignature,
getDkimPublicKey,
} from "dkim-verifier";
const emailRaw = fs.readFileSync("tests/example.eml", "utf8");
const { canonicalizedHeaders, canonicalizedBody, dkim } =
parseEmailToCanonicalized(emailRaw);
const isBodyVerified = verifyBody(canonicalizedBody, dkim);
const publicKey = await getDkimPublicKey(dkim);
const isDkimVerified = verifyDkimSignature(
dkim,
canonicalizedHeaders,
publicKey,
);
expect(isBodyVerified).toBe(true);
expect(isDkimVerified).toBe(true);
```
## Test
```shell
$ yarn test
```
## Example
Please set your gmail account info.
```shell
$ cp .env.example .env
$ ts-node example/imap.ts
```