洪 民憙 (Hong Minhee) 
@hongminhee@hollo.social · Reply to Evan Prodromou's post
@evan Yes, that's exactly how it works. When Fedify verifies a draft-cavage signature on an incoming request, it:
- Extracts the
keyIdfrom theSignatureheader. - Fetches the document at that
keyIdURL, expecting a key object (or an actor with a matching public key embedded). - Reads the
ownerproperty of the key, which points to the actor's ActivityPub object URL. - Fetches that actor object to confirm the key is actually associated with the claimed sender.
So if tags.pub is having a signature-related bug with Fedify, worth checking: does the keyId URL actually resolve to a key object with a correct owner pointing back to the actor? And does the actor object at that owner URL include the public key? If either fetch fails or returns unexpected data, Fedify will reject the signature.