package dkim

  1. Overview
  2. Docs
Implementation of DKIM in OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

dkim-v0.1.0.tbz
sha256=b58402bd40f7c9a789162be0e5714d330afecd6174f81be0687d1f489403a643
sha512=4649c9a0453d54fc7d8974be6fe96c463da85d0e805680d88cbb8741ee15012b07167a66654144d95802bd5349240aeddc2a5d504f6adccdea5ae06083d86809

Description

A library and a binary to verify and sign an email with the DKIM mechanism described by the RFC 6376

Published: 26 Sep 2020

README

ocaml-dkim

ocaml-dkim is a pure implementation of DKIM in OCaml. It permits to verify and sign an incoming email. It can be use as a SMTP filter service (verify) or as a SMTP submission service (sign).

How to install it?

You must have an OPAM environment. Then, ocaml-dkim can be installed with:

$ opam pin add https://github.com/dinosaure/ocaml-dkim.git

How to use it?

ocaml-dkim provides 2 binaries, one to verify, the second to sign an email.

$ dkim.verify test/raw/001.mail
[ok]: sendgrid.info
[ok]: github.com

It shows all domains which signed the given email and whether the signature is correct or not (for the last case, it shows you the selector). ocaml-dkim is able to sign an email from a private RSA key and a specific domain such as:

$ dkim.sign -k private-key.pem --selector admin --hostname x25519.net test/raw/001.mail
DKIM-Signature: ...
Rest of the email

It prints the signed email then. The user is able to use a specific RSA private key or it can use a seed used to generate the RSA private key with the fortuna random number generator.

Dependencies (16)

  1. x509 >= "0.11.2" & < "0.12.0"
  2. mirage-crypto-pk >= "0.10.3"
  3. mirage-crypto >= "0.10.3"
  4. base64 >= "3.0.0"
  5. fpath
  6. fmt
  7. logs
  8. cmdliner
  9. dns-client >= "4.6.3" & < "5.0.0"
  10. domain-name < "0.3.1"
  11. hmap
  12. base-unix
  13. digestif >= "0.9.0"
  14. mrmime >= "0.3.1" & < "0.5.0"
  15. dune >= "2.0.0"
  16. ocaml >= "4.08.0"

Dev Dependencies (1)

  1. alcotest with-test

Used by (1)

  1. dkim-mirage < "0.2.0"

Conflicts

None

OCaml

Innovation. Community. Security.