summaryrefslogtreecommitdiff
path: root/guix/pk-crypto.scm
Commit message (Collapse)AuthorAge
* publish: The public and private keys are now SRFI-39 parameters.Ludovic Courtès2017-03-22
| | | | | | | | | | | | * guix/scripts/publish.scm (%default-options): Add 'public-key-file' and 'private-key-file'. (lazy-read-file-sexp): Remove. (%private-key, %public-key): Turn into SRFI-39 parameters. (signed-string, render-narinfo): Adjust accordingly. (guix-publish): Honor 'public-key-file' and 'private-key-file' from OPTS. Use 'parameterize'. * guix/pk-crypto.scm (read-file-sexp): New procedure. * tests/publish.scm: Initialize '%public-key' and '%private-key'.
* utils: Move base16 procedures to (guix base16).Ludovic Courtès2017-03-16
| | | | | | | | | | | | | | | * guix/utils.scm (bytevector->base16-string, base16-string->bytevector): Move to... * guix/base16.scm: ... here. New file. * tests/utils.scm ("bytevector->base16-string->bytevector"): Move to... * tests/base16.scm: ... here. New file. * Makefile.am (MODULES): Add guix/base16.scm. (SCM_TESTS): Add tests/base16.scm. * build-aux/download.scm, guix/derivations.scm, guix/docker.scm, guix/import/snix.scm, guix/pk-crypto.scm, guix/scripts/authenticate.scm, guix/scripts/download.scm, guix/scripts/hash.scm, guix/store.scm, tests/hash.scm, tests/pk-crypto.scm: Adjust imports accordingly.
* pk-crypto: Improve documentation of 'key-type'.Ludovic Courtès2015-03-18
| | | | * guix/pk-crypto.scm (key-type): Improve docstring.
* Add (guix gcrypt).Ludovic Courtès2015-01-26
| | | | | | | * guix/gcrypt.scm: New file. * Makefile.am (MODULES): Add it. * guix/pk-crypto.scm: Use it. (libgcrypt-func, gcrypt-version): Remove.
* pk-crypto: Improve docstring of signature-related procedures.Ludovic Courtès2015-01-04
| | | | * guix/pk-crypto.scm (bytevector->hash-data, sign): Augment docstring.
* pk-crypto: Add pretty-printer to 'gcry-error' exceptions.Ludovic Courtès2014-04-22
| | | | | | | | | | | | | * guix/pk-crypto.scm (string->canonical-sexp, sign, generate-key): Pass the procedure name as the first argument to 'throw'. (gcrypt-error-printer): New procedure. <top level>: Add call to 'set-exception-printer!'. * guix/nar.scm (restore-one-item): Add 'proc' parameter to 'catch' handler for 'gcry-error. * guix/scripts/archive.scm (%options, generate-key-pair, authorize-key): Likewise. * guix/scripts/substitute-binary.scm (narinfo-signature->canonical-sexp): Likewise.
* pk-crypto: Use ISO-8859-1 for strings passed to 'gcry_sexp_new'.Ludovic Courtès2014-04-22
| | | | | | | * guix/pk-crypto.scm (string->canonical-sexp): Pass "ISO-8859-1" as the 2nd argument to 'string->pointer'. * tests/pk-crypto.scm ("version"): New test. ("hash corrupt due to restrictive locale encoding"): New test.
* pk-crypto: Don't use Ed25519 when libgcrypt is older than 1.6.0.Ludovic Courtès2014-03-20
| | | | | | | * guix/pk-crypto.scm (gcrypt-version): New procedure. * guix/scripts/archive.scm (%key-generation-parameters): New variable. (%options) <generate-key>: Use it. * tests/pk-crypto.scm ("sign + verify, Ed25519"): Skip if using gcrypt < 1.6.0.
* pk-crypto: Use RFC6979 when signing with an ECC or DSA key.Ludovic Courtès2014-03-19
| | | | | | | | | | | | | | * guix/pk-crypto.scm (bytevector->hash-data): Add #:key-type parameter. Use the 'pkcs1' flag when KEY-TYPE is 'rsa', and 'rfc6979' when KEY-TYPE is 'ecc' or 'dsa'. (key-type): New procedure. * guix/scripts/authenticate.scm (read-hash-data): Add 'key-type' parameter. Pass it to 'bytevector->hash-data'. Adjust caller accordingly. * tests/pk-crypto.scm (%ecc-key-pair): New variable. ("key-type"): New test. ("sign + verify"): Pass #:key-type to 'bytevector->hash-data'. ("sign + verify, Ed25519"): New test.
* archive: Add '--generate-key'.Ludovic Courtès2013-12-30
| | | | | | | | | | | | * guix/pk-crypto.scm (error-source, error-string): New procedures. * guix/pki.scm (%private-key-file): New variable. * guix/scripts/archive.scm (show-help): Document '--generate-key'. (%options): Add "generate-key". (generate-key-pair): New procedure. (guix-archive): Call 'generate-key' when OPTS contains a 'generate-key' pair. * doc/guix.texi (Setting Up the Daemon): Suggest generating a key pair. (Invoking guix archive): Document '--generate-key'.
* pk-crypto: Fix 'canonical-sexp->sexp' for atoms.Ludovic Courtès2013-12-30
| | | | | | * guix/pk-crypto.scm (canonical-sexp->sexp): Add hack to extract an atom's buffer. * tests/pk-crypto.scm ("sexp->canonical-sexp->sexp"): Add sample.
* pk-crypto: Work around Libgcrypt bug <https://bugs.g10code.com/gnupg/issue1594>.Ludovic Courtès2013-12-30
| | | | | | | * guix/pk-crypto.scm (canonical-sexp-fold): Call 'nth-data' before 'nth' to work around <https://bugs.g10code.com/gnupg/issue1594>. * tests/pk-crypto.scm ("https://bugs.g10code.com/gnupg/issue1594"): New test.
* pk-crypto: Add canonical-sexp to sexp conversion procedures.Ludovic Courtès2013-12-29
| | | | | | | * guix/pk-crypto.scm (canonical-sexp-fold, canonical-sexp->sexp, sexp->canonical-sexp): New procedures. * tests/pk-crypto.scm ("canonical-sexp->sexp", "sexp->canonical-sexp->sexp"): New tests.
* pk-crypto: Add 'canonical-sexp-length' and related procedures.Ludovic Courtès2013-12-29
| | | | | | | * guix/pk-crypto.scm (canonical-sexp-length, canonical-sexp-null?, canonical-sexp-list?): New procedures. * tests/pk-crypto.scm ("canonical-sexp-length", "canonical-sexp-list?"): New tests.
* pk-crypto: 'canonical-sexp-nth-data' returns a symbol for "tokens".Ludovic Courtès2013-12-29
| | | | | | | | | | * guix/pk-crypto.scm (token-string?): New procedure. (canonical-sexp-nth-data): Return a symbol when the element is a "token", and a bytevector otherwise. (latin1-string->bytevector): Remove. (hash-data->bytevector): Adjust accordingly. * tests/pk-crypto.scm ("canonical-sexp-nth"): Adjust accordingly. Add octet string example.
* pk-crypto: Rename 'gcry-sexp' to 'canonical-sexp'.Ludovic Courtès2013-12-29
| | | | | | | * guix/pk-crypto.scm: Rename procedures, variables, etc. from 'gcry-sexp' to 'canonical-sexp'. Add comment with references. * guix/scripts/authenticate.scm, tests/pk-crypto.scm: Adjust accordingly.
* pk-crypto: Add a few sexp utility procedures.Ludovic Courtès2013-12-20
| | | | | | | | * guix/pk-crypto.scm (gcry-sexp-car, gcry-sexp-cdr, gcry-sexp-nth, gcry-sexp-nth-data, dereference-size_t, latin1-string->bytevector, hash-data->bytevector): New procedures. * tests/pk-crypto.scm ("gcry-sexp-car + cdr", "gcry-sexp-nth", "gcry-sexp-nth-data", "bytevector->hash-data->bytevector"): New tests.
* Add (guix pk-crypto).Ludovic Courtès2013-12-20
* guix/pk-crypto.scm, tests/pk-crypto.scm: New files. * Makefile.am (MODULES, SCM_TESTS): Add them.