From 74bd8a45d8274d5b0dcf95ef43d6879fb46c6bea Mon Sep 17 00:00:00 2001 From: les Date: Thu, 19 Sep 2019 23:47:01 +0200 Subject: [PATCH] generate RSA key for old users --- server/api/controller/user.js | 16 ++++++++++++++++ server/federation/users.js | 2 +- server/federation/webfinger.js | 3 +-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/server/api/controller/user.js b/server/api/controller/user.js index 62db22be..e775a5a7 100644 --- a/server/api/controller/user.js +++ b/server/api/controller/user.js @@ -235,6 +235,22 @@ const userController = { if (!req.body.password) { delete req.body.password } + // generate an rsa key in case not present + if (!req.rsa) { + const rsa = await generateKeyPair('rsa', { + modulusLength: 4096, + publicKeyEncoding: { + type: 'spki', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs8', + format: 'pem' + } + }) + req.body.rsa = rsa + } + await user.update(req.body) if (!user.is_active && req.body.is_active && user.recover_code) { diff --git a/server/federation/users.js b/server/federation/users.js index c1891588..c654228e 100644 --- a/server/federation/users.js +++ b/server/federation/users.js @@ -104,7 +104,7 @@ module.exports = { '@context': 'https://www.w3.org/ns/activitystreams', id: `${config.baseurl}/federation/u/${name}/outbox?page=${page}`, type: 'OrderedCollectionPage', - totalItems: user.followers.length, + totalItems: user.events.length, partOf: `${config.baseurl}/federation/u/${name}/outbox` , orderedItems: user.events.map(e => ({ id: `${config.baseurl}/federation/m/${e.id}#create`, diff --git a/server/federation/webfinger.js b/server/federation/webfinger.js index 015b3559..6adbb7ec 100644 --- a/server/federation/webfinger.js +++ b/server/federation/webfinger.js @@ -11,8 +11,7 @@ const debug = require('debug')('webfinger') router.use(cors()) router.get('/webfinger', async (req, res) => { - const resource = req.query.resource - if (!resource || !resource.includes('acct:')) { + if (!req.query || !req.query.resource || !req.query.resource.includes('acct:')) { debug('Bad webfinger request => %s', resource.query) return res.status(400).send('Bad request. Please make sure "acct:USER@DOMAIN" is what you are sending as the "resource" query parameter.') }