aboutsummaryrefslogtreecommitdiffstats
path: root/backend/node_modules/jws/lib
diff options
context:
space:
mode:
Diffstat (limited to 'backend/node_modules/jws/lib')
-rw-r--r--backend/node_modules/jws/lib/data-stream.js55
-rw-r--r--backend/node_modules/jws/lib/sign-stream.js78
-rw-r--r--backend/node_modules/jws/lib/tostring.js10
-rw-r--r--backend/node_modules/jws/lib/verify-stream.js120
4 files changed, 0 insertions, 263 deletions
diff --git a/backend/node_modules/jws/lib/data-stream.js b/backend/node_modules/jws/lib/data-stream.js
deleted file mode 100644
index 3535d31..0000000
--- a/backend/node_modules/jws/lib/data-stream.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*global module, process*/
-var Buffer = require('safe-buffer').Buffer;
-var Stream = require('stream');
-var util = require('util');
-
-function DataStream(data) {
- this.buffer = null;
- this.writable = true;
- this.readable = true;
-
- // No input
- if (!data) {
- this.buffer = Buffer.alloc(0);
- return this;
- }
-
- // Stream
- if (typeof data.pipe === 'function') {
- this.buffer = Buffer.alloc(0);
- data.pipe(this);
- return this;
- }
-
- // Buffer or String
- // or Object (assumedly a passworded key)
- if (data.length || typeof data === 'object') {
- this.buffer = data;
- this.writable = false;
- process.nextTick(function () {
- this.emit('end', data);
- this.readable = false;
- this.emit('close');
- }.bind(this));
- return this;
- }
-
- throw new TypeError('Unexpected data type ('+ typeof data + ')');
-}
-util.inherits(DataStream, Stream);
-
-DataStream.prototype.write = function write(data) {
- this.buffer = Buffer.concat([this.buffer, Buffer.from(data)]);
- this.emit('data', data);
-};
-
-DataStream.prototype.end = function end(data) {
- if (data)
- this.write(data);
- this.emit('end', data);
- this.emit('close');
- this.writable = false;
- this.readable = false;
-};
-
-module.exports = DataStream;
diff --git a/backend/node_modules/jws/lib/sign-stream.js b/backend/node_modules/jws/lib/sign-stream.js
deleted file mode 100644
index 6a7ee42..0000000
--- a/backend/node_modules/jws/lib/sign-stream.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/*global module*/
-var Buffer = require('safe-buffer').Buffer;
-var DataStream = require('./data-stream');
-var jwa = require('jwa');
-var Stream = require('stream');
-var toString = require('./tostring');
-var util = require('util');
-
-function base64url(string, encoding) {
- return Buffer
- .from(string, encoding)
- .toString('base64')
- .replace(/=/g, '')
- .replace(/\+/g, '-')
- .replace(/\//g, '_');
-}
-
-function jwsSecuredInput(header, payload, encoding) {
- encoding = encoding || 'utf8';
- var encodedHeader = base64url(toString(header), 'binary');
- var encodedPayload = base64url(toString(payload), encoding);
- return util.format('%s.%s', encodedHeader, encodedPayload);
-}
-
-function jwsSign(opts) {
- var header = opts.header;
- var payload = opts.payload;
- var secretOrKey = opts.secret || opts.privateKey;
- var encoding = opts.encoding;
- var algo = jwa(header.alg);
- var securedInput = jwsSecuredInput(header, payload, encoding);
- var signature = algo.sign(securedInput, secretOrKey);
- return util.format('%s.%s', securedInput, signature);
-}
-
-function SignStream(opts) {
- var secret = opts.secret||opts.privateKey||opts.key;
- var secretStream = new DataStream(secret);
- this.readable = true;
- this.header = opts.header;
- this.encoding = opts.encoding;
- this.secret = this.privateKey = this.key = secretStream;
- this.payload = new DataStream(opts.payload);
- this.secret.once('close', function () {
- if (!this.payload.writable && this.readable)
- this.sign();
- }.bind(this));
-
- this.payload.once('close', function () {
- if (!this.secret.writable && this.readable)
- this.sign();
- }.bind(this));
-}
-util.inherits(SignStream, Stream);
-
-SignStream.prototype.sign = function sign() {
- try {
- var signature = jwsSign({
- header: this.header,
- payload: this.payload.buffer,
- secret: this.secret.buffer,
- encoding: this.encoding
- });
- this.emit('done', signature);
- this.emit('data', signature);
- this.emit('end');
- this.readable = false;
- return signature;
- } catch (e) {
- this.readable = false;
- this.emit('error', e);
- this.emit('close');
- }
-};
-
-SignStream.sign = jwsSign;
-
-module.exports = SignStream;
diff --git a/backend/node_modules/jws/lib/tostring.js b/backend/node_modules/jws/lib/tostring.js
deleted file mode 100644
index f5a49a3..0000000
--- a/backend/node_modules/jws/lib/tostring.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/*global module*/
-var Buffer = require('buffer').Buffer;
-
-module.exports = function toString(obj) {
- if (typeof obj === 'string')
- return obj;
- if (typeof obj === 'number' || Buffer.isBuffer(obj))
- return obj.toString();
- return JSON.stringify(obj);
-};
diff --git a/backend/node_modules/jws/lib/verify-stream.js b/backend/node_modules/jws/lib/verify-stream.js
deleted file mode 100644
index 39f7c73..0000000
--- a/backend/node_modules/jws/lib/verify-stream.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/*global module*/
-var Buffer = require('safe-buffer').Buffer;
-var DataStream = require('./data-stream');
-var jwa = require('jwa');
-var Stream = require('stream');
-var toString = require('./tostring');
-var util = require('util');
-var JWS_REGEX = /^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/;
-
-function isObject(thing) {
- return Object.prototype.toString.call(thing) === '[object Object]';
-}
-
-function safeJsonParse(thing) {
- if (isObject(thing))
- return thing;
- try { return JSON.parse(thing); }
- catch (e) { return undefined; }
-}
-
-function headerFromJWS(jwsSig) {
- var encodedHeader = jwsSig.split('.', 1)[0];
- return safeJsonParse(Buffer.from(encodedHeader, 'base64').toString('binary'));
-}
-
-function securedInputFromJWS(jwsSig) {
- return jwsSig.split('.', 2).join('.');
-}
-
-function signatureFromJWS(jwsSig) {
- return jwsSig.split('.')[2];
-}
-
-function payloadFromJWS(jwsSig, encoding) {
- encoding = encoding || 'utf8';
- var payload = jwsSig.split('.')[1];
- return Buffer.from(payload, 'base64').toString(encoding);
-}
-
-function isValidJws(string) {
- return JWS_REGEX.test(string) && !!headerFromJWS(string);
-}
-
-function jwsVerify(jwsSig, algorithm, secretOrKey) {
- if (!algorithm) {
- var err = new Error("Missing algorithm parameter for jws.verify");
- err.code = "MISSING_ALGORITHM";
- throw err;
- }
- jwsSig = toString(jwsSig);
- var signature = signatureFromJWS(jwsSig);
- var securedInput = securedInputFromJWS(jwsSig);
- var algo = jwa(algorithm);
- return algo.verify(securedInput, signature, secretOrKey);
-}
-
-function jwsDecode(jwsSig, opts) {
- opts = opts || {};
- jwsSig = toString(jwsSig);
-
- if (!isValidJws(jwsSig))
- return null;
-
- var header = headerFromJWS(jwsSig);
-
- if (!header)
- return null;
-
- var payload = payloadFromJWS(jwsSig);
- if (header.typ === 'JWT' || opts.json)
- payload = JSON.parse(payload, opts.encoding);
-
- return {
- header: header,
- payload: payload,
- signature: signatureFromJWS(jwsSig)
- };
-}
-
-function VerifyStream(opts) {
- opts = opts || {};
- var secretOrKey = opts.secret||opts.publicKey||opts.key;
- var secretStream = new DataStream(secretOrKey);
- this.readable = true;
- this.algorithm = opts.algorithm;
- this.encoding = opts.encoding;
- this.secret = this.publicKey = this.key = secretStream;
- this.signature = new DataStream(opts.signature);
- this.secret.once('close', function () {
- if (!this.signature.writable && this.readable)
- this.verify();
- }.bind(this));
-
- this.signature.once('close', function () {
- if (!this.secret.writable && this.readable)
- this.verify();
- }.bind(this));
-}
-util.inherits(VerifyStream, Stream);
-VerifyStream.prototype.verify = function verify() {
- try {
- var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer);
- var obj = jwsDecode(this.signature.buffer, this.encoding);
- this.emit('done', valid, obj);
- this.emit('data', valid);
- this.emit('end');
- this.readable = false;
- return valid;
- } catch (e) {
- this.readable = false;
- this.emit('error', e);
- this.emit('close');
- }
-};
-
-VerifyStream.decode = jwsDecode;
-VerifyStream.isValid = isValidJws;
-VerifyStream.verify = jwsVerify;
-
-module.exports = VerifyStream;