forked from valsid/CryptoPipe
-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
40 lines (34 loc) · 951 Bytes
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const ipc = require('node-ipc');
const fs = require('fs');
const algorithm = 'aes-256-cbc'; // cbc -> Cipher Block Chaining
const password = fs.readFileSync('keys/cryptoStream.key'); // TODO: nice API with these settings
const Crypt = require('./crypto.js'); // TODO: naming
const crypt = new Crypt(algorithm, password);
ipc.config.id = 'cryptoStream';
ipc.config.retry = 1500;
ipc.config.silent = true;
ipc.serve(() => {
ipc.server.on(
'encrypt',
(data, socket) => {
data.message = crypt.encrypt(data.message);
ipc.server.emit(socket, 'encrypted', data);
}
);
ipc.server.on(
'decrypt',
(data, socket) => {
try {
data.message = crypt.decrypt(data.message);
} catch(err) {
data.message = '';
data.err = true;
} finally {
ipc.server.emit(socket, 'decrypted', data);
}
}
);
});
// module.exports = function start() {
ipc.server.start();
// };