Closed
Description
As a first step towards federation this issue, a small part of federation to be implemented would be to create an RSA keypair per user. Although signing http requests is not required by ActivityPub or ActivityStreams, many implementations verify/expect one.
What a PR would include:
- Code to generate RSA key pair
- add key pair fields to user struct (allow nullable, as in future we may store remote/federated users in same table, and we of course wouldn't have access to the private part of their keypair)
- On user create, add code for generation of keypair so that it is created/saved to DB when a user is created.
- migration to add key pair to each user (think about more this due to rand pool exhaustion possibility, perhaps on demand generation is better)
- While the user key pair would be stored in the DB, an "instance actor" key could also be generated and stored on disk (similarly to how the jwt key pair is stored).
I have most of a PR ready, and will have it done by the next videoconference, but the first step is creating an issue for the PR to link to.
Related: #14186 (comment)
cc: @pilou- (as agent of Loic)