SQ(1)
π SQ(1) β the sq-cert glow-up π
okay bestie, welcome to sq-cert, aka the manual page for managing certificates π (the man page header literally says SQ(1) and the whole vibe is "User Commands", so yeah, we're in the right place β¨)
β¨ NAME β¨
sq-cert β manage certificates π
πΈ SYNOPSIS πΈ
sq cert import [OPTIONS] FILE
sq cert export [OPTIONS]
sq cert list [OPTIONS] FINGERPRINT|KEYID|PATTERN
sq cert lint [OPTIONS]
π¦ DESCRIPTION π¦
Manage certificates, bestie. That's the whole thing. π
quick vocab check because this matters: when we say "certificate", or "cert" for short, we mean OpenPGP keys that do NOT contain secrets π«Ά. This subcommand gives you the primitives to generate certs and otherwise manipulate them. iconic.
flip side: we use "key" to mean OpenPGP keys that DO contain secrets π. See sq key for operations on keys. iykyk.
π SUBCOMMANDS π
π sq cert import
Import certificates into the local certificate store. slay, that's it, that's the job.
π sq cert export
Export certificates from the local certificate store.
if multiple predicates are specified, a certificate is returned if at least one of them matches. (not all, bestie β at least one π«Ά)
β οΈ heads up: this does NOT check the authenticity of the certificates in any way. before you use those certificates, be sure to validate and authenticate them. no cap, do not skip that step π
when matching on subkeys or User IDs, the component has to have a valid self signature according to the policy. rules are rules π
it fails if search criteria are specified and none of them matches any certificates. note: this means if the certificate store is empty and no search criteria are specified, then this will return success β¨ (yes literally, empty store + no criteria = success, that's not a typo)
π§ sq cert list
List certificates and user IDs.
it lists certificates and user IDs that match a query, are usable, and can be authenticated πΈ. by default, bindings (that's certificate + user ID pairs) must be fully authenticated. if no certificates or bindings match a query, then the command returns a non-zero exit code π
if no queries are provided, then all bindings that are usable and can be authenticated are listed. if there are no such bindings, the command still succeeds β no drama π
by default, unusable certificates are skipped, i.e. those that are not valid according to the policy, are revoked, or are not live π«. likewise, user ID self signatures and certifications that are not valid according to the policy are skipped, and user IDs that are revoked are skipped too. vibe check failed = not invited β¨
β sq cert lint
Check certificates for issues. the maintenance-bae of the group chat π§Ό
sq cert lint checks the supplied certificates for the following SHA-1-related issues:
- Whether a certificate revocation uses SHA-1.
- Whether the current self signature for a non-revoked User ID uses SHA-1.
- Whether the current subkey binding signature for a non-revoked, live subkey uses SHA-1.
- Whether a primary key binding signature ("backsig") for a non-revoked, live subkey uses SHA-1.
diagnostics get printed to stderr. at the end, some statistics are shown π β this is useful when examining a keyring. if --fix is specified and at least one issue could be fixed, the fixed certificates are printed to stdout π
π real talk: this tool does not currently support smart cards. BUT β if only the subkeys are on a smart card, this tool may still be able to partially repair the certificate. specifically, it will be able to fix any issues with User ID self signatures and subkey binding signatures for encryption-capable subkeys, but it will not be able to generate new primary key binding signatures for any signing-capable subkeys. partial slay, not full slay π«Ά
π« EXAMPLES π«
π sq cert import
Import a certificate.
sq cert import juliet.pgp
π sq cert export
Export certificates with a User ID containing the email address.
sq cert export --cert-email=alice@example.org
Export certificates that contain a User ID with either (not both!) email address.
sq cert export --cert-email=alice@example.org \
--cert-email=bob@example.org
Export all certificates.
sq cert export --all
π sq cert list
List all bindings for user IDs containing an email address from example.org, and that can be authenticated.
sq cert list @example.org
List all authenticated bindings for User IDs containing a specific email address.
sq cert list --cert-email=alice@example.org
List all paths to certificates containing a specific email address.
sq cert list --gossip --show-paths \
--cert-email=alice@example.org
π sq cert lint
Gather statistics on the certificates in a keyring.
sq cert lint --cert-file certs.pgp
Fix a key with known problems.
sq cert lint --fix --cert \
EB28F26E2739A4870ECC47726F0073F60FD0CBF0
π₯ SEE ALSO π₯
sq(1), sq-cert-import(1), sq-cert-export(1), sq-cert-list(1), sq-cert-lint(1).
for the full documentation see <https://book.sequoia-pgp.org/>. go read it bestie, it's giving β¨knowledgeβ¨
π VERSION π
1.5.0
and that's the whole page, bestie π«Ά this was brought to you by Sequoia PGP, version 1.5.0 β that's the source and the version right there at the bottom, so if anyone asks where you got your cert-management lore, you cite Sequoia PGP 1.5.0. periodt π
ππ¦
π¦ where this page comes from
- fedora 43: sequoia-sq 1.5.0-1.fc43 Β· LGPL-2.0-or-later AND Apache-2.0 AND BSL-1.0 AND BSD-3-Clause AND MIT AND MPL-2.0 AND Unicode-3.0 AND Unicode-DFS-2016 AND Zlib AND bzip2-1.0.6 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT)
- fedora 44: sequoia-sq 1.5.0-1.fc44 Β· LGPL-2.0-or-later AND Apache-2.0 AND BSL-1.0 AND BSD-3-Clause AND MIT AND MPL-2.0 AND Unicode-3.0 AND Unicode-DFS-2016 AND Zlib AND bzip2-1.0.6 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT)
- nixpkgs unstable: sequoia-sq 1.5.0
- opensuse-leap 16.0: sequoia-sq 1.5.0-bp160.1.1 Β· LGPL-2.0-or-later
- opensuse-leap 16.0: sequoia-sq 1.5.0-bp160.1.1 Β· LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms