diff --git a/package-lock.json b/package-lock.json index 1628c5b2f..deb42eb52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -847,7 +847,7 @@ }, "abbrev": { "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "accepts": { @@ -3952,7 +3952,7 @@ }, "glob": { "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -4084,7 +4084,7 @@ }, "gtoken": { "version": "https://registry.npmjs.org/gtoken/-/gtoken-1.2.3.tgz", - "integrity": "sha1-VQlXG4r9QyLhJM9mz2gRUoTEdtg=", + "integrity": "sha512-wQAJflfoqSgMWrSBk9Fg86q+sd6s7y6uJhIvvIPz++RElGlMtEqsdAR2oWwZ/WTEtp7P9xFbJRrT976oRgzJ/w==", "requires": { "google-p12-pem": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-0.1.2.tgz", "jws": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", @@ -4094,7 +4094,7 @@ "dependencies": { "mime": { "version": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=" + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" } } }, @@ -4214,11 +4214,6 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, - "hat": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz", - "integrity": "sha1-uwFKnmSzeIrtgAWRdBPU/z1QLYo=" - }, "hawk": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", @@ -4256,7 +4251,7 @@ }, "hosted-git-info": { "version": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha1-bWDjSzq7yDEwYsO3mO+NkBoHrzw=" + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" }, "http-signature": { "version": "1.1.1", @@ -4328,7 +4323,7 @@ }, "is-buffer": { "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-builtin-module": { "version": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", @@ -4826,7 +4821,7 @@ }, "lru-cache": { "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha1-Yi4y6CSItJJ5EUpPns9F581rulU=", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "requires": { "pseudomap": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "yallist": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" @@ -5004,7 +4999,7 @@ }, "minimatch": { "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz" } @@ -5898,7 +5893,7 @@ }, "normalize-package-data": { "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", "is-builtin-module": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", @@ -6035,7 +6030,7 @@ }, "os-locale": { "version": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "requires": { "execa": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "lcid": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -6824,7 +6819,7 @@ }, "readable-stream": { "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -6837,7 +6832,7 @@ }, "readdirp": { "version": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "integrity": "sha512-LgQ8mdp6hbxJUZz27qxVl7gmFM/0DfHRO52c5RUbKAgMvr81tour7YYWW1JYNmrXyD/o0Myy9/DC3fUYkqnyzg==", "dev": true, "requires": { "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", @@ -7255,7 +7250,7 @@ "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" } @@ -7267,7 +7262,7 @@ }, "safe-buffer": { "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=" + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "safe-json-stringify": { "version": "1.1.0", @@ -7937,7 +7932,7 @@ }, "string_decoder": { "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" } @@ -8546,7 +8541,7 @@ }, "which": { "version": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "requires": { "isexe": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" } diff --git a/package.json b/package.json index d3b38d907..7f2fe0ba8 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,6 @@ "ejs-cli": "^2.0.1", "express": "^4.16.3", "express-session": "^1.15.6", - "hat": "0.0.3", "json": "^9.0.3", "ldapjs": "^1.0.2", "lodash.chunk": "^4.2.0", diff --git a/src/addons.js b/src/addons.js index e5b1a029e..d2c213f17 100644 --- a/src/addons.js +++ b/src/addons.js @@ -28,7 +28,7 @@ var accesscontrol = require('./accesscontrol.js'), docker = require('./docker.js'), dockerConnection = docker.connection, fs = require('fs'), - hat = require('hat'), + hat = require('./hat.js'), infra = require('./infra_version.js'), mail = require('./mail.js'), mailboxdb = require('./mailboxdb.js'), diff --git a/src/clients.js b/src/clients.js index 98e9e5c4d..b578f23e4 100644 --- a/src/clients.js +++ b/src/clients.js @@ -33,7 +33,7 @@ var apps = require('./apps.js'), DatabaseError = require('./databaseerror.js'), debug = require('debug')('box:clients'), eventlog = require('./eventlog.js'), - hat = require('hat'), + hat = require('./hat.js'), accesscontrol = require('./accesscontrol.js'), tokendb = require('./tokendb.js'), users = require('./users.js'), diff --git a/src/hat.js b/src/hat.js new file mode 100644 index 000000000..a9cf00e42 --- /dev/null +++ b/src/hat.js @@ -0,0 +1,9 @@ +'use strict'; + +exports = module.exports = hat; + +var crypto = require('crypto'); + +function hat (bits) { + return crypto.randomBytes(bits / 8).toString('hex'); +} diff --git a/src/platform.js b/src/platform.js index fe28ddd31..0b62a1d10 100644 --- a/src/platform.js +++ b/src/platform.js @@ -13,7 +13,7 @@ var apps = require('./apps.js'), config = require('./config.js'), debug = require('debug')('box:platform'), fs = require('fs'), - hat = require('hat'), + hat = require('./hat.js'), infra = require('./infra_version.js'), locker = require('./locker.js'), mail = require('./mail.js'), diff --git a/src/routes/oauth2.js b/src/routes/oauth2.js index b5de5b466..471237031 100644 --- a/src/routes/oauth2.js +++ b/src/routes/oauth2.js @@ -30,7 +30,7 @@ var accesscontrol = require('../accesscontrol.js'), DatabaseError = require('../databaseerror.js'), debug = require('debug')('box:routes/oauth2'), eventlog = require('../eventlog.js'), - hat = require('hat'), + hat = require('../hat.js'), HttpError = require('connect-lastmile').HttpError, middleware = require('../middleware/index.js'), oauth2orize = require('oauth2orize'), diff --git a/src/routes/test/clients-test.js b/src/routes/test/clients-test.js index 81053ddce..a0f00021c 100644 --- a/src/routes/test/clients-test.js +++ b/src/routes/test/clients-test.js @@ -13,7 +13,7 @@ var accesscontrol = require('../../accesscontrol.js'), oauth2 = require('../oauth2.js'), expect = require('expect.js'), uuid = require('uuid'), - hat = require('hat'), + hat = require('../../hat.js'), superagent = require('superagent'), server = require('../../server.js'); diff --git a/src/routes/test/oauth2-test.js b/src/routes/test/oauth2-test.js index 201a6aabd..b665c474f 100644 --- a/src/routes/test/oauth2-test.js +++ b/src/routes/test/oauth2-test.js @@ -15,7 +15,7 @@ var accesscontrol = require('../../accesscontrol.js'), database = require('../../database.js'), domains = require('../../domains.js'), expect = require('expect.js'), - hat = require('hat'), + hat = require('../../hat.js'), nock = require('nock'), oauth2 = require('../oauth2.js'), querystring = require('querystring'), diff --git a/src/server.js b/src/server.js index bb506853b..a7a855a85 100644 --- a/src/server.js +++ b/src/server.js @@ -13,7 +13,7 @@ var accesscontrol = require('./accesscontrol.js'), database = require('./database.js'), eventlog = require('./eventlog.js'), express = require('express'), - hat = require('hat'), + hat = require('./hat.js'), http = require('http'), middleware = require('./middleware'), passport = require('passport'), diff --git a/src/test/apps-test.js b/src/test/apps-test.js index 4148c2146..f46c6b6ba 100644 --- a/src/test/apps-test.js +++ b/src/test/apps-test.js @@ -16,7 +16,7 @@ var appdb = require('../appdb.js'), expect = require('expect.js'), groupdb = require('../groupdb.js'), groups = require('../groups.js'), - hat = require('hat'), + hat = require('../hat.js'), settings = require('../settings.js'), settingsdb = require('../settingsdb.js'), userdb = require('../userdb.js'); diff --git a/src/test/database-test.js b/src/test/database-test.js index f0a132677..4c6bc1bb9 100644 --- a/src/test/database-test.js +++ b/src/test/database-test.js @@ -17,7 +17,7 @@ var appdb = require('../appdb.js'), eventlogdb = require('../eventlogdb.js'), expect = require('expect.js'), groupdb = require('../groupdb.js'), - hat = require('hat'), + hat = require('../hat.js'), mailboxdb = require('../mailboxdb.js'), maildb = require('../maildb.js'), settingsdb = require('../settingsdb.js'), diff --git a/src/test/groups-test.js b/src/test/groups-test.js index b78b8a4e3..1735e9ea6 100644 --- a/src/test/groups-test.js +++ b/src/test/groups-test.js @@ -14,7 +14,7 @@ var async = require('async'), expect = require('expect.js'), groups = require('../groups.js'), GroupsError = groups.GroupsError, - hat = require('hat'), + hat = require('../hat.js'), mailboxdb = require('../mailboxdb.js'), userdb = require('../userdb.js'); diff --git a/src/tokendb.js b/src/tokendb.js index 0a4b09f1c..7bdf7c574 100644 --- a/src/tokendb.js +++ b/src/tokendb.js @@ -20,8 +20,7 @@ exports = module.exports = { var assert = require('assert'), database = require('./database.js'), DatabaseError = require('./databaseerror'), - hat = require('hat'); - + hat = require('./hat.js'); var TOKENS_FIELDS = [ 'accessToken', 'identifier', 'clientId', 'scope', 'expires' ].join(','); diff --git a/src/users.js b/src/users.js index e191c38c6..35aa495ba 100644 --- a/src/users.js +++ b/src/users.js @@ -37,7 +37,7 @@ var assert = require('assert'), groupdb = require('./groupdb.js'), groups = require('./groups.js'), GroupsError = groups.GroupsError, - hat = require('hat'), + hat = require('./hat.js'), mailer = require('./mailer.js'), qrcode = require('qrcode'), safe = require('safetydance'),