Skip to content

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

Adjusting #Enigmatick's previously built functions to align with the #ActivityPub #E2EE draft.

General Discussion
6 2 0
  • Adjusting #Enigmatick's previously built functions to align with the #ActivityPub #E2EE draft.

    KeyPackage collection on the Actor object

    Request

    > curl -H "Accept: application/activity+json" https://enigmatick.social/user/jdt | jq '.keyPackages'
    

    Response

    "https://enigmatick.social/user/jdt/keys"
    

    Retrieve the KeyPackage Collection

    These are populated by the client (the browser using the wasm module loaded in the Svelte SPA). I had a different mechanism in place for managing this (using the instrument field on Activities) but am updating it to use the Add flow for the Collection as specified by the draft.

    Request

    > curl -H "Accept: application/activity+json" https://enigmatick.social/user/jdt/keys | jq
    

    Response

    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Collection",
      "id": "https://enigmatick.social/user/jdt/keys",
      "totalItems": 39,
      "next": "https://enigmatick.social/user/jdt/keys?mkp=true"
    }
    

    Follow the next link to retrieve a KeyPackage

    This will mark the KeyPackage as distributed and would typically link it to the Actor that signed the request (that's temporarily disabled for testing).

    Request

    > curl -H "Accept: application/activity+json" https://enigmatick.social/user/jdt/keys?mkp=true | jq
    

    Response

    {
      "@context": [
        "https://www.w3.org/ns/activitystreams",
        "https://purl.archive.org/socialweb/mls"
      ],
      "type": "Collection",
      "totalItems": 1,
      "items": [
        {
          "type": "KeyPackage",
          "id": "https://enigmatick.social/key-package/cfde7b54-8d08-41e9-8eb5-d997a12e9347",
          "attributedTo": "https://enigmatick.social/user/jdt",
          "to": [
            "https://www.w3.org/ns/activitystreams#Public"
          ],
          "mediaType": "message/mls",
          "encoding": "base64",
          "content": "AAEAASCOWe7uxA8tPeI01nDP8ka2irEhgfkK2qM81/o+tEKPEiCz2h2Vv6VVuGSx/C0WINQCuazZm4rQAymxd1JdHGVvaSDurWzIE3z5eXUFz5coFGv9db7DxZDx0arb/gyRuidCAgABImh0dHBzOi8vZW5pZ21hdGljay5zb2NpYWwvdXNlci9qZHQCAAEIAAEAAgADAE0KAAEAAgADAAQABQwAAQACAAMABAAFAAcCAAEBAAAAAGeDNwsAAAAAZ/IDGwBAQJUffd/8/Efgt0ITBeMWfJYcb7S8E5U7yyUINiIUfqmsGwcvTyam6C+9F+k64NBEs0rXjGMjPA6AgiZ2oR4/1wwAQECliseeQfQb0zgq755ZiiujRqLkEWt8WOTJSsBXHK6hey6bNs4wet782NL8k92h1BNuPZDzxHaHXdXe1wgBO6QJ"
        }
      ]
    }
    
  • Adjusting #Enigmatick's previously built functions to align with the #ActivityPub #E2EE draft.

    KeyPackage collection on the Actor object

    Request

    > curl -H "Accept: application/activity+json" https://enigmatick.social/user/jdt | jq '.keyPackages'
    

    Response

    "https://enigmatick.social/user/jdt/keys"
    

    Retrieve the KeyPackage Collection

    These are populated by the client (the browser using the wasm module loaded in the Svelte SPA). I had a different mechanism in place for managing this (using the instrument field on Activities) but am updating it to use the Add flow for the Collection as specified by the draft.

    Request

    > curl -H "Accept: application/activity+json" https://enigmatick.social/user/jdt/keys | jq
    

    Response

    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Collection",
      "id": "https://enigmatick.social/user/jdt/keys",
      "totalItems": 39,
      "next": "https://enigmatick.social/user/jdt/keys?mkp=true"
    }
    

    Follow the next link to retrieve a KeyPackage

    This will mark the KeyPackage as distributed and would typically link it to the Actor that signed the request (that's temporarily disabled for testing).

    Request

    > curl -H "Accept: application/activity+json" https://enigmatick.social/user/jdt/keys?mkp=true | jq
    

    Response

    {
      "@context": [
        "https://www.w3.org/ns/activitystreams",
        "https://purl.archive.org/socialweb/mls"
      ],
      "type": "Collection",
      "totalItems": 1,
      "items": [
        {
          "type": "KeyPackage",
          "id": "https://enigmatick.social/key-package/cfde7b54-8d08-41e9-8eb5-d997a12e9347",
          "attributedTo": "https://enigmatick.social/user/jdt",
          "to": [
            "https://www.w3.org/ns/activitystreams#Public"
          ],
          "mediaType": "message/mls",
          "encoding": "base64",
          "content": "AAEAASCOWe7uxA8tPeI01nDP8ka2irEhgfkK2qM81/o+tEKPEiCz2h2Vv6VVuGSx/C0WINQCuazZm4rQAymxd1JdHGVvaSDurWzIE3z5eXUFz5coFGv9db7DxZDx0arb/gyRuidCAgABImh0dHBzOi8vZW5pZ21hdGljay5zb2NpYWwvdXNlci9qZHQCAAEIAAEAAgADAE0KAAEAAgADAAQABQwAAQACAAMABAAFAAcCAAEBAAAAAGeDNwsAAAAAZ/IDGwBAQJUffd/8/Efgt0ITBeMWfJYcb7S8E5U7yyUINiIUfqmsGwcvTyam6C+9F+k64NBEs0rXjGMjPA6AgiZ2oR4/1wwAQECliseeQfQb0zgq755ZiiujRqLkEWt8WOTJSsBXHK6hey6bNs4wet782NL8k92h1BNuPZDzxHaHXdXe1wgBO6QJ"
        }
      ]
    }
    

    If the private keys are stored on the instance, how is this any better than what we have now?

  • If the private keys are stored on the instance, how is this any better than what we have now?

    @rimu@piefed.social What makes you think it's a private key? (It's not.)

    Here's some information with examples of how the keys are used and exchanged.

  • If the private keys are stored on the instance, how is this any better than what we have now?

    @rimu@piefed.social And no, the instance admin cannot decrypt the communications. The KeyPackage is a public key used to start an encrypted message exchange. But it cannot be used to decrypt any of the messages.

  • @rimu@piefed.social And no, the instance admin cannot decrypt the communications. The KeyPackage is a public key used to start an encrypted message exchange. But it cannot be used to decrypt any of the messages.

    Ah I see, thanks 👍

  • Ah I see, thanks 👍

    @rimu@piefed.social No problem!


Gli ultimi otto messaggi ricevuti dalla Federazione
  • @rimu@piefed.social No problem!

    read more

  • Ah I see, thanks 👍

    read more

  • @rimu@piefed.social And no, the instance admin cannot decrypt the communications. The KeyPackage is a public key used to start an encrypted message exchange. But it cannot be used to decrypt any of the messages.

    read more

  • @rimu@piefed.social What makes you think it's a private key? (It's not.)

    Here's some information with examples of how the keys are used and exchanged.

    read more

  • If the private keys are stored on the instance, how is this any better than what we have now?

    read more

  • Adjusting #Enigmatick's previously built functions to align with the #ActivityPub #E2EE draft.

    KeyPackage collection on the Actor object

    Request

    > curl -H "Accept: application/activity+json" https://enigmatick.social/user/jdt | jq '.keyPackages'

    Response

    "https://enigmatick.social/user/jdt/keys" Retrieve the KeyPackage Collection

    These are populated by the client (the browser using the wasm module loaded in the Svelte SPA). I had a different mechanism in place for managing this (using the instrument field on Activities) but am updating it to use the Add flow for the Collection as specified by the draft.

    Request

    > curl -H "Accept: application/activity+json" https://enigmatick.social/user/jdt/keys | jq

    Response

    { "@context": "https://www.w3.org/ns/activitystreams", "type": "Collection", "id": "https://enigmatick.social/user/jdt/keys", "totalItems": 39, "next": "https://enigmatick.social/user/jdt/keys?mkp=true" } Follow the next link to retrieve a KeyPackage

    This will mark the KeyPackage as distributed and would typically link it to the Actor that signed the request (that's temporarily disabled for testing).

    Request

    > curl -H "Accept: application/activity+json" https://enigmatick.social/user/jdt/keys?mkp=true | jq

    Response

    { "@context": [ "https://www.w3.org/ns/activitystreams", "https://purl.archive.org/socialweb/mls" ], "type": "Collection", "totalItems": 1, "items": [ { "type": "KeyPackage", "id": "https://enigmatick.social/key-package/cfde7b54-8d08-41e9-8eb5-d997a12e9347", "attributedTo": "https://enigmatick.social/user/jdt", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "mediaType": "message/mls", "encoding": "base64", "content": "AAEAASCOWe7uxA8tPeI01nDP8ka2irEhgfkK2qM81/o+tEKPEiCz2h2Vv6VVuGSx/C0WINQCuazZm4rQAymxd1JdHGVvaSDurWzIE3z5eXUFz5coFGv9db7DxZDx0arb/gyRuidCAgABImh0dHBzOi8vZW5pZ21hdGljay5zb2NpYWwvdXNlci9qZHQCAAEIAAEAAgADAE0KAAEAAgADAAQABQwAAQACAAMABAAFAAcCAAEBAAAAAGeDNwsAAAAAZ/IDGwBAQJUffd/8/Efgt0ITBeMWfJYcb7S8E5U7yyUINiIUfqmsGwcvTyam6C+9F+k64NBEs0rXjGMjPA6AgiZ2oR4/1wwAQECliseeQfQb0zgq755ZiiujRqLkEWt8WOTJSsBXHK6hey6bNs4wet782NL8k92h1BNuPZDzxHaHXdXe1wgBO6QJ" } ] }
    read more

  • Our initial clients will be built in JavaScript, so you’d need to enable JS on your browser to use it (for now)

    And, it will require special features on your server, so this won’t work on Mastodon (for now)

    Download the road, things will change. We’re defining a standard API that anyone can build in. So hopefully someone can built installable clients (iOS, Android, desktop) that work separate from your browser.

    @ddlyh @bonfire @swf @sovtechfund

    read more

  • @bonfire
    How will this work for clients of servers with no JavaScript, like and ? Well the server be doing the decryption as surely that breaks the point of it being "end-to-end"?
    @swf @sovtechfund @benpate

    read more
Post suggeriti
  • 0 Votes
    1 Posts
    2 Views
    Week in Fediverse 2025-12-19Servers- Mbin v1.9.0- stegodon v1.4.3- PeerTube v8.0.1- ActivityPub for WordPress v7.8.0- Ktistec v3.2.4- Manyfold v0.130.0- Wafrn v2025.12.03- Misskey v2025.12.1- Gancio v1.28.2- appy v0.4.0- Loops v1.0.0-beta.6- PieFed v1.3.8- NodeBB v4.7.1- Enigmatick ActivityPub C2S- A year in Hubzilla development- Photografedi: An ActivityPub powered photo sharing website! Inspired by Flickr and PixelfedClients- PeerTube Mobile v2.0- Voyager v2.42.0- Blorp v1.10.1- Interstellar v0.11.1Tools and Plugins- feed2fedi v3.4.1Articles- Announcing Key Transparency for the Fediverse- Adding a NSFW filter to Images on Writefreely- Ghost's ActivityPub Integration Feels Half-Baked- holos.social - How It Works- Implementing Encrypted Messaging over ActivityPub- Fediverse Report - #147-----#WeekInFediverse #Fediverse #ActivityPubPrevious edition: https://mitra.social/objects/019b1423-50e8-e8c5-d918-9946b14bb67e
  • 0 Votes
    1 Posts
    4 Views
    Die Zitierfunktion hält nun im Fediverse, speziell auf Mastodon, Einzug. Und natürlich ist das ActivityPub Plugin darauf bereits vorbereitet:https://bunte-kuechenabenteuer.de/den-eigenen-blog-foederieren-das-activitypub-plugin-fuer-wordpress/#quote#wordpress #activityPubPlugIn #activityPub #zitieren
  • 0 Votes
    1 Posts
    16 Views
    Vacations are wonderful. It is a privilege to be able to travel without worry. It's also wonderful to be home, and to have the time to work on projects I care about. With those thoughts in mind, I present release v3.1.1 of Ktistec, an ActivityPub server written in the Crystal programming language!This release is a mixed bag of small features and improvements:AddedAuto-link URLs in posts. (fixes #24)Support searching by actor username. (fixes #102)Support hourly granularity in metrics charts.FixedMark actor as down if refresh fails.Remove draft posts from the everything collection.Ignore charts with no points in the date range.Ensure HTTP::Client instances are closed.I added support for multiple users at the beginning of the month. I'm very interested in feedback on how that's working out for anyone using it.#ktistec #fediverse #activitypub #crystallang
  • 0 Votes
    19 Posts
    74 Views
    @pfefferle @julian @johnonolan @heathenstorm so I just tested this... I updated an old blog post (from 2023) before the site was ever federated... and it just popped up in my Mastodon feed (see photo) as if I had just published it...The blog has all the latest versions of plugins installed (ActivityPub for Wordpress included).original link: https://therealists.org/2023/04/aligning-our-life-goals-with-our-technology-use/