summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-01-16 10:43:29 +0100
committerLudovic Courtès <ludo@gnu.org>2020-01-16 18:30:57 +0100
commit4fe01b09ea0b304b963b7fd9f168439ddfb515c1 (patch)
treeb695400de7e4dec42df4d20bfee1b28c484ffa4b
parenta2548a3b5efb1ff17b19bc86e86940875c0a9f40 (diff)
downloadguix-4fe01b09ea0b304b963b7fd9f168439ddfb515c1.tar.gz
publish: Export 'signed-string'.
* guix/scripts/publish.scm (signed-string): Export and improve docstring.
* tests/publish.scm ("/*.narinfo")
("/*.narinfo with properly encoded '+' sign"): Adjust accordingly.
-rw-r--r--guix/scripts/publish.scm4
-rw-r--r--tests/publish.scm8
2 files changed, 6 insertions, 6 deletions
diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm
index 71a349d2fe..f5b2f5fd4e 100644
--- a/guix/scripts/publish.scm
+++ b/guix/scripts/publish.scm
@@ -64,6 +64,7 @@
   #:use-module ((guix build syscalls) #:select (set-thread-name))
   #:export (%public-key
             %private-key
+            signed-string
 
             guix-publish))
 
@@ -237,7 +238,8 @@ if ITEM is already compressed."
     ("Priority" . 100)))
 
 (define (signed-string s)
-  "Sign the hash of the string S with the daemon's key."
+  "Sign the hash of the string S with the daemon's key.  Return a canonical
+sexp for the signature."
   (let* ((public-key (%public-key))
          (hash (bytevector->hash-data (sha256 (string->utf8 s))
                                       #:key-type (key-type public-key))))
diff --git a/tests/publish.scm b/tests/publish.scm
index 204cfb4974..e43310ef00 100644
--- a/tests/publish.scm
+++ b/tests/publish.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -153,8 +153,7 @@ References: ~a~%"
          (signature (base64-encode
                      (string->utf8
                       (canonical-sexp->string
-                       ((@@ (guix scripts publish) signed-string)
-                        unsigned-info))))))
+                       (signed-string unsigned-info))))))
     (format #f "~aSignature: 1;~a;~a~%"
             unsigned-info (gethostname) signature))
   (utf8->string
@@ -184,8 +183,7 @@ References: ~%"
          (signature (base64-encode
                      (string->utf8
                       (canonical-sexp->string
-                       ((@@ (guix scripts publish) signed-string)
-                        unsigned-info))))))
+                       (signed-string unsigned-info))))))
     (format #f "~aSignature: 1;~a;~a~%"
             unsigned-info (gethostname) signature))