mirror of
https://github.com/PretendoNetwork/miiverse-api.git
synced 2026-08-19 23:24:05 -05:00
fixed authentication on non-windows platforms
This commit is contained in:
25
package-lock.json
generated
25
package-lock.json
generated
@@ -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",
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"http": {
|
||||
"port": 8080
|
||||
},
|
||||
"secret": "b213a890ac28739a0fc0e47f034308c1",
|
||||
"mongoose": {
|
||||
"uri": "mongodb://localhost:27017",
|
||||
"database": "Miiverse",
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user