aboutsummaryrefslogtreecommitdiffhomepage
path: root/middlewares/misc.js
diff options
context:
space:
mode:
Diffstat (limited to 'middlewares/misc.js')
-rw-r--r--middlewares/misc.js19
1 files changed, 12 insertions, 7 deletions
diff --git a/middlewares/misc.js b/middlewares/misc.js
index f814acd9f..dbb604db3 100644
--- a/middlewares/misc.js
+++ b/middlewares/misc.js
@@ -1,16 +1,19 @@
1;(function () { 1;(function () {
2 'use strict' 2 'use strict'
3 3
4 var ursa = require('ursa')
5 var fs = require('fs') 4 var fs = require('fs')
5 var ursa = require('ursa')
6 6
7 var logger = require('../helpers/logger') 7 var logger = require('../helpers/logger')
8 var utils = require('../helpers/utils')
9 var PodsDB = require('../initializers/database').PodsDB 8 var PodsDB = require('../initializers/database').PodsDB
9 var utils = require('../helpers/utils')
10 10
11 var misc = {} 11 var miscMiddleware = {
12 cache: cache,
13 decryptBody: decryptBody
14 }
12 15
13 misc.cache = function (cache) { 16 function cache (cache) {
14 return function (req, res, next) { 17 return function (req, res, next) {
15 // If we want explicitly a cache 18 // If we want explicitly a cache
16 // Or if we don't specify if we want a cache or no and we are in production 19 // Or if we don't specify if we want a cache or no and we are in production
@@ -24,7 +27,7 @@
24 } 27 }
25 } 28 }
26 29
27 misc.decryptBody = function (req, res, next) { 30 function decryptBody (req, res, next) {
28 PodsDB.findOne({ url: req.body.signature.url }, function (err, pod) { 31 PodsDB.findOne({ url: req.body.signature.url }, function (err, pod) {
29 if (err) { 32 if (err) {
30 logger.error('Cannot get signed url in decryptBody.', { error: err }) 33 logger.error('Cannot get signed url in decryptBody.', { error: err })
@@ -42,7 +45,7 @@
42 var signature_ok = crt.hashAndVerify('sha256', new Buffer(req.body.signature.url).toString('hex'), req.body.signature.signature, 'hex') 45 var signature_ok = crt.hashAndVerify('sha256', new Buffer(req.body.signature.url).toString('hex'), req.body.signature.signature, 'hex')
43 46
44 if (signature_ok === true) { 47 if (signature_ok === true) {
45 var myKey = ursa.createPrivateKey(fs.readFileSync(utils.certDir + 'peertube.key.pem')) 48 var myKey = ursa.createPrivateKey(fs.readFileSync(utils.getCertDir() + 'peertube.key.pem'))
46 var decryptedKey = myKey.decrypt(req.body.key, 'hex', 'utf8') 49 var decryptedKey = myKey.decrypt(req.body.key, 'hex', 'utf8')
47 req.body.data = JSON.parse(utils.symetricDecrypt(req.body.data, decryptedKey)) 50 req.body.data = JSON.parse(utils.symetricDecrypt(req.body.data, decryptedKey))
48 delete req.body.key 51 delete req.body.key
@@ -55,5 +58,7 @@
55 }) 58 })
56 } 59 }
57 60
58 module.exports = misc 61 // ---------------------------------------------------------------------------
62
63 module.exports = miscMiddleware
59})() 64})()