verificarPayload.js
521 Bytes
const createError = require('http-errors')
const EC = require('elliptic').ec
const ec = new EC('secp256k1')
const { clientPoint } = require('../keys')
const clientPub = ec.keyFromPublic(clientPoint)
const verificar = (nonce, firma) => {
return clientPub.verify(nonce, new Buffer(firma, 'hex'))
}
module.exports = (req, res, next) => {
const { firma } = req.params
const payload = JSON.stringify(req.body)
const valido = verificar(payload, firma)
if (!valido ) return next(createError(403))
return next()
}