forked from F1LT3R/node-encryption
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaes.js
executable file
·61 lines (51 loc) · 1.29 KB
/
aes.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/env node
const encrypt = require('./lib/encrypt');
const decrypt = require('./lib/decrypt');
const password = require('./lib/password');
const argv = process.argv.slice(2);
const [op, file] = argv;
const MODE_OPTIONS = [['encrypt', 'enc', 'e'], ['decrypt', 'dec', 'd']];
const HELP_OPTIONS = ['--help', '-h', '-?', 'help'];
function usage() {
console.log(`Usage:
aes encrypt|decrypt [file]
or
aes enc|dec [file]
or
aes e|d [file]
Examples:
aes encrypt test.txt
aes decrypt test.txt
`);
}
if(HELP_OPTIONS.includes(op) || !op) {
usage();
process.exit(0);
} else if(!MODE_OPTIONS.flat().includes(op)) {
console.log(`Invalid operation: ${op ? `'${op}' ` : ''}`);
usage();
process.exit(1);
}
if(MODE_OPTIONS[0].includes(op)) {
mode = MODE_OPTIONS[0][0];
}
if(MODE_OPTIONS[1].includes(op)) {
mode = MODE_OPTIONS[1][0];
}
console.log(mode, file);
mode && password(mode, ({ password1, password2 }) => {
if (mode === 'decrypt') {
decrypt({ file, password: password1 });
return;
}
if (password1 !== password2) {
console.log('Passwords do not match!');
return;
}
if (mode === 'encrypt') {
if(!password2) {
console.error('Password required to encrypt');
process.exit(1);
} else encrypt({ file, password: password2 });
}
});