All Projects → kalloc → dkim

kalloc / dkim

Licence: other
Golang DKIM Verifier

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to dkim

toolbox-wiki
Internet.nl toolbox - how-to's for modern mail security standards (DMARC, DKIM, SPF and DANE)
Stars: ✭ 96 (+357.14%)
Mutual labels:  dkim
mailsec-check
Another utility to analyze state of deployment of security-related email protocols.
Stars: ✭ 37 (+76.19%)
Mutual labels:  dkim
Hermes-Secure-Email-Gateway
Hermes Secure Email Gateway is a Free Open Source Ubuntu 18.04 or 20.04 Server based Email Gateway that provides Spam, Virus and Malware protection, full in-transit and at-rest email encryption as well as email archiving. It features the latest email authentication techniques such as SPF, DKIM and DMARC.
Stars: ✭ 35 (+66.67%)
Mutual labels:  dkim
share
A collection of libraries and tools written in Go.
Stars: ✭ 35 (+66.67%)
Mutual labels:  dkim
mailserver
Simple and full-featured mail server using Docker
Stars: ✭ 88 (+319.05%)
Mutual labels:  dkim
thundersec
ThunderSec is a security plugin for Mozilla Thunderbird that creates several pieces of additional security functionality, including DNSBL, RBL, SURBL, DKIM and SPF.
Stars: ✭ 42 (+100%)
Mutual labels:  dkim
go-dkim
A Go library to create and verify DKIM signatures (migrated)
Stars: ✭ 38 (+80.95%)
Mutual labels:  dkim
Mailu
Insular email distribution - mail server as Docker images
Stars: ✭ 3,151 (+14904.76%)
Mutual labels:  dkim
Maddy
✉️ Composable all-in-one mail server.
Stars: ✭ 2,800 (+13233.33%)
Mutual labels:  dkim
Mailkit
A cross-platform .NET library for IMAP, POP3, and SMTP.
Stars: ✭ 4,477 (+21219.05%)
Mutual labels:  dkim
Haraka
A fast, highly extensible, and event driven SMTP server
Stars: ✭ 4,069 (+19276.19%)
Mutual labels:  dkim
verify-dkim
Tool to verify DKIM signatures on an mbox of emails
Stars: ✭ 70 (+233.33%)
Mutual labels:  dkim
smtp-dkim-signer
SMTP-proxy that DKIM-signs e-mails before submission to an upstream SMTP-server.
Stars: ✭ 28 (+33.33%)
Mutual labels:  dkim
postfix-relay
Postfix SMTP relay docker image
Stars: ✭ 76 (+261.9%)
Mutual labels:  dkim
mailauth
Command line utility and a Node.js library for email authentication
Stars: ✭ 57 (+171.43%)
Mutual labels:  dkim
docker-mail-server
Ansible playbooks to deploy a full featured mail server stack using Docker.
Stars: ✭ 47 (+123.81%)
Mutual labels:  dkim
OpenDKIM
No description or website provided.
Stars: ✭ 58 (+176.19%)
Mutual labels:  dkim

Yet Another DKIM Verifier

Why not?

I found some DKIM solution for go, but I don’t like untested C binding and I have some time (thank you mr.Putin) I wrote this code for my pet project.

What can we do?

We can verify DKIM headers very fast. It is about 44mb per second on my laptop. We support custom resolving and custom cache logic.

TODO

  • Support Length tag
  • Support Time
  • Support ExpireTime
  • Support Copied header fields (z=)
  • Sign

How to use it?

package main

import (
	"bufio"
	"flag"
	"fmt"
	"os"

	"github.com/kalloc/dkim"
)

// ./test path/to/emls/*.eml

func main() {
	var (
		filename string
		fp       *os.File
		err      error
		dk       *dkim.DKIM
	)

	flag.Parse()

	for _, filename = range flag.Args() {
		fmt.Printf("Check: %s — ", filename)
		if fp, err = os.Open(filename); err != nil {
			fmt.Printf("ERR-WRONG_FILE")
		} else if dk, _ = dkim.ParseEml(bufio.NewReader(fp)); dk == nil {
			fmt.Printf("ERR-DKIM_NOT_FOUND")
		} else if _, err = dk.GetPublicKey(); err != nil {
			fmt.Printf("ERR-DKIM_PK_NOT_FOUND")
		} else if dk.Verify() == false {
			fmt.Printf("ERR-DKIM_NOT_VERIFIED (Body is %v, Sig is %v)", dk.Status.ValidBody, dk.Status.Valid)
		} else {
			fmt.Printf("OK")
		}
		fmt.Printf("\n")
	}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].