fixed authentication on non-windows platforms

This commit is contained in:
CaramelKat
2020-05-14 23:10:56 -05:00
committed by Jay
parent 9600c24e8e
commit 2b2c3c1ecc
7 changed files with 79 additions and 83 deletions

25
package-lock.json generated
View File

@@ -766,6 +766,11 @@
"resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz",
"integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw=="
},
"lodash": {
"version": "4.17.15",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
},
"lodash.foreach": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
@@ -1188,6 +1193,15 @@
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sanitize": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/sanitize/-/sanitize-2.1.0.tgz",
"integrity": "sha512-HLDVriFJnrm6ElDe2E8alAKDMZGMtM8CdKhvunp9592j8hNwZmmsmhk/t6WZbWonKJsHK0OoxH5S1Yoie4sSpw==",
"requires": {
"lodash": "^4.17.0",
"validator": "^3.33.0"
}
},
"sanitizer": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/sanitizer/-/sanitizer-0.1.3.tgz",
@@ -1298,6 +1312,12 @@
"integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=",
"dev": true
},
"string-sanitizer": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string-sanitizer/-/string-sanitizer-1.1.1.tgz",
"integrity": "sha512-ZaqlidMholFiBaKDPPVf9cJjNo6iRhP6g/ei5qTgvzKEMa8TK/nu4hM90YZ2LvfjvAomF2LIexmOlX1MvYN+ug==",
"dev": true
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -1419,6 +1439,11 @@
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
"dev": true
},
"validator": {
"version": "3.43.0",
"resolved": "https://registry.npmjs.org/validator/-/validator-3.43.0.tgz",
"integrity": "sha1-lkZLmS1BloM9l6GUv0Cxn/VLrgU="
},
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",

View File

@@ -25,6 +25,7 @@
"node-snowflake": "0.0.1",
"pako": "^1.0.11",
"pngjs": "^5.0.0",
"sanitize": "^2.1.0",
"tga": "^1.0.3",
"xmlbuilder": "^13.0.2",
"xmlbuilder2": "0.0.4"
@@ -33,6 +34,7 @@
"multer": "^1.4.2",
"object-to-xml": "^2.0.0",
"request": "^2.88.2",
"string-sanitizer": "^1.1.1",
"xml2json": "^0.12.0"
}
}

View File

@@ -2,6 +2,7 @@
"http": {
"port": 8080
},
"secret": "b213a890ac28739a0fc0e47f034308c1",
"mongoose": {
"uri": "mongodb://localhost:27017",
"database": "Miiverse",

View File

@@ -17,7 +17,7 @@ logger.info('[MIIVERSE] Creating \'discovery\' subdomain');
router.use(subdomain('discovery.olv', discovery));
logger.info('[MIIVERSE] Creating \'api\' subdomain');
router.use(subdomain('api.olv', api));
router.use(subdomain('d551f9ba', api));
router.use(subdomain('f2d99ded', api));
logger.info('[MIIVERSE] Importing middleware');

View File

@@ -62,9 +62,6 @@ router.post('/', upload.none(), async function (req, res, next) {
catch (e)
{
console.error(e);
}
finally
{
res.set("Content-Type", "application/xml");
res.statusCode = 400;
response = {

File diff suppressed because one or more lines are too long

View File

@@ -2,6 +2,7 @@ const crypto = require('crypto');
const NodeRSA = require('node-rsa');
const fs = require('fs-extra');
const database = require('../database');
const config = require('../config.json');
const xmlParser = require('xml2json');
const request = require("request");
const moment = require('moment');
@@ -58,10 +59,12 @@ let methods = {
return out;
},
processServiceToken: function(token) {
console.log(token);
let B64token = Buffer.from(token, 'base64');
console.log(B64token);
let decryptedToken = this.decryptToken(B64token);
let PID = decryptedToken.readUInt32LE(0x2);
return PID;
console.log(decryptedToken);
return decryptedToken.readUInt32LE(0x2);
},
@@ -87,7 +90,7 @@ let methods = {
const cryptoOptions = {
private_key: fs.readFileSync(`${cryptoPath}/private.pem`),
hmac_secret: fs.readFileSync(`${cryptoPath}/secret.key`)
hmac_secret: config.secret
};
const privateKey = new NodeRSA(cryptoOptions.private_key, 'pkcs1-private-pem', {
@@ -110,10 +113,12 @@ let methods = {
let decryptedBody = decipher.update(encryptedBody);
decryptedBody = Buffer.concat([decryptedBody, decipher.final()]);
console.log("secret: " + cryptoOptions.hmac_secret);
const hmac = crypto.createHmac('sha1', cryptoOptions.hmac_secret).update(decryptedBody);
const calculatedSignature = hmac.digest();
const calculatedSignature = hmac.digest();
console.log(calculatedSignature);
console.log(signature);
if (!calculatedSignature.equals(signature)) {
console.log('Token signature did not match');
return null;