unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Signed archive export/import
@ 2013-12-20 16:33 Ludovic Courtès
  2013-12-20 17:04 ` Andreas Enge
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Ludovic Courtès @ 2013-12-20 16:33 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 2016 bytes --]

Hi!

With commit 526382f, the daemon supports exporting signed “Nix archives”
of a set of store files, and importing signed archives (using public key
crypto.)  This is useful, for instance, to transfer files from one
machine to another, as is the case in a typical Hydra build farm.

The daemon is equipped to call out to the ‘openssl’ program for signing
and signature verification, but the goal here was to do away with
OpenSSL, since we have a couple of great alternatives in GNU.  ;-)
(In practice this means that our crypto material uses a different format
that the one used in Nix.)

So the (guix pk-crypto) module provides bindings to the public key API
of GNU Libgcrypt, and the ‘guix authenticate’ command is a drop-in
replacement for the ‘openssl’ program that the daemon invokes (see
‘local-store.cc’.)

The modus operandi is that administrators add a libgcrypt-generated key
pair to /etc/guix/signing-key.{pub,sec} (typically an RSA key pair).
Exported archives are automatically signed with the secret key, and
imported archives must carry a valid signature verified with
signing-key.pub.

I find the latter a bit limiting, as it means that all the machines in
the build farm must have the same key pair installed.  So instead, I’m
inclined to add an ‘authorized key’ list, as with SSH.


From there, we need a few more things:

  - a ‘guix archive’ command to easily import/export archives, and to
    generate a key pair;

  - a ‘guix copy’ command to copy a set of store files (and their
    dependencies) between two machines (similar to ‘nix-copy-closure’);

  - a daemon “build hook” to automatically off-load builds to remote
    machines (see <http://nixos.org/nix/manual/#chap-distributed-builds>
    for an overview.)

The practical goal is to have an additional Intel build machine, and
ideally a mips64 build machine hooked up into Hydra by the end of
January.

As usual, feedback welcome!

Ludo’.

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-01-10 13:26 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-20 16:33 Signed archive export/import Ludovic Courtès
2013-12-20 17:04 ` Andreas Enge
2013-12-20 17:54   ` Ludovic Courtès
2013-12-20 18:13     ` Andreas Enge
2013-12-20 23:13       ` Ludovic Courtès
2013-12-22  0:14 ` Ludovic Courtès
2013-12-29 15:11 ` Ludovic Courtès
2014-01-03 22:15   ` Ludovic Courtès
2014-01-10 13:21     ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).