async generateSignatureHeaders(ctx) { const { url, body, actorUri } = ctx.params; const actorId = getSlugFromUri(actorUri); const headers = { Date: new Date().toUTCString(), Digest: this.buildDigest(body) }; // Generate signature string const requestOptions = { url, method: 'POST', headers }; const includeHeaders = ['(request-target)', 'host', 'date', 'digest']; const signatureString = createSignatureString({ includeHeaders, requestOptions }); // Hash signature string const signer = createSign('sha256'); signer.update(signatureString); const privateKey = await fsPromises.readFile(path.join(this.settings.actorsKeyPairsDir, actorId + '.key')); const signatureHash = signer.sign(privateKey).toString('base64'); headers.Signature = createAuthzHeader({ includeHeaders, keyId: actorUri, signature: signatureHash }).substr('Signature '.length); return headers; }
data = Buffer.from(data) let signer = crypto.createSign(osslCurveName.hash) signer.update(data)
let pem = key.handle data = new TextDecoder().decode(data) let signer = crypto.createSign(hashName) signer.update(data) return signer.sign(pem).buffer
let pem = key.handle data = new TextDecoder().decode(data) let signer = crypto.createSign(hashName) signer.update(data) return signer.sign({