summaryrefslogtreecommitdiff
path: root/gnu/packages/haskell-crypto.scm
diff options
context:
space:
mode:
authorrsiddharth <s@ricketyspace.net>2018-03-21 03:44:49 +0000
committerLudovic Courtès <ludo@gnu.org>2018-03-31 19:26:19 +0200
commitd91acee78f323f7bf7fb2818822c504026446dd4 (patch)
tree9b41605eaa953e8f5064931ad6828bdb517a7bd5 /gnu/packages/haskell-crypto.scm
parent47a6582b12fbf4f7e927809fd632b21a01bc2d85 (diff)
gnu: Add ghc-cipher-aes.
* gnu/packages/haskell-crypto.scm (ghc-cipher-aes): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/haskell-crypto.scm')
-rw-r--r--gnu/packages/haskell-crypto.scm40
1 files changed, 40 insertions, 0 deletions
diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm
index b1309c1f24..6086525480 100644
--- a/gnu/packages/haskell-crypto.scm
+++ b/gnu/packages/haskell-crypto.scm
@@ -552,3 +552,43 @@ for X.509 certificates.")
(description "This Haskell package provides basic typeclasses and types
for symmetric ciphers.")
(license license:bsd-3)))
+
+(define-public ghc-cipher-aes
+ (package
+ (name "ghc-cipher-aes")
+ (version "0.2.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "cipher-aes-" version "/"
+ "cipher-aes-" version ".tar.gz"))
+ (sha256
+ (base32
+ "05ahz6kjq0fl1w66gpiqy0vndli5yx1pbsbw9ni3viwqas4p3cfk"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-byteable" ,ghc-byteable)
+ ("ghc-securemem" ,ghc-securemem)
+ ("ghc-crypto-cipher-types" ,ghc-crypto-cipher-types)))
+ (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
+ ("ghc-crypto-cipher-tests" ,ghc-crypto-cipher-tests)))
+ (home-page "https://github.com/vincenthz/hs-cipher-aes")
+ (synopsis "AES cipher implementation with advanced mode of operations for
+Haskell")
+ (description "This Haskell package provides AES cipher implementation.
+
+The modes of operations available are ECB (Electronic code book), CBC (Cipher
+block chaining), CTR (Counter), XTS (XEX with ciphertext stealing),
+GCM (Galois Counter Mode).
+
+The AES implementation uses AES-NI when available (on x86 and x86-64
+architecture), but fallback gracefully to a software C implementation.
+
+The software implementation uses S-Boxes, which might suffer for cache timing
+issues. However do notes that most other known software implementations,
+including very popular one (openssl, gnutls) also uses similar
+implementation. If it matters for your case, you should make sure you have
+AES-NI available, or you'll need to use a different implementation.")
+ (license license:bsd-3)))