sqpkiauthenticate
Authenticate a binding.
Authenticate a binding (a certificate and User ID) by looking for a path from the trust roots to the
specified binding in the Web of Trust. Because certifications may express uncertainty (i.e.,
certifications may be marked as conveying only partial or marginal trust), multiple paths may be needed.
An error is return if no binding could be authenticated to the specified level (by default: fully
authenticated, i.e., a trust amount of 120).
If any valid paths to the binding are found, they are printed on stdout whether they are sufficient to
authenticate the binding or not.
sqpkilookup
Lookup the certificates associated with a User ID.
Identifies authenticated bindings (User ID and certificate pairs) where the User ID matches the specified
User ID.
An error is return if no binding could be authenticated to the specified level (by default: fully
authenticated, i.e., a trust amount of 120).
If a binding could be partially authenticated (i.e., its trust amount is greater than 0), then the
binding is displayed, even if the trust is below the specified threshold.
sqpkiidentify
Identify a certificate.
Identify a certificate by finding authenticated bindings (User ID and certificate pairs).
An error is return if no binding could be authenticated to the specified level (by default: fully
authenticated, i.e., a trust amount of 120).
If a binding could be partially authenticated (i.e., its trust amount is greater than 0), then the
binding is displayed, even if the trust is below the specified threshold.
sqpkivouch
Manage certifications.
A vouch is a potentially public statement that something is true. In OpenPGP there are two main types of
statements that you can make: certifications, and authorizations.
You can assert that a certificate belongs to a particular entity. This says nothing about an entity's
trustworthiness. For instance, you might certify `bob@nsa.gov` for a given certificate. This just means
that you think the person behind the email address `bob@nsa.gov` really controls that certificate.
That's a useful statement to make even if you don't trust that person to act in your interest.
Alternatively you can say that you believe a certificate is a reasonable trusted introducer. A trusted
introducer is a third-party that you authorize to make introductions. For instance, your bank might have
a certification authority (CA). If you verify the CA's fingerprint, you can authorize it to make
certifications. That means that sq will use those certifications almost as if you made them. This is
convenient as now you can authenticate any of the bank's employee.
Authorizing a trusted introducer gives the trusted introducer a lot of power. You can constrain the
amount of power that you give it by saying that it is only authorized to certify user IDs that have an
email address in one or more domains, for instance. In this way, you can take advantage of the places
where your and a CA's interests are aligned, and protect yourself from potentially malicious actions.
For example, you could authorize your bank's CA to certify user IDs that have an email address in
`bank.com`. sq will then ignore any other certifications made by the CA.
sqpkilink
Manage authenticated certificate and User ID links.
Linking a certificate and User ID is one way of making `sq` consider a binding to be authentic. Another
way is to use `sq pki vouch add` to certify the binding with an explicitly configured trust root. The
linking functionality is often easier to work with, and the information is private by default.
Authenticated bindings can be used to designate a certificate using a symbolic name. For instance, using
`sq encrypt`'s `--for-userid` and `--for-email` options, a user can designate a certificate using a User
ID or an email address that is authenticated for that certificate.
`sq` also uses authenticated certificates to authenticate other data. For instance, `sq verify`
considers signatures made by an authenticated certificate to be authentic.
Users can create a link using `sq pki link add`. That link can later be retracted using `sq pki link
retract`. A certificate can also be accepted as a trusted introducer by using `sq pki link authorize`.
`sq` implements linking using non-exportable certifications, and an implicit trust root. An OpenPGP
certificate directory, the default certificate store used by `sq`, includes a local trust root, which is
stored under the `trust-root` special name. When the user instructs `sq` to accept a binding, `sq` uses
the local trust root to create a non-exportable certification, which it stores in the certificate
directory. In this way, operations that use the Web of Trust to authenticate a binding automatically use
links.
When a user retracts a link, `sq` creates a new, non-exportable certification with zero trust. This
certification suppresses the previous link.
sqpkipath
Verify the specified path.
A path is a sequence of certificates starting at the root, and a User ID. This function checks that each
path segment has a valid certification, which also satisfies any constraints (trust amount, trust depth,
regular expressions).
If a valid path is not found, then this subcommand also lints the path. In particular, it report if any
certifications are insufficient, e.g., not enough trust depth, or invalid, e.g., because they use SHA-1,
but the use of SHA-1 has been disabled.