SQ(1)

πŸ’– SQ-KEYRING β€” manage collections of keys or certs πŸ’–

okay bestie, welcome to the sq-keyring manual page, part of the SQ(1) squad 🫢 this is your group chat for managing keyrings and certrings, and yes we're gonna make it make sense. no cap.


✨ SYNOPSIS ✨

sq keyring list [OPTIONS] FILE
sq keyring split [OPTIONS] FILE
sq keyring merge [OPTIONS] FILE
sq keyring filter [OPTIONS] FILE

like, four little subcommands, one big vibe πŸ’…


🌸 DESCRIPTION 🌸

Manage collections of keys or certs. that's the whole job, and it eats every time.

So. Collections of keys or certificates β€” also known as "keyrings" when they contain secret key material, and "certrings" when they don't β€” are any number of concatenated certificates. literally just certificates holding hands in a row. πŸ¦‹

This subcommand provides tools to list, split, merge, and filter keyrings. that's the four-way friendship group right there.

note note note: in the docs for this subcommand, we sometimes use the terms keys and certs interchangeably. so if you see "key" and you're like "wait, cert?" … yeah. same thing here. keep up, it's fine πŸ’€

πŸŽ€ SUBCOMMANDS πŸŽ€

⭐ sq keyring list

List keys in a keyring. casual. iconic.

Prints the fingerprint as well as the primary userid for every certificate encountered in the keyring. so you get the receipts and the name. obsessed. ✨

⭐ sq keyring split

Split a keyring into individual keys.

Splitting up a keyring into individual keys helps with curating a keyring. think of it as spring cleaning but for certificates 🧹🌸

The converse operation is sq keyring merge. (they're the it-girl duo, one splits, one merges, balance πŸ’–)

⭐ sq keyring merge

Merge keys or keyrings into a single keyring.

Multiple versions of the same certificate are merged together. Where data is replaced (e.g., secret key material), data from the later certificate is preferred. so the newer one wins the argument, periodt.

⭐ sq keyring filter

Join keys into a keyring applying a filter.

This can be used to filter keys based on given predicates, e.g. whether they have a user id containing an email address with a certain domain. Additionally, the keys can be pruned to only include components matching the predicates. (pruning = keeping only the parts that match, very main character energy πŸ‘‘)

If no filters are supplied, everything matches. no filters, no problem, everyone's invited to the party πŸŽ‰

If multiple predicates are given, they are or'ed, i.e., a key matches if any of the predicates match. To require all predicates to match, chain multiple invocations of this command. See EXAMPLES for inspiration. (iykyk β€” chaining is the secret tech πŸ”₯)

🚨 note: this command is considered experimental and may change in future releases. To acknowledge this, you must give the --experimental flag when invoking this command. no flag, no entry. rules are rules bestie πŸ”

🌈 EXAMPLES 🌈

πŸ’« sq keyring list

List all certificates.

sq keyring list certs.pgp

List all certificates with a user ID on example.org.

sq keyring filter --experimental --domain=example.org \
       certs.pgp \
       | sq keyring list

πŸ’« sq keyring split

Split all certificates.

sq keyring split certs.pgp

Split all certificates, merging them first to avoid duplicates.

sq keyring merge certs.pgp \
       | sq keyring split

πŸ’« sq keyring merge

Merge certificate updates.

sq keyring merge bob.pgp bob-updates.pgp

πŸ’« sq keyring filter

Convert all keys to certificates (i.e. remove any secret key material).

sq keyring filter --experimental --to-cert certs.pgp

Get all certificates with a user ID on example.org.

sq keyring filter --experimental --domain=example.org \
       certs.pgp

Get all certificates with a user ID on example.org or example.net.

sq keyring filter --experimental --domain=example.org \
       --domain=example.net certs.pgp

Get all certificates with a name user ID matching Romeo.

sq keyring filter --experimental --name=Romeo certs.pgp

Get all certificates with a name user ID matching Romeo on example.org.

sq keyring filter --experimental --domain=example.org \
       certs.pgp \
       | sq keyring filter --experimental --name=Romeo

Get all certificates with a user ID on example.org, pruning other user IDs.

sq keyring filter --experimental --domain=example.org \
       --prune-certs certs.pgp

🫢 SEE ALSO 🫢

For the full documentation see <https://book.sequoia-pgp.org/>. go read it, it's giving library πŸ“šβœ¨


πŸ‘‘ VERSION πŸ‘‘

1.5.0


k that's the whole page bestie, you ate πŸ’…βœ¨ this was Sequoia PGP's sq-keyring, version 1.5.0, and yeahβ€”that's the SQ(1) energy. mwah πŸŽ€πŸ’–πŸ¦‹

πŸ“¦ where this page comes from