• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

IJHack / QtPass / 40556537830
93%

Build:
DEFAULT BRANCH: main
Ran 27 Oct 2026 06:11PM UTC
Jobs 1
Files 122
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

27 Oct 2026 06:04PM UTC coverage: 92.471%. Remained the same
40556537830

push

github

web-flow
RnpCrypto: detached sign and verify for .gpg-id, and a key listing (#2065)

* RnpCrypto: detached sign and verify for .gpg-id, and a key listing

Step 2 of #2005, the in-process OpenPGP backend's next pieces:

- sign(): a binary detached signature, as gpg --detach-sign
  --local-user writes .gpg-id.sig. The signer is named as gpg takes it
  and must be exactly one key with a valid signing key whose secret is
  here; never another secret key. A protected key is unlocked through
  the passphrase provider.
- verify(): the first good signature decides and gives the signing and
  primary fingerprints, as GpgIdSigner::validSigFingerprints() does. A
  revoked signer counts for nothing (RNP already fails it; checked here
  too), an expired one's older signature still counts, as with gpg.
- listKeys(): primaries with user IDs, creation and expiry, revoked,
  expired, whether a secret part is here, and whether it can encrypt or
  sign now: what the Users dialog needs.
- Key lookup takes a usage (encrypt or sign) for what makes a candidate.

Tested against GnuPG both ways (gpg verifies RNP's signatures with
VALIDSIG by that key, RNP verifies gpg's), tampering, a missing secret,
wrong and right passphrases, a revoked signer and one expired since.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJygpMUf461yZgfAqwMJ6d
Signed-off-by: Anne Jan Brouwer <brouwer@annejan.com>

* Review: an address names that address; revoked user IDs name nothing

- An e-mail address names the key with a user ID of that address,
  compared without regard to case, not every user ID containing it:
  the signing key setting comes in upper case, so the exact match never
  hit and the partial one let alice@ find malice@ (and, with only that
  key's secret here, sign with it). Stricter than gpg -r's substring.
- Revoked user IDs are left out of listKeys() and of every lookup.
- SECURITY.md says precisely what names exactly one key.
- T... (continued)

9433 of 10201 relevant lines covered (92.47%)

304.72 hits per line

Jobs
ID Job ID Ran Files Coverage
1 40556537830.1 27 Oct 2026 06:11PM UTC 122
92.47
GitHub Action Run
Source Files on build 40556537830
  • Tree
  • List 122
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #40556537830
  • 0888cc0e on github
  • Prev Build on main (#40552841736)
  • Next Build on main (#40564693566)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc