From 1777be323c8b2ade576cf1b8c97ce883c9e92861 Mon Sep 17 00:00:00 2001 From: tenthirtyone Date: Tue, 15 Aug 2017 20:29:38 -0400 Subject: [PATCH] Message verification and bitcore-message added --- server/lib/api/message.js | 30 ++++++++++++++++++++++++++++-- server/package.json | 1 + 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/server/lib/api/message.js b/server/lib/api/message.js index cc71ed6..59b08aa 100644 --- a/server/lib/api/message.js +++ b/server/lib/api/message.js @@ -1,10 +1,36 @@ +const Message = require('bitcore-message'); + +function verifyMessage(req, res) { + const address = req.body.address || req.query.address; + const signature = req.body.signature || req.query.signature; + const message = req.body.message || req.query.message; + if (!address || !signature || !message) { + res.json({ + message: 'Missing parameters (expected "address", "signature" and "message")', + code: 1, + }); + return; + } + let valid; + try { + valid = new Message(message).verify(address, signature); + } catch (err) { + res.json({ + message: `Unexpected error: ${err.message}`, + code: 1, + }); + return; + } + res.json({ result: valid }); +} + module.exports = function messageAPI(router) { router.get('/messages/verify', (req, res) => { - res.send('messages verify'); + verifyMessage(req, res); }); router.post('/messages/verify', (req, res) => { - res.send('post messages verify'); + verifyMessage(req, res); }); router.get('/utils/estimatefee', (req, res) => { diff --git a/server/package.json b/server/package.json index 998ff30..7a31453 100644 --- a/server/package.json +++ b/server/package.json @@ -14,6 +14,7 @@ "license": "MIT", "dependencies": { "bcoin": "^1.0.0-beta.14", + "bitcore-message": "^1.0.4", "body-parser": "^1.17.2", "express": "^4.15.3", "mongoose": "^4.11.5",