A2ID-KEYGEN(1)
π A2ID-KEYGEN β a2id-keygen
okay so real talk, this one's from the System Management Commands corner of the manual, and it's your girl's fave kind of page: short, sassy, and it makes keys. buckle up bestie π
β¨ NAME β¨
a2id-keygen β generate a key for ARPA2 Signed Identities ποΈ
πΈ SYNOPSIS πΈ
a2id-keygen keyname
a2id-keygen /path/to/file.key
π DESCRIPTION π
so like, with a2id-keygen, an administrator can install a key for use in the a2id_sign() and a2id_verify() functions. those two literally work on an ARPA2 Identity β a2id_sign() adds a signature, a2id_verify() checks one. no cap. π₯
and the signature content? it shows up as part of the identity itself, like:
john+cook+AABBCC+@example.com
the way that works is the contents of this signature fixate the validity of the ARPA2 Identity to contextual matter β things like the time (which is how you get expiration, periodt) or the remote identity (fixating their domain and/or local-part). it's giving "this identity is valid in this exact context" and honestly? iconic.
π¦ making a new key π¦
this command lets the system administrator create a new key. two vibes, one command:
- the
/path/to/file.keyform gives an absolute path name of a place to store the key β you pick, you slay - the
keynameform stores the file into a default location, which usually is/var/lib/arpa2/identity, where keys are stored with a.keyextension
β οΈ not me warning you: overwriting an existing key file is not supported β it leads to an error message and a failure exit. no quiet clobbering, no sneaky replace, just a hard no. π
π§ the key repository π§
the purpose of the /var/lib/arpa2/identity directory is to serve as a key repository for the system, with files only accessible to the root user. main character security energy π
it is customary to have a key named default stored in /var/lib/arpa2/identity/default.key to serve most purposes. additional keys may be used, for instance, to permit verification of signatures with older keys, while default.key is used for signing. so to cycle keys:
- move the default key to another name with the
.keyextension - generate a new default key to replace it
that's the whole ritual, bestie π―οΈ
π how apps actually get their keys π
applications must load keys explicitly, and the default key store is merely a convention to get that started. the function a2id_addkey() is used to setup a new key.
programs may open a file descriptor to the key(s) to pass and harvest them after dropping privileges. and an even stronger mechanism is to do this key passing through a pipe β into which it fits, and from which it can only be read once by the program at a lower privilege. the way that's literally the most secure vibe here. πβ¨
π AUTHOR π
written by Rick van Rein of OpenFortress.nl, for the ARPA2.net project. king behavior π
π REPORTING BUGS π
for any discussion, including about bugs, please use the https://gitlab.com/arpa2/arpa2common/ project page for ARPA2 Common. we use its issue tracker to track bugs and feature requests. come yell with us, it's a safe space π«Ά
β COPYRIGHT β
Copyright Β© 2021 Rick van Rein, ARPA2.net.
ARPA2 is funded from InternetWide.org, which in turn receives funding from various sources. this particular work was funded through a grant of SIDNfonds, a public interest fund geared towards a better Internet for all, and paid by administration fees for .nl domain names. so yes, every .nl domain out there lowkey helped fund this π
π SEE ALSO π
ARPA2 Common is documented on http://common.arpa2.net/ and its code is on https://gitlab.com/arpa2/arpa2common/ β go read, iykyk π
that's the whole page, bestie, you ate it up π this lil gem comes to you from ARPA2.net and it's dated June 2021 β vintage but still slay β¨
π¦ where this page comes from
- nixos 26.05: arpa2common 2.6.4
- nixpkgs unstable: arpa2common 2.6.4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms