SRSD(1p)

πŸ“¦
version 0.31 Β· 2 versions
  • 0.31 Β· debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking (latest)
  • 0.31 Β· ubuntu jammy
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– SRSD(1p) β€” bestie, this is the srsd manual page πŸ’–

okay so first things first: you're reading the manual for srsd, a User Contributed Perl doc, and I'm about to make it make sense. pull up a chair, grab a boba, we're doing this πŸ§‹βœ¨


✨ NAME ✨

srsd β€” it's a daemon interface to Mail::SRS. that's it, that's the vibe. πŸ’…


🌸 SYNOPSIS 🌸

srsd --secretfile=/etc/srs_secret

look at her. one line. iconic. πŸ‘‘


πŸ¦‹ DESCRIPTION πŸ¦‹

so the srsd daemon just... sits there on a socket and waits for SRS address transformation requests. like a little guy at a desk. someone asks "hey transform this address", she transforms the addresses, and hands the new addresses right back on the socket. no cap, that's the whole job. πŸ’–

you can call her from exim using ${readsocket ...}, from sendmail via a TCP socket in a rule, and probably from other MTAs too. for examples, go peek at http://www.anarres.org/projects/srs/.

arguments? they take the form --name or --name=value. simple as. ✨


πŸŽ€ ARGUMENTS πŸŽ€

--separator

a String, and you can specify it at most once. defaults to $SRSSEP (which is "=").

it sets the initial separator for the SRS address. if you want the details, that's a Mail::SRS thing, go read that one. 🫢

--secret

a String, and this one you can specify multiple times β€” but listen, at least one of --secret or --secretfile must be specified, okay? non-negotiable.

it specifies an SRS secret. the first secret you specify is the one used for encoding. all of the secrets get used for decoding. so like, the first one is the main character, and the rest are still in the group chat. πŸ’…

--secretfile

a String, specified at most once, and again: at least one of --secret or --secretfile must be specified.

this is a file you read for secrets. secrets are specified once per line, and they're written one per line. blank lines and lines starting with a # are ignored. the first specified secret is used for encoding. and if --secret is not given, then the secret file must be nonempty. periodt. πŸ“„

ngl this part matters: --secret will specify a primary secret and it will override --secretfile if both are specified. HOWEVER β€” and this is the sneaky bit β€” secrets read from --secretfile will still be used for decoding if both are specified. so she's not fully ghosting the file, she's just not letting it encode. 😭

--hashlength

an Integer, may be specified at most once, and it defaults to 4.

it's the number of base64 characters to use for the cryptographic authentication code. so like, how chunky do you want the auth code. πŸ”

--help

prints some basic help. that's it. she's helpful. πŸ₯°


🌈 PROTOCOL 🌈

a forward request looks like this:

FORWARD sender@source.com alias@forwarder.com

and a reverse request looks like this:

REVERSE srs0+HHH=TT=domain=local-part@forwarder.com

oh and also, a client called srsc has been included in this distribution, for testing purposes. love that for her. 🧚


πŸ’€ TODO πŸ’€

the to-do list, bestie:

  • add more daemon-related options.
  • path to socket.
  • document protocol.

so yeah, there's lore still unwritten. πŸ™ˆ


πŸ‘‘ SEE ALSO πŸ‘‘


πŸ’œ AUTHOR πŸ’œ

Shevek
CPAN ID: SHEVEK
cpan@anarres.org
http://www.anarres.org/projects/

Copyright (c) 2004 Shevek. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


and that's the whole page, bestie!! 🫢✨

this little masterpiece is from perl v5.36.0, dated 2022-11-27, and it's the SRSD(1p) manual page. go forth and transform some addresses. slay πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from