package dkim-mirage

  1. Overview
  2. Docs
Implementation of DKIM in OCaml for MirageOS

Install

Dune Dependency

Authors

Maintainers

Sources

dkim-0.5.0.tbz
sha256=6274cce79f084cc0196d1699ce8afa20ab106928d076883d94203209a1e410b9
sha512=d442c7e8cae22b08639efa66bd5451b0a536ea1f38699d74dfe352cd3437593d9185ec676bf8c82b0f19dd568adf2185af0f0bd9626686ff4b063931a2d333ad

Description

A light layer of the dkim library for MirageOS

Published: 06 Mar 2023

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.

ocaml-dkim has received funding from the Next Generation Internet Initiative (NGI) within the framework of the DAPSI Project.

Dependencies (9)

  1. lwt
  2. tcpip >= "7.0.0"
  3. mirage-clock
  4. mirage-random < "4.0.0"
  5. mirage-time
  6. dns-client-mirage >= "7.0.0" & < "8.0.0"
  7. dkim = version
  8. dune >= "2.0.0"
  9. ocaml >= "4.08.0"

Dev Dependencies (5)

  1. mirage-crypto-rng with-test & >= "0.11.0" & < "1.0.0"
  2. logs with-test
  3. fmt with-test
  4. digestif with-test
  5. alcotest with-test

Used by

None

Conflicts

None

OCaml

Innovation. Community. Security.