MSVA-PERL(1)
π MSVA-PERL π
okay bestie, welcome to msva-perl β it's the Perl implementation of a Monkeysphere Validation Agent, and yes, it's from the User Contributed Perl Documentation corner of the universe. she's a certificate validation service and she's lowkey iconic. let's get into it π«Ά
β¨ NAME β¨
msva-perl β a Perl implementation of a Monkeysphere Validation Agent. that's it, that's the girl. π
πΈ SYNOPSIS πΈ
msva-perl [ COMMAND [ ARGS ... ] ]
like. that's the whole vibe. command optional, args optional, chaos permitted. π¦
π ABSTRACT π
msva-perl provides a Perl implementation of the Monkeysphere Validation Agent, which is a certificate validation service. no cap, that's literally her whole job. β
π§ INTRODUCTION π§
The Monkeysphere Validation Agent offers a local service for tools to validate certificates (both X.509 and OpenPGP) and other public keys. both flavors, she does not discriminate, she's a supportive queen. π
So here's how the whole thing goes down. Clients of the validation agent query it with three things:
- a public key carrier β which is either a raw public key, or some flavor of certificate
- the supposed name of the remote peer offering that pubkey
- the context in which the validation check is relevant β like
ssh,https, etc
and then the validation agent tells the client whether it was able to successfully validate the peer's use of the public key in that given context. yes/no energy. slay. β¨
π USAGE π
Launch her with no arguments and msva-perl simply runs and listens forever. she's just there. vibing. listening. eternal main character energy. π
Launch her with arguments and it's a whole different storyline:
- it sets up a listener
- it spawns a subprocess using the supplied command and arguments
- but it sets the
MONKEYSPHERE_VALIDATION_AGENT_SOCKETenvironment variable so it refers to its listener - when the subprocess terminates,
msva-perltears down the listener and exits as well - and it returns the same value as the subprocess
This is a similar invocation pattern to that of ssh-agent(1). iykyk. π
π ENVIRONMENT VARIABLES π
msva-perl is configured by means of environment variables. yes bestie, she's an env-var girlie.
MSVA_LOG_LEVELβmsva-perllogs messages about its operation to stderr.MSVA_LOG_LEVELcontrols its verbosity, and should be one of (in increasing verbosity):silent,quiet,fatal,error,info,verbose,debug,debug1,debug2,debug3. Default is'error'.MSVA_ALLOWED_USERSβ if your system is capable of it,msva-perltries to figure out the owner of the connecting client. IfMSVA_ALLOWED_USERSis unset,msva-perlwill only permit connections from the usermsvais running as. If you setMSVA_ALLOWED_USERS,msva-perlwill treat it as a list of local users (by name or user ID) who are allowed to connect. guest list behavior, honestly. ποΈMSVA_PORTβmsva-perllistens on a local TCP socket to facilitate access. You can choose what port to bind to by settingMSVA_PORT. Default is to bind on an arbitrary open port. she picks. she's decisive. πMSVA_KEYSERVERβmsva-perlwill request information from OpenPGP keyservers. SetMSVA_KEYSERVERto declare the keyserver you want it to check with. If this variable is blank or unset, and yourgpg.confcontains a keyserver declaration, it will use the GnuPG configuration. Failing that, the default is'hkp://pool.sks-keyservers.net'.MSVA_KEYSERVER_POLICYβmsva-perlmust decide when to check with keyservers (for new keys, revocation certificates, new certifications, etc). There are three possible options:'always'means to check with the keyserver on every query it receives.'never'means to never check with a keyserver.'unlessvalid'will only check with the keyserver on a specific query if no keys are already locally known to be valid for the requested peer.
Default is 'unlessvalid'.
MSVA_MONITOR_CHANGESβ under graphical environments such as X11,msva-perlis capable of monitoring for changes in its underlying code and can prompt the user to restart the daemon when some of the underlying code changes. Setting this environment variable to'true'enables this monitoring and prompting behavior. Default is'false'.
π₯ COMMUNICATION PROTOCOL DETAILS π₯
Communications with the Monkeysphere Validation Agent are in the form of JSON requests over plain HTTP. Responses from the agent are also JSON objects. For details on the structure of the requests and responses, please see http://web.monkeysphere.info/validation-agent/protocol β go read it bestie, she's thorough. π‘
π‘οΈ SECURITY CONSIDERATIONS π‘οΈ
listen up because this part is important, no cap.
msva-perl deliberately binds to the IPv4 loopback (on 127.0.0.1) so that remote users do not get access to the daemon. she's not letting strangers in, periodt. π«
On systems (like Linux) which report ownership of TCP sockets in /proc/net/tcp, msva-perl will refuse access from random users β see MSVA_ALLOWED_USERS above. bouncer behavior. iconic. πͺ
π SEE ALSO π
go read those too, they're all part of the same friend group. π«Ά
π BUGS AND FEEDBACK π
Bugs or feature requests for msva-perl should be filed with the Monkeysphere project's bug tracker at:
https://labs.riseup.net/code/projects/monkeysphere/issues/
if something's broken, tell them! they're nice, i promise. π
π AUTHORS AND CONTRIBUTORS π
Daniel Kahn Gillmor <dkg@fifthhorseman.net<gt>
The Monkeysphere Team http://web.monkeysphere.info/
π COPYRIGHT AND LICENSE π
Copyright X Daniel Kahn Gillmor and others from the Monkeysphere team.
msva-perl is free software, distributed under the GNU Public License, version 3 or later. share the love, bestie. π
and that's the whole page!! π this was perl v5.32.0, dated 2021-01-04, and you just read MSVA-PERL(1) β ty for coming to my ted talk, mwah πβ¨
π¦ where this page comes from
- debian bookworm: msva-perl 0.9.2-1.1
- debian trixie: msva-perl 0.9.2-1.1
- ubuntu jammy: msva-perl 0.9.2-1.1
- ubuntu noble: msva-perl 0.9.2-1.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms