canlock(1)

🌸 canlock(1) β€” the canlock girlie's guide πŸ’…

okay so bestie, welcome to canlock β€” the CLI frontend for the libcanlock library, and honestly? she's iconic. this is the canlock page from the canlock 3.3.3 manual, and by the end you're gonna know her like you know your own playlist. periodt. ✨


πŸŽ€ NAME πŸŽ€

canlock β€” CLI frontend for libcanlock library. that's it, that's the whole vibe. 🫢


🌈 SYNOPSIS 🌈

like, here's how you actually talk to her:

canlock -h | -v

canlock [-q] -o

canlock [-a scheme] -l [uid]mid

canlock [-a scheme] -k [uid]mid

canlock [-q] -c key,lock

canlock [-q] -m keys,locks

lowkey six different moods, pick your fighter πŸ’–


✨ DESCRIPTION ✨

so this is a command line utility for the Netnews Cancel-Lock authentication scheme β€” yes that's the whole thing, no cap.

canlock can be used to create <c-lock> and <c-key> elements according to RFC 8315. the secret data is read from standard input (using EOF for termination β€” she keeps reading till you say you're done, main character energy fr fr 🧚).

canlock also provides a verify interface with the -c option. heads up though: an external header parser is required to extract the <c-key> and <c-lock> elements from the article headers. like, she doesn't do that part for you, that's a whole other job. πŸ™ˆ

the command line utilities canlock-mhp(1) and canlock-hfp(1) can be used for this purpose. cute little helpers, we love them.


πŸ‘‘ OPTIONS πŸ‘‘

the following options are supported β€” and yes, we're doing all of them, no skipping:

  • -a scheme β€” Use the hash algorithm specified by <scheme>. supported values for <scheme> (by version 3.0.0 of canlock) are: sha1, sha224, sha256, sha384, sha512. if this option is not present, sha256 is used as the default value (because this is the mandatory algorithm defined by RFC 8315 β€” she's not being extra, the RFC said so πŸ’…).
  • -l [uid]mid β€” Generate Cancel-Lock for Message-ID <mid>. the Message-ID can be prepended with an optional User-ID <uid>. the result is a <c-lock> element. slay.
  • -k [uid]mid β€” Generate Cancel-Key for Message-ID <mid>. the Message-ID can be prepended with an optional User-ID <uid>. the result is a <c-key> element. yes she's basically -l's twin, they're matching ✨
  • -c c-key,c-lock β€” Verify whether <c-key> element of a cancel or supersede matches the <c-lock> element of a target article. basically the vibe check option πŸ¦‹
  • -m keys,locks β€” Verify whether one of multiple keys matches one of multiple locks. the elements of both lists must be separated by SP (space) characters. and like, careful: anything must be passed as single parameter of the "-m" option, use appropriate quoting. yes that's a whole thing, don't come for me, just quote it properly πŸ™
  • -q β€” Write no result to standard output. she's being quiet, mysterious, lowkey.
⚠️ okay listen: -q is only valid if specified before -c and -o options. she's picky about order, it's her thing. don't test her.
  • -h β€” Print help message, then exit. the "girl help" option 😭
  • -o β€” Print whether libcanlock reports support for overwriting secret data in memory. the exit status is zero if cl_clear_secret(3) returned zero. spy shit, honestly πŸ”₯
  • -v β€” Print version and compile time options, then exit. she's introducing herself, love that for her πŸ’œ

πŸ’€ EXIT STATUS πŸ’€

Zero on success or regular exit respectively. all other values indicate an error. that's the whole rule. no in-between, she's either good or she's not.


πŸ“ AUTHORS πŸ“

Michael Baeuerle β€” the legend who made this happen. respect on the name. πŸ‘‘


πŸ™ˆ REPORTING BUGS πŸ™ˆ

Report bugs to <mailto:michael.baeuerle@gmx.net>. be nice about it, she's trying her best.


⭐ STANDARDS ⭐

canlock tries to comply with the following standards β€” she's an overachiever, we stan:


πŸ¦‹ SEE ALSO πŸ¦‹

the whole friend group, fr fr:


that's the whole page bestie, you ate that. mwah πŸ’–

written for the canlock 3.3.3 manual, dated 2026-07-06, on Unix β€” go forth and cancel-lock responsibly, ily 🌸✨
πŸ“¦ where this page comes from
  • epel 10: canlock 3.3.3-2.el10_3 Β· BSD-3-Clause AND NLPL AND ICU
  • πŸ“œ the page's license: ICU
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms