SOPV-I...VERIFY(1)

πŸ“¦
version 1.1.1 Β· 2 versions
, in debian trixie, ubuntu resolute, ubuntu stonking

πŸ’– SOPV-INLINE-VERIFY πŸ’–

ok so bestie, welcome to sopv-inline-verify β€” part of the Stateless OpenPGP Signature Verification family, living in section 1 of the manual (that's SOPV-I...VERIFY(1) if you're keeping score, and yes the name got squished by the manpage formatter, it's fine, we move). This is the one that checks whether the signatures stuffed inside a message are actually, you know, valid. πŸŽ€


✨ SYNOPSIS ✨

sopv [--debug] inline-verify [--not-before=DATE] [--not-after=DATE]
[--verifications-out=VERIFICATIONS] [--] CERTS [CERTS...] <INLINESIGNED

🌸 DESCRIPTION 🌸

ok so here's the vibe: sopv inline-verify takes a look at the OpenPGP signatures that are bundled up inside a message. πŸ¦‹

Its standard input can be either:

  • an OpenPGP Signed Message, or
  • a message signed with the OpenPGP Cleartext Signing Framework

If a valid signature is found, it returns 0 and emits the contents of the message (without any signatures) on standard output. clean. no extra crumbs. πŸ’…

If no valid OpenPGP signature is found, sopv inline-verify returns non-zero. periodt.


🫢 EXAMPLES 🫢

here's the whole thing in action, chef's kiss:

if sopv inline-verify signer.cert < message.signed > message.txt; then
    echo "The information found in message.txt was signed"
else
    rm message.txt
    echo "no valid signature found"
fi

like. it literally cleans up after itself if the signature doesn't check out. main character energy. ✨


πŸ’… OPTIONS πŸ’…

  • --not-before=DATE β€” do not accept signatures made before the specified DATE. supply DATE in ISO-8601 format, preferably in UTC (see DATE in sopv(1)). πŸ•°οΈ
  • --not-after=DATE β€” do not accept signatures made after the specified DATE. supply DATE in ISO-8601 format, preferably in UTC (see DATE in sopv(1)). ⏳
  • --verifications-out=VERIFICATIONS β€” if the caller wants to inspect the details of the valid signatures, it can use this argument to request those details. see VERIFICATIONS in sopv(1) for more details about this format. πŸ‘€ lowkey the receipts option.

🌈 ARGUMENTS 🌈

one or more CERTS arguments should point to OpenPGP certificates that would be acceptable signers. 🧚 so basically: who are we willing to believe here.


⭐ RETURN CODE ⭐

sopv inline-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 the message contains no valid signature from any of the CERTS. 😭 so if you get a 3, that's the "nobody we trust signed this" situation.


πŸ‘‘ 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 πŸ”₯


ok that's the whole page bestie, go forth and verify things πŸ’€βœ¨

this was sopv version 1.1, from March 2025 β€” mwah, slay, bye πŸ’–πŸŒˆ

πŸ“¦ where this page comes from