Merge pull request #23 from shocknet/bug/e2e-key-size

Bug/e2e key size
This commit is contained in:
Daniel Lugo 2020-02-01 13:57:20 -04:00 committed by GitHub
commit 1e0a89d457
3 changed files with 15 additions and 6 deletions

View file

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

View file

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

View file

@ -6,7 +6,10 @@ const { Buffer } = require('buffer')
const APIKeyPair = new Map()
const authorizedDevices = new Map()
const nonEncryptedEvents = ['ping', 'disconnect']
const Encryption = {
isNonEncrypted: event => nonEncryptedEvents.includes(event),
encryptKey: ({ deviceId, message }) => {
if (!authorizedDevices.has(deviceId)) {
throw { field: 'deviceId', message: 'Unknown Device ID' }
@ -87,7 +90,7 @@ const Encryption = {
Crypto.generateKeyPair(
'rsa',
{
modulusLength: 4096,
modulusLength: 2048,
privateKeyEncoding: {
type: 'pkcs1',
format: 'pem'