Scroll to navigation

SOPV-VERIFY(1) Stateless OpenPGP Signature Verification SOPV-VERIFY(1)

NAME

sopv-verify - Verify detached OpenPGP signatures on a message

SYNOPSIS

sopv [--debug] verify [--not-before=DATE] [--not-after=DATE] [--] SIGNATURES CERTS [CERTS...] <DATA

DESCRIPTION

sopv verify returns 0 if any valid OpenPGP detached signature is made over the data on standard input from one of the specified OpenPGP certificates. If no valid OpenPGP signature is found, sopv verify returns non-zero.

It emits a stream of VERIFICATIONS (see VERIFICATIONS in sopv(1)) to standard output.

EXAMPLES

if sopv verify message.sig signer.cert < message > /dev/null; then

echo "message is signed" else
echo "no valid signature found" fi

To implement a no-rollbacks mechanism (e.g. for software upgrades):

LASTSIGDATE=$(cat lastsigdate || echo '1970-01-01T00:00:00Z')
rm -f verifs.out
if sopv verify --not-before=$LASTSIGDATE $SIG author.cert < $PKG > verifs.out; then

# do something with the now-verified "$PKG":
# ...
# prevent rollback to prior version:
cut -f1 -d' ' < verifs.out | head -n1 > lastsigdate fi

OPTIONS

Do not accept signatures made before the specified DATE. Supply DATE in ISO-8601 format, preferably in UTC (see DATE in sopv(1)).
Do not accept signatures made after the specified DATE. Supply DATE in ISO-8601 format, preferably in UTC (see DATE in sopv(1)).

ARGUMENTS

sopv verify looks for OpenPGP signatures in the SIGNATURES argument, either as a series of raw OpenPGP signature packets, or as an ASCII-armored series of OpenPGP signature packets. For the signatures to be verified, they must be made by one of the supplied CERTS over the message provided on standard input.

Any Invalid or broken signature will be ignored, as will any signature made by an unknown signer.

One or more CERTS arguments should point to OpenPGP certificates that would be acceptable signers.

RETURN CODE

sopv verify returns 0 to indicate that at least one valid signature was found.

It may fail for other reasons, but NO_SIGNATURE (3) is a likely failure mode when none of the SIGNATURES can be verified as being from any of the CERTS.

AUTHOR

This manual page was written by Daniel Kahn Gillmor. Your implementation of sopv is likely written by someone else in alignment with the SOP specification. Please run sopv version to learn more about your implementation.

SEE ALSO

sopv(1), sopv-version(1), sopv-inline-verify(1), Stateless OpenPGP Command Line Interface https://datatracker.ietf.org/doc/draft-dkg-openpgp-stateless-cli/, RFC 9580 https://www.rfc-editor.org/rfc/rfc9580.html

March 2025 sopv 1.1