FEP-0806: Simple client-side encryption

https://codeberg.org/silverpill/feps/src/branch/main/0806/fep-0806.md

The FEP now includes the recommended algorithm parameters.

I consider it finished but I don't plan to continue working on my implementation or publishing to the main FEP repository. It would be better to focus on group messaging with forward secrecy (MLS or similar).

#fep_0806 #e2ee

Summary card of repository silverpill/feps, described as: My FEPsCodeberg.orgfeps/0806/fep-0806.md at mainfeps - My FEPs

Replying to @⁨silverpill@mitra.social⁩

@silverpill nice! there is a workgroup meeting tomorrow for activitypub-e2ee, are you planning to be there?

w3.org/events/meetings/ad4d3e0

W3C28 July 2026 | SocialWebCG E2EE Task Force Call | CalendarThe World Wide Web Consortium (W3C) is an international community where Member organizations, a full-time staff, and the public work together to develop Web standards.

Replying to @⁨silverpill@mitra.social⁩

@silverpill understandable. fwiw the gate is pretty easy to open, but does require signing a CLA.

how else do you suggest we develop an E2EE protocol for the fediverse? you mention in your FEP that you are giving up on it for a proper E2EE impl. genuinely asking b/c I'm interested in getting E2EE, hopefully interoperable with widest number of clients possible.

also, what do you mean by corporate takeover?

en

Replying to @⁨elle@weathered-steel.social⁩

@elle

fwiw the gate is pretty easy to open, but does require signing a CLA.

It's not that simple. But it might appear easy if you don't inconvenience them too much, and jump through all the hoops https://github.com/swicg/charters/blob/main/stage-process.md

how else do you suggest we develop an E2EE protocol for the fediverse?

In the same way as everything up until this moment has been developed. Somebody just needs to do it.

If the result is good, others will copy it.

>you mention in your FEP that you are giving up on it for a proper E2EE impl. genuinely asking b/c I'm interested in getting E2EE, hopefully interoperable with widest number of clients possible.

Not giving up - I want to explore a more advanced encryption scheme. I think the basics are not going to change too much.

also, what do you mean by corporate takeover?

A lot of things.

Discussion of potential CG and WG charters. Contribute to swicg/charters development by creating an account on GitHub.GitHubcharters/stage-process.md at main · swicg/chartersDiscussion of potential CG and WG charters. Contribute to swicg/charters development by creating an account on GitHub.

Replying to @⁨silverpill@mitra.social⁩

@silverpill

With NIKE (Non-Interactive-Key-Exchange) one sided forward secrecy is the best you can get. AFAIK the fediverse model strongly favors 0-RTT messaging, so I think the FEP as designed is close to ideal, as something simple that fits the use-case.

I will be the first to admit that my knowledge in the protocol is severely lacking, but if you have cryptography related questions, please let me know.

Replying to @⁨greyarea@mitra.vpclmulqdq.moe⁩

@greyarea

>Non-Interactive-Key-Exchange

I think interactive key exchange is fine too. Activities and requests are often sent back and forth between fediverse servers. The most canonical example is probably the Follow activity to which remote server responds with Accept.

>but if you have cryptography related questions, please let me know.

Thank you. I will surely have a lot of questions in the future.

Replying to @⁨silverpill@mitra.social⁩

@silverpill yeah, that staging process is definitely more bureaucratic and formal than "write a FEP, implement it, respond to feedback". but plenty of non-corpo entities have a similar level of bureaucracy, especially in the standards space. idk, am relatively new to the space, so if there is some history or context I'm missing, I'm open to new info.

I'm also down to work together with you on writing an FEP together, and/or writing up some of my ideas about how an MLS-based protocol could work

Replying to @⁨elle@weathered-steel.social⁩

@elle

bureaucracy

Bureaucracy is not necessary, the FEP process proves that. However, I can tolerate bureaucracy if people who are running the standardization process are qualified for the job. E.g. I wouldn't mind if fediverse was represented by an alliance of Mastodon, PeerTube and Lemmy developers.

I'm also down to work together with you on writing an FEP together, and/or writing up some of my ideas about how an MLS-based protocol could work

That would be great, although I am not sure if MLS is our best option. It is too complicated.

Replying to @⁨silverpill@mitra.social⁩

@silverpill I agree MLS is complicated, however it's the best standard for doing E2EE, and it's been vetted by a number of trustworthy professional cryptographers. whatever alternative is chosen would need to meet at least that level of scrutiny. also, if we want to be interoperable with what SWICG is working on, it would need to be MLS based, as that's what they've chosen.

if going in a totally different direction, I'd be interested to hear what you have in mind

Replying to @⁨silverpill@mitra.social⁩

@silverpill absolutely, E2EE is still WIP. I don't think MLS is so complicated that no one can implement it. in a lot of cases, implementers shouldn't have to touch the low-level MLS implementation. OpenMLS exists for Rust, and ts-mls exists for TS/JS. the OpenMLS can be wrapped by anything that can talk to a C FFI. at least how I understand the Embassy/Bonfire impls, they are using those MLS primitives to build up the protocol.