be5b1f7103
- Change `sq pki link retract` to use the NULL policy when resolving user IDs. It's safer to retract a link for a user ID than to refuse. |
||
---|---|---|
src | ||
subplot | ||
tests | ||
.dockerignore | ||
.gitattributes | ||
.gitignore | ||
.gitlab-ci.yml | ||
build.rs | ||
Cargo.lock | ||
Cargo.toml | ||
Containerfile | ||
LICENSE.txt | ||
NEWS | ||
openpgp-policy.toml | ||
README.md | ||
sq-subplot.md | ||
sq.subplot |
sq, the Sequoia-PGP command line tool
Sequoia-PGP is an implementation of OpenPGP in Rust. It includes a
suite of library crates, which are meant to be used from applications.
This crate provides the sq
command line application. sq
is aimed
at command line users as a way to use OpenPGP conveniently from the
command line.
See the sq user documentation for instructions. The program also has built-in
help, using the --help
option and help
subcommand:
$ sq help
...
You can also browse the manual pages, look at our acceptance criteria, and browse the rustdoc output if you want to learn about the implementation.
Installing
The sq
tool can be installed using cargo:
cargo install sequoia-sq
Please see sequoia-openpgp's README for how to install build dependencies on your system.
Building from source
This crate can be built from a source checkout using the standard
cargo
toolchain:
cargo build
The above creates the sq
executable, the manual pages, and its shell
completions. By default, the manual pages and shell completions are
put into the cargo
target directory, but the exact location is
unpredictable. To write the assets to a predictable location, set the
environment variable ASSET_OUT_DIR
to a suitable location.
Using a Container (Docker, Podman, etc.)
The command line tool sq
can also be built using an OCI compatible image
builder, eg. podman or docker:
$ podman build -f Containerfile -t sq .
$ podman run --rm -i sq --help
You can then use sq in the container.
For example searching for a certificate:
$ podman run --rm -i sq network search 653909A2F0E37C106F5FAF546C8857E0D8E8F074
All sq state is stored under /sequoia
inside of the container, thus if you
would like to persist the state between container runs you may bind mount the
directory on the host.
$ mkdir sq-container # create a directory on the host where you will mount the working dir from the container
$ podman run --rm -i -v $PWD/sq-container:/sequoia sq network search 653909A2F0E37C106F5FAF546C8857E0D8E8F074
$ podman run --rm -i -v $PWD/sq-container:/sequoia sq inspect --cert 653909A2F0E37C106F5FAF546C8857E0D8E8F074
The container environment has sq manpages and bash completion configured. By default the container will run sq as its "entrypoint", so if you would like to be dropped into a shell then override the entrypoint as follows.
# Note the "-t"; Necessary for the allocation of a pseudo-TTY.
$ podman run --rm -t -i --entrypoint bash sq
A current build of the container image is available from the gitlab registry.
Rename it to sq
locally so that it matches the above commands and for convenience.
$ podman pull registry.gitlab.com/sequoia-pgp/sequoia-sq:latest
$ podman tag registry.gitlab.com/sequoia-pgp/sequoia-sq:latest sq
$ podman run --rm -i sq --help