summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/crypto.scm59
1 files changed, 57 insertions, 2 deletions
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index fd7a48c2f9..da081fbefa 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox>
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
@@ -34,10 +34,10 @@
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
#:use-module (gnu packages cryptsetup)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages image)
- #:use-module (gnu packages pkg-config)
#:use-module (gnu packages libbsd)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
@@ -45,6 +45,8 @@
#:use-module (gnu packages password-utils)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages search)
#:use-module (gnu packages serialization)
@@ -711,3 +713,56 @@ of magnet links and a wide range of hash sums like CRC32, MD4, MD5, SHA1,
SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R
34.11-94, RIPEMD-160, HAS-160, EDON-R, Whirlpool and Snefru.")
(license (license:non-copyleft "file://COPYING"))))
+
+(define-public botan
+ (package
+ (name "botan")
+ (version "2.4.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://botan.randombit.net/releases/"
+ "Botan-" version ".tgz"))
+ (sha256
+ (base32
+ "1988crh5lipmfcd1icldf6hchi9vcy08yymxv79lrvnglpi6957d"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-rst2man-invocation
+ (lambda _
+ ;; XXX Reported upstream:
+ ;; <https://github.com/randombit/botan/issues/1516>
+ (substitute* "src/scripts/build_docs.py"
+ (("'rst2man'")"'rst2man.py'"))
+ #t))
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref %outputs "out"))
+ (lib (string-append out "/lib")))
+ (invoke "python" "./configure.py"
+ (string-append "--prefix=" out)
+ ;; Otherwise, the `botan` executable cannot find
+ ;; libbotan.
+ (string-append "--ldflags=-Wl,-rpath=" lib)
+ "--with-rst2man"
+ ;; Recommended by upstream
+ "--with-zlib" "--with-bzip2" "--with-sqlite3"))))
+ (replace 'check
+ (lambda _ (invoke "./botan-test"))))))
+ (native-inputs
+ `(("python" ,python-minimal-wrapper)
+ ("python-docutils" ,python-docutils)))
+ (inputs
+ `(("sqlite" ,sqlite)
+ ("bzip2" ,bzip2)
+ ("zlib" ,zlib)))
+ (synopsis "Cryptographic library in C++11")
+ (description "Botan is a cryptography library, written in C++11, offering
+the tools necessary to implement a range of practical systems, such as TLS/DTLS,
+PKIX certificate handling, PKCS#11 and TPM hardware support, password hashing,
+and post-quantum crypto schemes. In addition to the C++, botan has a C89 API
+specifically designed to be easy to call from other languages. A Python binding
+using ctypes is included, and several other language bindings are available.")
+ (home-page "https://botan.randombit.net")
+ (license license:bsd-2)))