<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Okay, so]]></title><description><![CDATA[<p>Okay, so</p><p><a href="https://docs.joinmastodon.org/spec/security/" rel="nofollow noopener"><span>https://</span><span>docs.joinmastodon.org/spec/sec</span><span>urity/</span></a></p><p>According to resources linked in the <a href="https://qaf.men/tags/Mastodon" rel="tag">#<span>Mastodon</span></a> docs, it seems that signature validation gets the entire <a href="https://qaf.men/tags/ActivityPub" rel="tag">#<span>ActivityPub</span></a> Actor (thus the `#main-key` which the server is supposed to ignore) and then within the Actor it gets the `publicKey` property.</p><p>Soooo back to the `#main-key` nomenclature, I guess</p>]]></description><link>https://bb.devnull.land/topic/8606de2d-083a-48da-9fd9-edd89dc45694/okay-so</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 02:43:19 GMT</lastBuildDate><atom:link href="https://bb.devnull.land/topic/8606de2d-083a-48da-9fd9-edd89dc45694.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 07 Aug 2026 15:58:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Okay, so on Wed, 19 Aug 2026 05:14:05 GMT]]></title><description><![CDATA[<p><span><a href="/user/dusoft%40activitypub.space">@<span>dusoft</span></a></span> Thank you <img class="not-responsive emoji" src="https://s3.qaf.pp.ua/media/custom_emojis/images/000/075/346/original/34cfb01185f5d068.png" title=":ablobcatheartsqueeze:" /></p>]]></description><link>https://bb.devnull.land/post/https://qaf.men/ap/users/116906449450988726/statuses/117120463366192365</link><guid isPermaLink="true">https://bb.devnull.land/post/https://qaf.men/ap/users/116906449450988726/statuses/117120463366192365</guid><dc:creator><![CDATA[mooooooo@qaf.men]]></dc:creator><pubDate>Wed, 19 Aug 2026 05:14:05 GMT</pubDate></item><item><title><![CDATA[Reply to Okay, so on Tue, 18 Aug 2026 22:11:09 GMT]]></title><description><![CDATA[<p dir="auto"><a href="https://activitypub.space/user/mooooooo%40qaf.men" rel="nofollow ugc">@mooooooo@qaf.men</a> You can try checking my code:<br />
<a href="https://github.com/nekromoff/mastodon-bots" rel="nofollow ugc">https://github.com/nekromoff/mastodon-bots</a></p>
]]></description><link>https://bb.devnull.land/post/https://activitypub.space/post/2370</link><guid isPermaLink="true">https://bb.devnull.land/post/https://activitypub.space/post/2370</guid><dc:creator><![CDATA[dusoft@activitypub.space]]></dc:creator><pubDate>Tue, 18 Aug 2026 22:11:09 GMT</pubDate></item><item><title><![CDATA[Reply to Okay, so on Fri, 07 Aug 2026 20:45:55 GMT]]></title><description><![CDATA[<p><span><a href="/user/trwnh%40mastodon.social">@<span>trwnh</span></a></span> <span><a href="/user/julian%40activitypub.space">@<span>julian</span></a></span> <span><a href="/user/mooooooo%40qaf.men">@<span>mooooooo</span></a></span> it's also crappy for caching. Using a standalone document for the key lets you set a far-future expiry header, `Cache-Control: max-age=315360000`. So, clients never need to refetch. If you want to rotate the key, you give a new ID with a new URL.</p>]]></description><link>https://bb.devnull.land/post/https://cosocial.ca/users/evan/statuses/117056179757228776</link><guid isPermaLink="true">https://bb.devnull.land/post/https://cosocial.ca/users/evan/statuses/117056179757228776</guid><dc:creator><![CDATA[evan@cosocial.ca]]></dc:creator><pubDate>Fri, 07 Aug 2026 20:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to Okay, so on Fri, 07 Aug 2026 20:40:55 GMT]]></title><description><![CDATA[<p><span><a href="/user/julian%40activitypub.space">@<span>julian</span></a></span> <span><a href="/user/mooooooo%40qaf.men">@<span>mooooooo</span></a></span> </p><p>&gt; a "Mastodon-ism". It's not strictly right</p><p>actually it's not wrong, especially when/because the key is a fragment of the returned document.</p><p>you're supposed to get the document and then *find the graph node that matches the input id*.</p><p>i suspect some implementations don't recognize that they need to do this, and they just assume that the key is *always* at $.publicKey.publicKeyPem or at $.publicKeyPem. that's incorrect.</p>]]></description><link>https://bb.devnull.land/post/https://mastodon.social/users/trwnh/statuses/117056160102524539</link><guid isPermaLink="true">https://bb.devnull.land/post/https://mastodon.social/users/trwnh/statuses/117056160102524539</guid><dc:creator><![CDATA[trwnh@mastodon.social]]></dc:creator><pubDate>Fri, 07 Aug 2026 20:40:55 GMT</pubDate></item><item><title><![CDATA[Reply to Okay, so on Fri, 07 Aug 2026 16:05:41 GMT]]></title><description><![CDATA[<p dir="auto"><a href="https://activitypub.space/user/mooooooo%40qaf.men" rel="nofollow ugc">@mooooooo@qaf.men</a> sort of! Mastodon does it that way, where if you request the <code>keyId</code> as identified in the HTTP signature, it returns the entire user object.</p>
<p dir="auto">That's what we call a "Mastodon-ism". It's not strictly right, but it is what it is. AP implementations <em>should</em> properly handle it if you return just the <code>publicKey</code> portion alone.</p>
<p dir="auto">For example, <a href="/user/evan%40activitypub.space">@evan</a>'s <code>tags.pub</code> does this correctly. <a href="https://activitypub.space/user/test%40tags.pub" rel="nofollow ugc">@test@tags.pub</a> will return the full actor object, but if you query the <code>publicKeyPem</code>, you get this: <a href="https://tags.pub/user/test/publickey" rel="nofollow ugc">https://tags.pub/user/test/publickey</a></p>
]]></description><link>https://bb.devnull.land/post/https://activitypub.space/post/2215</link><guid isPermaLink="true">https://bb.devnull.land/post/https://activitypub.space/post/2215</guid><dc:creator><![CDATA[julian@activitypub.space]]></dc:creator><pubDate>Fri, 07 Aug 2026 16:05:41 GMT</pubDate></item><item><title><![CDATA[Reply to Okay, so on Fri, 07 Aug 2026 15:59:58 GMT]]></title><description><![CDATA[<p>Implementing your own Fedi server is shit, don't do it, I can't believe I ruined the last 4 days of my life with this</p>]]></description><link>https://bb.devnull.land/post/https://qaf.men/ap/users/116906449450988726/statuses/117055055337740263</link><guid isPermaLink="true">https://bb.devnull.land/post/https://qaf.men/ap/users/116906449450988726/statuses/117055055337740263</guid><dc:creator><![CDATA[mooooooo@qaf.men]]></dc:creator><pubDate>Fri, 07 Aug 2026 15:59:58 GMT</pubDate></item></channel></rss>