Subject: CVS commit: pkgsrc/security/sequoia-sq
From: Thomas Klausner
Date: 2025-03-05 12:12:38
Message id: 20250305111238.D3295FBE1@cvs.NetBSD.org

Log Message:
sequoia-sq: update to 1.2.0.

* Changes in 1.2.0
** New functionality
   - `sq pki vouch list` lists certifications made by a particular
     certificate or made on a particular certificate.
   - `sq pki vouch replay` replays the certifications made by one
     certificate using another certificate.
   - `sq key rotate` generates a new certificate based on an existing
     one.  It also copies links, recreates certifications, and retires
     the old certificate.
** Notable fixes
   - `sq packet dump` no longer duplicates the PKESK or SKESK packet
     immediately preceding the SEIPD packet.
   - `sq key export` and `sq key subkey export` no longer export
     non-exportable signatures and cert components.
   - `sq --cli-version` was broken.  The check was reversed.  That is,
     instead of `sq` 1.1.0 saying that `sq --cli-version 1.0.0` is
     compatible, it said it is incompatible, and instead of saying
     that `sq --cli-version 1.2.0` is incompatible, it said that it is
     compatible.  In terms of the API, this should be considered a new
     feature.
   - `sq cert lint`, `sq inspect`, `sq packet dump`, and `sq pki link
     list` didn't check that certificates designated by user ID using
     e.g., `--cert-email`, are actually authenticated.  They are now
     correctly checked.

* Changes in 1.1.0
** New functionality
   - New argument `--unusable` for `sq cert list`, `sq pki identify`,
     `sq pki lookup`, and `sq pki authenticate`.  This option causes
     these commands to also show unusable bindings and certificates
     (i.e., those that are not valid according to the current policy,
     are revoked, or are expired).  Requires `--gossip`.
** Notable changes
   - Fix `--gossip`.  The `--gossip` option for `sq cert list`, `sq
     pki identify`, `sq pki lookup`, and `sq pki authenticate` was
     broken.  It is now fixed, and works as documented.  In terms of
     the API, this should be considered a new feature, as although the
     option was present, it did not work.
   - `sq cert list --cert FPR` incorrectly failed if all of a
     certificate's bindings are invalid (i.e., the bindings are
     invalid according to the cryptographic policy, or the user ID is
     revoked).  `sq cert list --cert FPR` now only considers the
     validity of the certificate.  Note: this command correctly
     succeeded when the certificate had no bindings.
  - `sq cert list` showed certificates with no user IDs, but it should
    only show authenticated bindings.  Certificates with no user IDs
    are no only shown when `--gossip` is provided.
* Changes in 1.0.0
** New functionality
   - `sq encrypt --for-self` now adds the certs configured under
     `encrypt.for-self` to the list of recipients.
   - `sq sign --signer-self` and `sq encrypt --signer-self` now add
     the keys configured under `sign.signer-self` to the list of
     signers.
   - `sq pki vouch add --certifier-self` and `sq pki vouch authorize
     --certifier-self` now use the key configured under
     `pki.vouch.certifier-self` as certification key.
   - `sq` now automatically imports certificates from GnuPG's
     certificate store.  Note: we only do this for the default Sequoia
     and GnuPG state directories.  Further, We don't parse the GnuPG
     configuration file, we just scan GnuPG's default cert stores.

** Notable changes
   - `sq pki link add`, `sq pki link authorize`, and `sq pki link
     retract` gain a new parameter, `--cert-special`, which allows
     addressing shadow CAs by symbolic names.  For instance, `sq pki
     link authorize --cert-special keys.openpgp.org --all
     --unconstrained` can be used to fully trust the keys.openpgp.org
     key server.  This also creates the shadow CA if it doesn't exist
     yet.
   - `sq sign --signature-file` now takes a value specifying where the
     signature should be written to.  It conflicts with `--output`.
   - `sq cert list` now takes cert designators, like `--cert-email`
     instead of `--email`.
   - `sq encrypt` now requires explicit opt-out for signing in the
     form of the `--without-signature` flag.
   - Remove the `--name` argument from `sq key approvals list`, `sq
     key approvals update`, `sq key userid revoke` and `sq pki path`,
     and remove the `--name-or-add` argument from `sq key userid
     revoke`.
   - The arguments `--userid-or-add`, and `--email-or-add` have
     respectively been renamed to `--add-userid`, and `--add-email`.
   - Change `sq pki link add --email` and `sq pki link authorize
     --email` to use a user ID with just the specified email address,
     if the email address is part of a self-signed user ID.  That is,
     if the certificate has the self-signed user ID "Alice
     <alice@example.org>", then `--email alice@example.org` would have
     selected "Alice <alice@example.org>" to link, but now it selects
     "<alice@example.org>".
   - Add `sq pki link add --userid-by-email`, and `sq pki link
     authorize --userid-by-email`, which use the self-signed user ID
     with the specified email address.  That is, if the certificate
     has the self-signed user ID "Alice <alice@example.org>", then
     `--userid-by-email alice@example.org` selects "Alice
     <alice@example.org>" to link.
   - Add `sq pki link retract --userid-by-email`, which selects a
     self-signed user ID with the specified email address.
   - Change `sq pki vouch add --email` and `sq pki vouch authorize
     --email` to use a user ID with just the specified email address,
     if the email address is part of a self-signed user ID.  That is,
     if the certificate has the self-signed user ID "Alice
     <alice@example.org>", then `--email alice@example.org` would have
     selected "Alice <alice@example.org>" for certification, but now
     it selects "<alice@example.org>".
   - Add `sq pki vouch add --userid-by-email`, and `sq pki vouch
     authorize --userid-by-email`, which use the self-signed user ID
     with the specified email address.  That is, if the certificate
     has the self-signed user ID "Alice <alice@example.org>", then
     `--userid-by-email alice@example.org` selects "Alice
     <alice@example.org>" for certification.
   - Change `sq key userid revoke --email` to use a user ID with just
     the specified email address, if the email address is part of a
     self-signed user ID.  That is, if the certificate has the
     self-signed user ID "Alice <alice@example.org>", then `--email
     alice@example.org` would have selected "Alice
     <alice@example.org>" for revocation, but now it selects
     "<alice@example.org>".
   - Add `sq key userid revoke --userid-by-email`, which uses the
     self-signed user ID with the specified email address.  That is,
     if the certificate has the self-signed user ID "Alice
     <alice@example.org>", then `--userid-by-email alice@example.org`
     selects "Alice <alice@example.org>" for revocation.
   - When writing to a file output, we first write to a temporary
     file, then rename the file at the end of the operation so that it
     has its desired name.  There are two benefits: no one sees
     partially written files, and one can safely use the same file as
     input and output.
   - `sq download --signature` is now called `sq download
     --signature-url`.
   - `sq download` now requires one of `--signature-url`, `--message`,
     or `--cleartext` like `sq verify`.

* Changes in 0.40.0
** New functionality
   - New subcommand `sq download`, which downloads a file and a
     signature file, and then authenticates the file.
** Notable changes
   - `sq toolbox keyring merge` now supports merging bare revocation
     certificates.
   - `sq verify` now deletes the output file on failure.
   - `sq decrypt` now deletes the output file on failure.
   - Add a global option, `--policy-as-of`, that selects the
     cryptographic policy as of the specified time.
   - `sq key subkey export` takes an additional argument, `--cert`,
     which is required.  The specified keys must be attached to that
     certificate.  This ensures that if a key is attached to multiple
     certificates, the correct certificate is exported.
   - Add a new argument, `--cli-version`, which requests a particular
     semver-compatible version of the CLI.  This enables breaking
     changes to the CLI in the future.
   - The `help` subcommand has been removed everywhere except at the
     top-level (`--help` still works).
   - If designated signers are specified for `sq verify`, `sq
     decrypt`, and `sq download`, they are now the only certificates
     that are considered when verifying signatures.  If no signers are
     specified, the certificate store is consulted.
   - The argument `sq cert lint --list-keys` has been removed.
   - `sq key list` now has a DWIM search parameter.
   - The flag `sq sign --detached` is now called `sq sign
     --signature-file`.
   - The flag `sq sign --clearsign` is now called `sq sign
     --cleartext`.
   - Both `sq sign` and `sq verify` now require an explicit mode,
     one of `--signature-file`, `--message`, or `--cleartext`.
   - The flag `sq --no-cert-store` has been replaced with `sq
     --cert-store=none`.
   - The flag `sq --no-key-store` has been replaced with `sq
     --key-store=none`.
   - Similarly, `sq --home=none` disables all state, unless explicitly
     re-enabled using `--cert-store` or `--key-store`.
   - `sq pki link add`, `sq pki link authorize`, `sq pki vouch
     certify`, and `sq pki vouch authorize` have a `--userid-or-add`
     flag.  Replace it with an `--userid-or-add` argument, and an
     `--email-or-add` argument.
   - The `--email` and `--email-or-add` arguments to `sq pki link add`,
     etc. cannot be used to designate a self-signed user ID, if
     multiple self-signed user IDs include the specified email
     address.  Previously, the arguments would designate all
     self-signed user IDs with the specified email address.
   - The new argument `sq sign --mode` can be used to create text
     signatures in addition to binary signatures.
   - The argument `sq network wkd publish --create` has been split
     into two arguments, `--create` and `--method`, avoiding an
     ambiguity when parsing the arguments.
   - `sq key userid revoke` no longer accepts the `--userid-or-add` flag
     to indicate that a user ID specified using `--userid`, an email
     specified using `--email`, or a name specified using `--name`
     should be used even if there is no corresponding self-signed user
     ID.  This functionality is replaced by the `--userid-or-add`,
     `--email-or-add` and `--name-or-add` arguments.
   - `sq pki path` previously interpreted the last positional argument
     as the user ID to authenticate.  Make it a named argument
     instead, `--userid`.
   - Add `sq pki path --email` and `sq pki path --name` as additional
     ways to specify the user ID to authenticate.
   - The argument `sq encrypt --set-metadata-time` has been removed.
   - The argument `sq encrypt --set-metadata-filename` now takes a
     string that specifies the file name to be set.
   - `sq pki authenticate`'s positional argument for specifying the
     certificate to authenticate must now be specified using a named
     argument, `--cert`.
   - `sq pki identify`'s positional argument for specifying the
     certificate to identify must now be specified using a named
     argument, `--cert`.
   - Drop `sq cert list --email`'s flag, and replace it with the
     `--userid` and `--email` positional arguments, which match on
     user IDs.
   - Drop `sq pki authenticate --email`'s flag, and replace it with
     the `--userid` and `--email` positional arguments, which match on
     user IDs.
   - Drop `sq pki lookup --email`'s flag, and replace it with the
     `--userid` and `--email` positional arguments, which match on
     user IDs.
   - `sq toolbox keyring` is now just `sq keyring`.
   - `sq toolbox packet` is now just `sq packet`.
   - `sq toolbox armor` is now `sq packet armor`.
   - `sq toolbox dearmor` is now `sq packet dearmor`.
   - `sq key userid revoke`, `sq pki link add`, `sq pki link
     authorize`, `sq pki vouch certify`, and `sq pki vouch authorize`
     now check that user IDs that are not self-signed are in canonical
     form.  Add a flag, `--allow-non-canonical-userids`, to disable
     this check.
   - `sq key approvals update` now requires an action, like
     `--add-authenticated`.
   - `sq key approvals --add-authenticated` is now a simple flag, and
     we always require full authentication.
   - `sq toolbox strip-userid` has been removed.
   - All cert designators now use the `--cert-` prefix, e.g.  `sq key
     export --email` has been changed to `sq key export --cert-email`
     for consistency reasons, and to free `--name`, `--email`, and
     `--userid` for user ID designators.
   - The `--binary` argument has been removed from all commands but
     those that emit signed and or encrypted messages.
   - The command `sq toolbox extract-cert` has been removed in favor
     of `sq key delete` and `sq key subkey delete`.
   - The command `sq packet split` now writes to stdout by default.
   - The argument `sq packets split --prefix` is now called
     `--output-prefix`.
   - `sq pki vouch certify` is now called `sq pki vouch add`.
   - We now certify newly generated keys with a per-host shadow CA.
   - The argument `sq encrypt --signature-notation` has been added.
   - All arguments to add signature notations have been renamed from
     `--notation` to `--signature-notation`.
   - When generating keys, either `--own-key` or `--shared-key` has to
     be given.  The former marks the key's user IDs as authenticated
     and makes it a trusted introducer.  The latter marks the key's
     user IDs as authenticated, and marks the key as a group key.
   - The argument `sq cert lint --export-secret-keys` has been
     removed: if a secret key is provided as file input, it will be
     emitted.
   - The argument `sq key subkey export --cert-file` has been removed.
   - `sq` now reads a configuration file that can be used to tweak a
     number of defaults, like the cipher suite to generate new keys,
     the set of key servers to query, and the cryptographic policy.
   - The command `sq keyring filter` is now considered experimental
     and may change in the future.  To acknowledge this, it has to be
     invoked with the `--experimental` flag.

Files:
RevisionActionfile
1.11modifypkgsrc/security/sequoia-sq/Makefile
1.4modifypkgsrc/security/sequoia-sq/PLIST
1.5modifypkgsrc/security/sequoia-sq/cargo-depends.mk
1.8modifypkgsrc/security/sequoia-sq/distinfo