diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-01-26 21:42:23 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-01-26 21:58:12 +0100 |
commit | 19a454448b97d2e84164f8add9aaed42c645e338 (patch) | |
tree | 6aa2b2d52788c3029521184191f2366000aa02c6 /guix/hash.scm | |
parent | 4862bc4a1a20d2abf50b39713cd12985f38adf7c (diff) | |
download | gnu-guix-19a454448b97d2e84164f8add9aaed42c645e338.tar gnu-guix-19a454448b97d2e84164f8add9aaed42c645e338.tar.gz |
hash: Initialize libgcrypt before use.
Fixes <http://bugs.gnu.org/19677>.
Reported by Mark H Weaver <mhw@netris.org>.
* guix/hash.scm: Use (guix gcrypt).
(sha256, open-sha256-md, md-write, md-close): Use 'libgcrypt-func'
instead of 'dynamic-func'.
Diffstat (limited to 'guix/hash.scm')
-rw-r--r-- | guix/hash.scm | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/guix/hash.scm b/guix/hash.scm index 593c2e1aee..a61dc980e6 100644 --- a/guix/hash.scm +++ b/guix/hash.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,7 +17,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix hash) - #:use-module (guix config) + #:use-module (guix gcrypt) #:use-module (rnrs bytevectors) #:use-module (rnrs io ports) #:use-module (system foreign) @@ -46,8 +46,7 @@ (define sha256 (let ((hash (pointer->procedure void - (dynamic-func "gcry_md_hash_buffer" - (dynamic-link %libgcrypt)) + (libgcrypt-func "gcry_md_hash_buffer") `(,int * * ,size_t)))) (lambda (bv) "Return the SHA256 of BV as a bytevector." @@ -58,8 +57,7 @@ (define open-sha256-md (let ((open (pointer->procedure int - (dynamic-func "gcry_md_open" - (dynamic-link %libgcrypt)) + (libgcrypt-func "gcry_md_open") `(* ,int ,unsigned-int)))) (lambda () (let* ((md (bytevector->pointer (make-bytevector (sizeof '*)))) @@ -70,20 +68,17 @@ (define md-write (pointer->procedure void - (dynamic-func "gcry_md_write" - (dynamic-link %libgcrypt)) + (libgcrypt-func "gcry_md_write") `(* * ,size_t))) (define md-read (pointer->procedure '* - (dynamic-func "gcry_md_read" - (dynamic-link %libgcrypt)) + (libgcrypt-func "gcry_md_read") `(* ,int))) (define md-close (pointer->procedure void - (dynamic-func "gcry_md_close" - (dynamic-link %libgcrypt)) + (libgcrypt-func "gcry_md_close") '(*))) |