Helge's blog

by helge@mymath.rocks

Powered by longhorn, an ActivityPub Client based blog. This means an existing Fediverse account is used to federate blog entries. The entire thing is based on bovine and the corresponding ActivityPub server.

Atom Feed

Posts

Identity in the FediVerse

I rant about Identity in the FediVerse. It’s mostly written, so I have a text to test various things. Also I’m building a blog, where texts like this belong. The blog is going to be an ActivityPub Client. While building this, I realized that I need to implement 2 to 1 below, and it annoys me.

The identity objects

There at least 4 identifiers used for various things in the Fediverse

  1. The fediverse handle, e.g. @helge@mymath.rocks
  2. The actor id e.g. https://mymath.rocks/endpoints/SYn3cl_N4HAPfPHgo2x37XunLEmhV9LnxCggcYwyec0
  3. The public key id e.g. https://mymath.rocks/endpoints/SYn3cl_N4HAPfPHgo2x37XunLEmhV9LnxCggcYwyec0#serverKey
  4. The actual public key e.g.
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy62VqgKQvKJx8hW6Y8Qi
B/2/MIwmj4CiRCqDEC4tz0vkEkexF93edQdiB/wEDuHnJ+LPe1Pau7/dDM3495dd
f5pWIglKnhcp/cvd1O+QBAtlSw5zsIFtW5SDYsbj+dMD0s8F8XEJPp/KdRAg1pGi
FZ5D79efQjBv5sVAe/fwOCQGT2OBoaxD8odhlBNhXNSkTdfN2NrowsEDTygqfyPt
jzZhoTm/Z7Jgqh5Ps4jveZ2U6171P5o8hf+T0+I4by2mfstTNPm0fGfu14vfqRuc
eGM2jbGUzOJX7PBKCuev54wz7otCLKDP5SaSrrl8T0Yr5Jodklmm3uC851xOu0L2
HwIDAQAB
-----END PUBLIC KEY-----

One can translate from various things to various others. In most cases, 2 and 3 are basically the same. 2 and 3 imply knowledge of 4. Nobody with 4 can look up anything, without effort.

If you have 1, you can use webfinger gymnastics, essentially

GET https://mymath.rocks/.well-known/webfinger?resource=acct:helge@mymath.rocks

to get 2. If you have 2, you can fetch the actor and obtain the preferredUsername. Then you can compute the domain from the actor url, e.g. urlparse(actor["id"]).netloc in python, and combined these two with an @ to get 1.

You can reply to this post using your favorite FediVerse Application. For this look up the object
missing
in it and just reply. Depending on how your FediVerse Application handles Articles, this post may appear different.