-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerateLicense.js
103 lines (89 loc) · 3.03 KB
/
generateLicense.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
const express = require('express');
const bodyParser = require('body-parser');
const licenseFile = require('nodejs-license-file');
const http = require('http');
const fs = require('fs');
const AES = require('crypto-js/aes');
const ENC_HEX = require('crypto-js/enc-hex');
const ZERO_PADDING = require('crypto-js/pad-zeropadding');
const SimpleCrypto = require("simple-crypto-js").default;
const _secretKey = SimpleCrypto.generateRandom(256);
const simpleCrypto1 = new SimpleCrypto(_secretKey);
const simpleCrypto2 = new SimpleCrypto(_secretKey);
const app = express();
const urlencodedParser = bodyParser.urlencoded({extended: false});
app.set('views', '/var/www/html/apmais/license/views');
app.set('view engine', 'ejs');
app.get('/', function(req, res){
res.render('index');
});
app.post('/', urlencodedParser, function(req, res){
const date = req.body.date;
const name = req.body.clientName;
const type = req.body.optradio;
const template = [
'====BEGIN LICENSE====',
'{{&client}}',
'{{&hash1}}',
'{{&hash2}}',
'{{&serial}}',
'=====END LICENSE====='
].join('\n');
try {
if(type === 'JS'){
const licenseFileContent = licenseFile.generate({
privateKeyPath: '/var/www/html/apmais/keys/private_key.pem',
template,
data: {
client: name,
hash1:_secretKey,
hash2: simpleCrypto1.encrypt(date)
}
});
try {
fs.writeFile(`/var/www/html/ap.lic`, licenseFileContent, function(err){
if(err){
throw err;
}else{
console.log("Successfully write to the file!!!");
res.render('fileGenerated.ejs', {data: licenseFileContent});
}
});
} catch (err) {
console.log("Writing to a file Error catch");
res.render('fileGenerated.ejs', {data: "Writing to a file Error catch"});
}
}else {
let key = ENC_HEX.parse("0123456789abcdef0123456789abcdef");
let iv = ENC_HEX.parse("abcdef9876543210abcdef9876543210");
const encryptedPhpKey = AES.encrypt(date, key, {iv:iv, padding:ZERO_PADDING}).toString();
const licenseFileContent = licenseFile.generate({
privateKeyPath: '/var/www/html/apmais/keys/private_key.pem',
template,
data: {
client: name,
hash1:_secretKey,
hash2: encryptedPhpKey
}
});
try {
fs.writeFile(`/var/www/html/${name}_file_${type}.lic`, licenseFileContent, function(err){
if(err){
throw err;
}else{
console.log("Successfully write to the file!!!");
res.render('fileGenerated.ejs', {data: licenseFileContent});
}
});
} catch (err) {
console.log("Writing to a file Error catch");
res.render('fileGenerated.ejs', {data: "Writing to a file Error catch"});
}
}
} catch (err) {
console.log(err);
res.render('fileGenerated.ejs', {data: "Error creating the file"});
}
});
app.listen(9001);
console.log('Server is running on port 9001');