gnu: Add dovecot-trees.

* gnu/packages/mail.scm (dovecot-trees): New variable.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
ng0 2017-02-28 11:11:46 +00:00 committed by Ludovic Courtès
parent ae196fa349
commit 944a5cdd0d
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 58 additions and 1 deletions

View File

@ -44,6 +44,7 @@
#:use-module (gnu packages backup) #:use-module (gnu packages backup)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
@ -93,7 +94,7 @@
#:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
non-copyleft (expat . license:expat) bsd-3 non-copyleft (expat . license:expat) bsd-3
public-domain bsd-4 isc (openssl . license:openssl) public-domain bsd-4 isc (openssl . license:openssl)
bsd-2 x11-style)) bsd-2 x11-style agpl3))
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
@ -1130,6 +1131,62 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
;; Unicode, Inc. License Agreement for Data Files and Software. ;; Unicode, Inc. License Agreement for Data Files and Software.
(license (list lgpl2.1 license:expat (non-copyleft "file://COPYING"))))) (license (list lgpl2.1 license:expat (non-copyleft "file://COPYING")))))
(define-public dovecot-trees
(let ((commit "006059c8a47d68f14f73c09743e45b9a73014dbf")
(revision "1"))
(package
(name "dovecot-trees")
(version (string-append "2.0.0-" revision "." (string-take commit 7)))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://0xacab.org/riseuplabs/trees.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"0ax90bzc66x179wi1m7ywqwa8nssyhjngs7ij109hqqxg5ymfp73"))))
(build-system gnu-build-system)
(native-inputs
`(("automake" ,automake)
("autoconf" ,autoconf)
("libtool" ,libtool)
("dovecot" ,dovecot)
("pkg-config" ,pkg-config)))
(inputs
`(("libsodium" ,libsodium)))
(arguments
`(#:tests? #f ;No tests exist.
#:configure-flags (list (string-append "--with-dovecot="
(assoc-ref %build-inputs "dovecot")
"/lib/dovecot"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'autogen
(lambda _
(zero? (system* "./autogen.sh")))))))
(home-page "https://0xacab.org/riseuplabs/trees")
(synopsis "NaCL-based Dovecot email storage encryption plugin")
(description
"Technology for Resting Email Encrypted Storage (TREES) is a NaCL-based
Dovecot encryption plugin. This plugin adds individually encrypted mail
storage to the Dovecot IMAP server. It is inspired by Posteo's scrambler
which uses OpenSSL and RSA keypairs. TREES works in a similar way, but uses
the Sodium crypto library (based on NaCL).
How it works:
@enumerate
@item On IMAP log in, the user's cleartext password is passed to the plugin.
@item The plugin creates an argon2 digest from the password.
@item This password digest is used as a symmetric secret to decrypt a libsodium secretbox.
@item Inside the secretbox is stored a Curve25519 private key.
@item The Curve25519 private key is used to decrypt each individual message,
using lidsodium sealed boxes.
@item New mail is encrypted as it arrives using the Curve25519 public key.
@end enumerate\n")
(license agpl3))))
(define-public isync (define-public isync
(package (package
(name "isync") (name "isync")