summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorGuillaume Le Vaillant <glv@posteo.net>2020-09-03 11:44:20 +0200
committerGuillaume Le Vaillant <glv@posteo.net>2020-09-03 11:44:20 +0200
commita568071ffebf845aa9db2dcbcd72da21651672f5 (patch)
treeef0a895bfc774a73da781b6bd9b62ea4f8627bd4 /gnu/packages
parentabafdb2aacefef0a2ecf46c8b06b52343727f34f (diff)
downloadguix-a568071ffebf845aa9db2dcbcd72da21651672f5.tar.gz
Add libsecp256k1-bitcoin-cash.
* gnu/packages/crypto.scm (libsecp256k1-bitcoin-cash): New variable.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/crypto.scm52
1 files changed, 52 insertions, 0 deletions
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index ae68a2992e..028c140185 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -1061,6 +1061,58 @@ Features:
       (home-page "https://github.com/bitcoin-core/secp256k1")
       (license license:unlicense))))
 
+(define-public libsecp256k1-bitcoin-cash
+  (package
+    (name "libsecp256k1-bitcoin-cash")
+    (version "0.22.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Bitcoin-ABC/secp256k1")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1rnif3iny6pz1r3g69bagzr342mm3x0v66b60csnmm1rg44bd5v1"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (arguments
+     '(#:configure-flags '("--enable-module-recovery"
+                           "--enable-experimental"
+                           "--enable-module-ecdh"
+                           "--disable-jni"
+                           "--with-bignum=no"
+                           "--enable-module-schnorr"
+                           "--disable-static"
+                           "--enable-shared")))
+    (synopsis "Optimized C library for EC operations on curve secp256k1")
+    (description
+     "Optimized C library for cryptographic operations on curve secp256k1.
+
+This library is used for consensus critical cryptographic operations on the
+Bitcoin Cash network.
+
+Features:
+
+@itemize
+@item secp256k1 ECDSA signing/verification and key generation.
+@item secp256k1 Schnorr signing/verification (Bitcoin Cash Schnorr variant).
+@item Additive and multiplicative tweaking of secret/public keys.
+@item Serialization/parsing of secret keys, public keys, signatures.
+@item Constant time, constant memory access signing and pubkey generation.
+@item Derandomized ECDSA (via RFC6979 or with a caller provided function).
+@item Very efficient implementation.
+@item Suitable for embedded systems.
+@item Optional module for public key recovery.
+@item Optional module for ECDH key exchange (experimental).
+@item Optional module for multiset hash (experimental).
+@end itemize\n")
+    (home-page "https://github.com/Bitcoin-ABC/secp256k1")
+    (license license:expat)))
+
 (define-public stoken
   (package
     (name "stoken")