aperezdc / signify

OpenBSD tool to sign and verify signatures on files. Portable version.
ISC License
276 stars 16 forks source link
c openbsd portable sign verify verifying-signatures

Signify - Sign and Verify

Build Status

OpenBSD tool to sign and verify signatures on files. This is a portable version which uses libbsd (version 0.11 or newer is required).

See https://www.tedunangst.com/flak/post/signify for more information.

License

Signify is distributed under the terms of the ISC license.

Installation

Some GNU/Linux distributions have readily available packages in their repositories. It is recommended to use these, unless you absolutely need to build from source code:

Building

Dependencies

If your system does not provide a package for libbsd, it is possible to use a bundled copy, check the build options section for more details.

Options

The following options can be passed to Make:

For example, you can build a size-optimized version with:

make EXTRA_CFLAGS='-Os -s' LTO=1

Convenience Targets

The following Make targets are provided as convenience for building static signify binaries:

Release Signing

PGP

PGP detached signatures of source tarballs (.asc) are done with key 0x91C559DBE4C9123B. The key can be obtained with the following command:

gpg --keyserver hkps://keys.openpgp.org --recv-keys 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B

Assuming that both the tarball and its signature are in the same directory, a release can be checked using:

gpg --verify signify-<version>.tar.xz.asc

Signify

An OpenBSD-style SHA256.sig signed checksum is provided alongside with each release. The signing key can be found at keys/signifyportable.pub, its contents are:

untrusted comment: Signify portable release signing public key
RWRQFCY809DUoWEHxWmoTNtxph6yUlWNsjfW54PqLI6S3dWfuZN4Ovj1

To verify a release, save the associated SHA256.sig file in the same directory as the source tarball. If the signing key is into a file named signifyportable.pub, then use:

signify -C -p signifyportable.pub -x SHA256.sig

The above Signify public key can itself be verified using the same PGP key used for release tarballs. Grab the keys/signifyportable.pub.asc file as well, the run:

gpg --verify signifyportable.pub.asc

Troubleshooting

Other implementations