testing new Digest sign header

This commit is contained in:
les 2021-03-18 17:15:50 +01:00
parent 0fd45e2f22
commit 5e775f4e91
No known key found for this signature in database
GPG key ID: 352918250B012177

View file

@ -40,7 +40,11 @@ const Helpers = {
const privkey = settingsController.secretSettings.privateKey const privkey = settingsController.secretSettings.privateKey
const signer = crypto.createSign('sha256') const signer = crypto.createSign('sha256')
const d = new Date() const d = new Date()
const stringToSign = `(request-target): post ${inboxUrl.pathname}\nhost: ${inboxUrl.hostname}\ndate: ${d.toUTCString()}` // digest header added for Mastodon 3.2.1 compatibility
const digest = crypto.createHash('sha256')
.update(message)
.digest('base64')
const stringToSign = `(request-target): post ${inboxUrl.pathname}\nhost: ${inboxUrl.hostname}\ndate: ${d.toUTCString()}\ndigest: ${digest}`
signer.update(stringToSign) signer.update(stringToSign)
signer.end() signer.end()
const signature = signer.sign(privkey) const signature = signer.sign(privkey)
@ -52,15 +56,16 @@ const Helpers = {
Host: inboxUrl.hostname, Host: inboxUrl.hostname,
Date: d.toUTCString(), Date: d.toUTCString(),
Signature: header, Signature: header,
Digest: `SHA256=${digest}`,
'Content-Type': 'application/activity+json; charset=utf-8', 'Content-Type': 'application/activity+json; charset=utf-8',
Accept: 'application/activity+json, application/json; chartset=utf-8' Accept: 'application/activity+json, application/json; chartset=utf-8'
}, },
method: 'post', method: 'post',
data: JSON.stringify(message) data: message
}) })
log.debug(`sign ${ret.status} => ${ret.data}`) log.debug(`sign ${ret.status} => ${ret.data}`)
} catch (e) { } catch (e) {
log.error(e) log.error(`Response: ${e.response.status} ${e.response.data}`)
} }
}, },
@ -96,7 +101,7 @@ const Helpers = {
{ {
Hashtag: 'as:Hashtag' Hashtag: 'as:Hashtag'
}] }]
await Helpers.signAndSend(body, sharedInbox) await Helpers.signAndSend(JSON.stringify(body), sharedInbox)
} }
}, },