Hi Guix, let's say I wanted to add my own substitute server to my config.scm. At the time of writing, I would have to add said server's public key to the authorized-keys of my guix-configuration like so: (cons* (local-file "my-key.pub") %default-authorized-guix-keys) or similarily with append. This local-file incantation is however pretty weak. It changes based on the current working directory and even if I were to use an absolute path, I'd have to copy both that file and the config.scm to a new machine were I to use the same configuration there as well.
However, it turns out that the format for said key files is some actually pretty readable Lisp-esque stuff. For instance, an ECC key reads like (public-key (ecc (curve CURVE) (q #Q#))) with spaces omitted for simplicity. Were it not for the (q #Q#) bit, we could construct it using scheme- file. In fact, it is so simple that in my local config I now do exactly that. (define-record-type* <ecc-key> ...) (define-gexp-compiler (ecc-key-compiler (ecc-key <ecc-key>) ...) ...) (ecc-key (name "my-key.pub") (curve 'Ed25519) (q "ABCDE...")) Could/should we support such formats out of the box? WDYT? Regards, Liliana