Decreased key size and added non encrypted socket events

This commit is contained in:
emad-salah 2020-01-31 16:42:16 +01:00
parent 1bb8d36006
commit 596ae7884d
3 changed files with 14 additions and 5 deletions

View file

@ -325,9 +325,9 @@ class Mediator {
const deviceId = socket.handshake.query['x-shockwallet-device-id'] const deviceId = socket.handshake.query['x-shockwallet-device-id']
socket.on(eventName, data => { socket.on(eventName, data => {
try { try {
// if (nonEncryptedEvents.includes(eventName)) { if (Encryption.isNonEncrypted(eventName)) {
// return cb(data) return cb(data)
// } }
if (!data) { if (!data) {
return cb(data) return cb(data)
@ -350,6 +350,7 @@ class Mediator {
console.error('Unknown Device', error) console.error('Unknown Device', error)
return false return false
} }
console.log('Emitting Data...', data)
if (typeof data === 'string') { if (typeof data === 'string') {
data = JSON.parse(data) data = JSON.parse(data)
} }
@ -378,6 +379,11 @@ class Mediator {
}, },
emit: (eventName, data) => { emit: (eventName, data) => {
try { try {
if (Encryption.isNonEncrypted(eventName)) {
socket.emit(eventName, data)
return
}
const deviceId = socket.handshake.query['x-shockwallet-device-id'] const deviceId = socket.handshake.query['x-shockwallet-device-id']
const authorized = Encryption.isAuthorizedDevice({ deviceId }) const authorized = Encryption.isAuthorizedDevice({ deviceId })
const encryptedMessage = authorized const encryptedMessage = authorized

View file

@ -327,7 +327,7 @@ module.exports = async (
try { try {
const { publicKey, deviceId } = req.body; const { publicKey, deviceId } = req.body;
if (!publicKey || publicKey.length < 600) { if (!publicKey) {
return res.status(400).json({ return res.status(400).json({
field: 'publicKey', field: 'publicKey',
message: "Please provide a valid public key" message: "Please provide a valid public key"

View file

@ -6,7 +6,10 @@ const { Buffer } = require('buffer')
const APIKeyPair = new Map() const APIKeyPair = new Map()
const authorizedDevices = new Map() const authorizedDevices = new Map()
const nonEncryptedEvents = ['ping', 'disconnect']
const Encryption = { const Encryption = {
isNonEncrypted: event => nonEncryptedEvents.includes(event),
encryptKey: ({ deviceId, message }) => { encryptKey: ({ deviceId, message }) => {
if (!authorizedDevices.has(deviceId)) { if (!authorizedDevices.has(deviceId)) {
throw { field: 'deviceId', message: 'Unknown Device ID' } throw { field: 'deviceId', message: 'Unknown Device ID' }