diff options
author | Sharlatan Hellseher <sharlatanus@gmail.com> | 2024-09-09 12:40:44 +0100 |
---|---|---|
committer | Sharlatan Hellseher <sharlatanus@gmail.com> | 2024-09-09 21:05:19 +0100 |
commit | b4137cf2f33dab056076f25ab7686138c9f8a6b2 (patch) | |
tree | 807e17c020622091487d69673c2aa27b150bfd3a | |
parent | 9fdf5961b2b2a115a7d8b2747c6b74dd8d2b17a5 (diff) | |
download | guix-b4137cf2f33dab056076f25ab7686138c9f8a6b2.tar guix-b4137cf2f33dab056076f25ab7686138c9f8a6b2.tar.gz |
gnu: Add go-github-com-decred-dcrd-dcrec-secp256k1-v4.
* gnu/packages/golang-crypto.scm (go-github-com-decred-dcrd-dcrec-secp256k1-v4): New variable.
Change-Id: Ibf57a9970c702bf95625e4145cf9630b0cb4d16c
-rw-r--r-- | gnu/packages/golang-crypto.scm | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm index 35c84ea573..0d68e4b216 100644 --- a/gnu/packages/golang-crypto.scm +++ b/gnu/packages/golang-crypto.scm @@ -594,6 +594,67 @@ one-time authenticator as specified in and AVX acceleration and zero allocations.") (license license:isc))) +(define-public go-github-com-decred-dcrd-dcrec-secp256k1-v4 + (package + (name "go-github-com-decred-dcrd-dcrec-secp256k1-v4") + (version "4.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/decred/dcrd") + (commit (go-version->git-ref + ;; XXX: While waiting on consensus: + ;; - https://issues.guix.gnu.org/52362 + ;; - https://issues.guix.gnu.org/63001 + ;; - https://issues.guix.gnu.org/63647 + ;; - https://issues.guix.gnu.org/69827 + (string-append "dcrec/secp256k1/v" version))))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19yqrrspm6n1x7wa1chqj0j95bc5w02ygddr06ajzf6x7i7q09q5")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packed as separated + ;; packages. Delete any intersecting ones to prevent "Permission + ;; denied" when they are in use as inputs. + (for-each delete-file-recursively (list "crypto/blake256")))))) + (build-system go-build-system) + (arguments + (list + ;; It needs to be github.com/decred/dcrd/dcrec/secp256k1/v4 + #:import-path "github.com/decred/dcrd/dcrec/secp256k1" + #:unpack-path "github.com/decred/dcrd" + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'adjust-import-path + (lambda* (#:key import-path #:allow-other-keys) + (let* ((origin (string-append #$output "/src/" import-path) ) + (tmp (string-append #$output "/src/" "_tmp")) + (import-path (string-append origin "/v4"))) + (format #t "Adjusting paths: ~a~%~a~%~a~%" origin tmp import-path) + (mkdir tmp) + (copy-recursively origin tmp) + (delete-file-recursively origin) + (mkdir-p import-path) + (rename-file tmp import-path))))))) + (propagated-inputs + (list go-github-com-decred-dcrd-crypto-blake256)) + (home-page "https://github.com/decred/dcrd") + (synopsis "Optimized secp256k1 elliptic curve operations") + (description + "This package provides an optimized pure Go implementation of elliptic +curve cryptography operations over the secp256k1 curve as well as data +structures and functions for working with public and private secp256k1 keys as +cpecified in the @url{https://www.secg.org/sec2-v2.pdf} standard. + +In addition, sub packages are provided to produce, verify, parse, and +serialize ECDSA signatures and EC-Schnorr-DCRv0 (a custom Schnorr-based +signature scheme specific to Decred) signatures. See the README.md files in +the relevant sub packages for more details about those aspects.") + (license license:isc))) + (define-public go-github-com-dgryski-go-farm (package (name "go-github-com-dgryski-go-farm") |