@webex/internal-plugin-encryption 2.60.0-next.8 → 2.60.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"names":["_httpCore","require","_kmsErrors","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","KmsDryErrorInterceptor","exports","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onResponseError","options","reason","DryError","message","match","webex","logger","error","replay","_promise","reject","replayCount","config","maxAuthenticationReplays","concat","info","request","create","Interceptor"],"sources":["kms-dry-error-interceptor.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\nimport {DryError} from './kms-errors';\n/**\n * Interceptor (only to be used in test mode) intended to replay requests that\n * fail as a result of the test-user incompatibility in KMS.\n * @class\n */\nexport default class KmsDryErrorInterceptor extends Interceptor {\n /**\n * @returns {KmsDryErrorInterceptor}\n */\n static create() {\n return new KmsDryErrorInterceptor({webex: this});\n }\n\n /**\n * @param {Object} options\n * @param {Exception} reason\n * @returns {Promise}\n */\n onResponseError(options, reason) {\n if (\n reason instanceof DryError &&\n reason.message.match(/Failed to resolve authorization token in KmsMessage request for user/)\n ) {\n this.webex.logger.error('DRY Request Failed due to kms/test-user flakiness');\n this.webex.logger.error(reason);\n\n return this.replay(options, reason);\n }\n\n return Promise.reject(reason);\n }\n\n /**\n * Replays the request\n * @param {Object} options\n * @param {DryError} reason\n * @returns {Object}\n */\n replay(options, reason) {\n if (options.replayCount) {\n options.replayCount += 1;\n } else {\n options.replayCount = 1;\n }\n\n if (options.replayCount > this.webex.config.maxAuthenticationReplays) {\n this.webex.logger.error(\n `kms: failed after ${this.webex.config.maxAuthenticationReplays} replay attempts`\n );\n\n return Promise.reject(reason);\n }\n\n this.webex.logger.info(`kms: replaying request ${options.replayCount} time`);\n\n return this.webex.request(options);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_httpCore","require","_kmsErrors","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","KmsDryErrorInterceptor","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onResponseError","options","reason","DryError","message","match","webex","logger","error","replay","_promise","reject","replayCount","config","maxAuthenticationReplays","concat","info","request","create","Interceptor","exports"],"sources":["kms-dry-error-interceptor.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\nimport {DryError} from './kms-errors';\n/**\n * Interceptor (only to be used in test mode) intended to replay requests that\n * fail as a result of the test-user incompatibility in KMS.\n * @class\n */\nexport default class KmsDryErrorInterceptor extends Interceptor {\n /**\n * @returns {KmsDryErrorInterceptor}\n */\n static create() {\n return new KmsDryErrorInterceptor({webex: this});\n }\n\n /**\n * @param {Object} options\n * @param {Exception} reason\n * @returns {Promise}\n */\n onResponseError(options, reason) {\n if (\n reason instanceof DryError &&\n reason.message.match(/Failed to resolve authorization token in KmsMessage request for user/)\n ) {\n this.webex.logger.error('DRY Request Failed due to kms/test-user flakiness');\n this.webex.logger.error(reason);\n\n return this.replay(options, reason);\n }\n\n return Promise.reject(reason);\n }\n\n /**\n * Replays the request\n * @param {Object} options\n * @param {DryError} reason\n * @returns {Object}\n */\n replay(options, reason) {\n if (options.replayCount) {\n options.replayCount += 1;\n } else {\n options.replayCount = 1;\n }\n\n if (options.replayCount > this.webex.config.maxAuthenticationReplays) {\n this.webex.logger.error(\n `kms: failed after ${this.webex.config.maxAuthenticationReplays} replay attempts`\n );\n\n return Promise.reject(reason);\n }\n\n this.webex.logger.info(`kms: replaying request ${options.replayCount} time`);\n\n return this.webex.request(options);\n }\n}\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequ
6
6
  _Object$defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
- exports.handleKmsKeyRevokedEncryptionFailure = exports.KmsTimeoutError = exports.KmsError = exports.DryError = void 0;
9
+ exports.KmsTimeoutError = exports.KmsError = exports.DryError = void 0;
10
10
  var _defineProperties = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/define-properties"));
11
11
  var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/apply"));
12
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
@@ -17,15 +17,12 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
17
17
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
18
18
  var _common = require("@webex/common");
19
19
  var _webexCore = require("@webex/webex-core");
20
- var _constants = require("./constants");
21
20
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
22
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /*!
23
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
24
- */
21
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
25
22
  /**
26
23
  * Error class for KMS errors
27
24
  */
28
- var KmsError = exports.KmsError = /*#__PURE__*/function (_Exception) {
25
+ var KmsError = /*#__PURE__*/function (_Exception) {
29
26
  (0, _inherits2.default)(KmsError, _Exception);
30
27
  var _super = _createSuper(KmsError);
31
28
  function KmsError() {
@@ -83,8 +80,9 @@ var KmsError = exports.KmsError = /*#__PURE__*/function (_Exception) {
83
80
  /**
84
81
  * Thrown when an expected KMSResponse is not received in a timely manner
85
82
  */
83
+ exports.KmsError = KmsError;
86
84
  (0, _defineProperty2.default)(KmsError, "defaultMessage", 'An unknown error occurred while communicating with the kms. This implies we received an error response without a body.');
87
- var KmsTimeoutError = exports.KmsTimeoutError = /*#__PURE__*/function (_KmsError) {
85
+ var KmsTimeoutError = /*#__PURE__*/function (_KmsError) {
88
86
  (0, _inherits2.default)(KmsTimeoutError, _KmsError);
89
87
  var _super2 = _createSuper(KmsTimeoutError);
90
88
  function KmsTimeoutError() {
@@ -121,7 +119,8 @@ var KmsTimeoutError = exports.KmsTimeoutError = /*#__PURE__*/function (_KmsError
121
119
  /**
122
120
  * Emitted when a REST request includes an encrypter error
123
121
  */
124
- var DryError = exports.DryError = /*#__PURE__*/function (_WebexHttpError) {
122
+ exports.KmsTimeoutError = KmsTimeoutError;
123
+ var DryError = /*#__PURE__*/function (_WebexHttpError) {
125
124
  (0, _inherits2.default)(DryError, _WebexHttpError);
126
125
  var _super3 = _createSuper(DryError);
127
126
  function DryError() {
@@ -175,14 +174,6 @@ var DryError = exports.DryError = /*#__PURE__*/function (_WebexHttpError) {
175
174
  }]);
176
175
  return DryError;
177
176
  }(_webexCore.WebexHttpError);
178
- /**
179
- * Function triggers an event when specific encryption failures are received.
180
- */
181
- // eslint-disable-next-line consistent-return
177
+ exports.DryError = DryError;
182
178
  (0, _defineProperty2.default)(DryError, "defaultMessage", 'An unknown error was received from a service that proxies to the KMS');
183
- var handleKmsKeyRevokedEncryptionFailure = exports.handleKmsKeyRevokedEncryptionFailure = function handleKmsKeyRevokedEncryptionFailure(item, webex) {
184
- if (item.status === _constants.KMS_KEY_REVOKE_ERROR_STATUS && _constants.KMS_KEY_REVOKE_ERROR_CODES.includes(item.body.errorCode)) {
185
- webex.internal.encryption.trigger(_constants.KMS_KEY_REVOKE_FAILURE);
186
- }
187
- };
188
179
  //# sourceMappingURL=kms-errors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_common","require","_webexCore","_constants","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","KmsError","exports","_Exception","_inherits2","_super","_classCallCheck2","_createClass2","key","value","parse","body","_defineProperties","enumerable","reason","requestId","status","message","defaultMessage","concat","statusCode","errorCode","Exception","_defineProperty2","KmsTimeoutError","_KmsError","_super2","_ref","length","undefined","_ref$request","request","timeout","method","uri","DryError","_WebexHttpError","_super3","_apply","WebexHttpError","_res","options","url","service","toUpperCase","resource","headers","trackingid","handleKmsKeyRevokedEncryptionFailure","item","webex","KMS_KEY_REVOKE_ERROR_STATUS","KMS_KEY_REVOKE_ERROR_CODES","includes","internal","encryption","trigger","KMS_KEY_REVOKE_FAILURE"],"sources":["kms-errors.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Exception} from '@webex/common';\nimport {WebexHttpError} from '@webex/webex-core';\n\nimport {\n KMS_KEY_REVOKE_ERROR_CODES,\n KMS_KEY_REVOKE_FAILURE,\n KMS_KEY_REVOKE_ERROR_STATUS,\n} from './constants';\n\n/**\n * Error class for KMS errors\n */\nexport class KmsError extends Exception {\n static defaultMessage =\n 'An unknown error occurred while communicating with the kms. This implies we received an error response without a body.';\n\n /**\n * @param {HttpResponse} body\n * @returns {string}\n */\n parse(body) {\n body = body.body || body;\n\n Object.defineProperties(this, {\n body: {\n enumerable: false,\n value: body,\n },\n reason: {\n enumerable: false,\n value: body.reason,\n },\n requestId: {\n enumerable: false,\n value: body.requestId,\n },\n status: {\n enumerable: false,\n value: body.status,\n },\n });\n\n let message = typeof body === 'string' ? body : body.reason;\n\n if (!message) {\n message = this.constructor.defaultMessage;\n }\n if (body.status) {\n message += `\\nKMS_RESPONSE_STATUS: ${body.status}`;\n }\n if (body.requestId) {\n message += `\\nKMS_REQUEST_ID: ${body.requestId}`;\n }\n\n if (body.statusCode) {\n message += `\\nKMS_STATUS_CODE: ${body.statusCode}`;\n }\n\n if (body.errorCode) {\n message += `\\nKMS_ErrorCode: ${body.errorCode}`;\n }\n\n return message;\n }\n}\n\n/**\n * Thrown when an expected KMSResponse is not received in a timely manner\n */\nexport class KmsTimeoutError extends KmsError {\n /**\n * @param {KmsRequest} options.request\n * @param {KmsRequest} options.timeout\n * @returns {string}\n */\n parse({request = {}, timeout} = {}) {\n let message = `The KMS did not respond within ${\n timeout ? `${timeout} milliseconds` : 'a timely fashion'\n }`;\n\n if (request) {\n if (request.method && request.uri) {\n message += `\\nKMS_REQUEST: ${request.method} ${request.uri}`;\n }\n\n if (request.requestId) {\n message += `\\nKMS_REQUEST_ID: ${request.requestId}`;\n }\n }\n\n return message;\n }\n}\n\n/**\n * Emitted when a REST request includes an encrypter error\n */\nexport class DryError extends WebexHttpError {\n static defaultMessage = 'An unknown error was received from a service that proxies to the KMS';\n\n /**\n * @param {WebexHttpError} reason\n * @returns {string}\n */\n parse(reason) {\n Reflect.apply(WebexHttpError.prototype.parse, this, [reason._res]);\n const body = reason._res.body.message;\n\n let message = body.reason || body;\n\n if (!message) {\n message = this.constructor.defaultMessage;\n }\n if (this.options.url) {\n message += `\\n${this.options.method} ${this.options.url}`;\n } else if (this.options.uri) {\n message += `\\n${this.options.method} ${this.options.uri}`;\n } else {\n message += `\\n${this.options.method} ${this.options.service.toUpperCase()}/${\n this.options.resource\n }`;\n }\n message += `\\nWEBEX_TRACKING_ID: ${this.options.headers.trackingid}`;\n\n if (body.status) {\n message += `\\nKMS_RESPONSE_STATUS: ${body.status}`;\n }\n if (body.requestId) {\n message += `\\nKMS_REQUEST_ID: ${body.requestId}`;\n }\n\n Object.defineProperties(this, {\n reason: {\n enumerable: false,\n value: body.reason,\n },\n requestId: {\n enumerable: false,\n value: body.requestId,\n },\n status: {\n enumerable: false,\n value: body.status,\n },\n });\n\n return message;\n }\n}\n\n/**\n * Function triggers an event when specific encryption failures are received.\n */\n\n// eslint-disable-next-line consistent-return\nexport const handleKmsKeyRevokedEncryptionFailure = (item, webex) => {\n if (\n item.status === KMS_KEY_REVOKE_ERROR_STATUS &&\n KMS_KEY_REVOKE_ERROR_CODES.includes(item.body.errorCode)\n ) {\n webex.internal.encryption.trigger(KMS_KEY_REVOKE_FAILURE);\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_common","require","_webexCore","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","KmsError","_Exception","_inherits2","_super","_classCallCheck2","_createClass2","key","value","parse","body","_defineProperties","enumerable","reason","requestId","status","message","defaultMessage","concat","statusCode","errorCode","Exception","exports","_defineProperty2","KmsTimeoutError","_KmsError","_super2","_ref","length","undefined","_ref$request","request","timeout","method","uri","DryError","_WebexHttpError","_super3","_apply","WebexHttpError","_res","options","url","service","toUpperCase","resource","headers","trackingid"],"sources":["kms-errors.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Exception} from '@webex/common';\nimport {WebexHttpError} from '@webex/webex-core';\n\n/**\n * Error class for KMS errors\n */\nexport class KmsError extends Exception {\n static defaultMessage =\n 'An unknown error occurred while communicating with the kms. This implies we received an error response without a body.';\n\n /**\n * @param {HttpResponse} body\n * @returns {string}\n */\n parse(body) {\n body = body.body || body;\n\n Object.defineProperties(this, {\n body: {\n enumerable: false,\n value: body,\n },\n reason: {\n enumerable: false,\n value: body.reason,\n },\n requestId: {\n enumerable: false,\n value: body.requestId,\n },\n status: {\n enumerable: false,\n value: body.status,\n },\n });\n\n let message = typeof body === 'string' ? body : body.reason;\n\n if (!message) {\n message = this.constructor.defaultMessage;\n }\n if (body.status) {\n message += `\\nKMS_RESPONSE_STATUS: ${body.status}`;\n }\n if (body.requestId) {\n message += `\\nKMS_REQUEST_ID: ${body.requestId}`;\n }\n\n if (body.statusCode) {\n message += `\\nKMS_STATUS_CODE: ${body.statusCode}`;\n }\n\n if (body.errorCode) {\n message += `\\nKMS_ErrorCode: ${body.errorCode}`;\n }\n\n return message;\n }\n}\n\n/**\n * Thrown when an expected KMSResponse is not received in a timely manner\n */\nexport class KmsTimeoutError extends KmsError {\n /**\n * @param {KmsRequest} options.request\n * @param {KmsRequest} options.timeout\n * @returns {string}\n */\n parse({request = {}, timeout} = {}) {\n let message = `The KMS did not respond within ${\n timeout ? `${timeout} milliseconds` : 'a timely fashion'\n }`;\n\n if (request) {\n if (request.method && request.uri) {\n message += `\\nKMS_REQUEST: ${request.method} ${request.uri}`;\n }\n\n if (request.requestId) {\n message += `\\nKMS_REQUEST_ID: ${request.requestId}`;\n }\n }\n\n return message;\n }\n}\n\n/**\n * Emitted when a REST request includes an encrypter error\n */\nexport class DryError extends WebexHttpError {\n static defaultMessage = 'An unknown error was received from a service that proxies to the KMS';\n\n /**\n * @param {WebexHttpError} reason\n * @returns {string}\n */\n parse(reason) {\n Reflect.apply(WebexHttpError.prototype.parse, this, [reason._res]);\n const body = reason._res.body.message;\n\n let message = body.reason || body;\n\n if (!message) {\n message = this.constructor.defaultMessage;\n }\n if (this.options.url) {\n message += `\\n${this.options.method} ${this.options.url}`;\n } else if (this.options.uri) {\n message += `\\n${this.options.method} ${this.options.uri}`;\n } else {\n message += `\\n${this.options.method} ${this.options.service.toUpperCase()}/${\n this.options.resource\n }`;\n }\n message += `\\nWEBEX_TRACKING_ID: ${this.options.headers.trackingid}`;\n\n if (body.status) {\n message += `\\nKMS_RESPONSE_STATUS: ${body.status}`;\n }\n if (body.requestId) {\n message += `\\nKMS_REQUEST_ID: ${body.requestId}`;\n }\n\n Object.defineProperties(this, {\n reason: {\n enumerable: false,\n value: body.reason,\n },\n requestId: {\n enumerable: false,\n value: body.requestId,\n },\n status: {\n enumerable: false,\n value: body.status,\n },\n });\n\n return message;\n }\n}\n"],"mappings":"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"}
package/dist/kms.js CHANGED
@@ -16,6 +16,7 @@ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/pr
16
16
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
17
17
  var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
18
18
  var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor"));
19
+ var _omit2 = _interopRequireDefault(require("lodash/omit"));
19
20
  var _querystring = _interopRequireDefault(require("querystring"));
20
21
  var _util = _interopRequireDefault(require("util"));
21
22
  var _commonTimers = require("@webex/common-timers");
@@ -23,16 +24,12 @@ var _common = require("@webex/common");
23
24
  var _webexCore = require("@webex/webex-core");
24
25
  var _nodeKms = require("node-kms");
25
26
  var _nodeJose = _interopRequireDefault(require("node-jose"));
26
- var _lodash = require("lodash");
27
27
  var _uuid = _interopRequireDefault(require("uuid"));
28
28
  var _kmsBatcher = _interopRequireWildcard(require("./kms-batcher"));
29
29
  var _kmsCertificateValidation = _interopRequireWildcard(require("./kms-certificate-validation"));
30
30
  var _dec, _obj;
31
- /*!
32
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
33
- */
34
- function _getRequireWildcardCache(e) { if ("function" != typeof _WeakMap2) return null; var r = new _WeakMap2(), t = new _WeakMap2(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
35
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor2; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor2(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
31
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap2 !== "function") return null; var cacheBabelInterop = new _WeakMap2(); var cacheNodeInterop = new _WeakMap2(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor2; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor2(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
36
33
  var contexts = new _weakMap.default();
37
34
  var kmsDetails = new _weakMap.default();
38
35
  var partialContexts = new _weakMap.default();
@@ -490,7 +487,7 @@ var KMS = _webexCore.WebexPlugin.extend((_dec = (0, _common.oneFlight)({
490
487
  }).then(function () {
491
488
  /* istanbul ignore else */
492
489
  if (process.env.NODE_ENV !== 'production') {
493
- _this14.logger.info('kms: request payload', _util.default.inspect((0, _lodash.omit)(JSON.parse((0, _stringify.default)(req)), 'wrapped'), {
490
+ _this14.logger.info('kms: request payload', _util.default.inspect((0, _omit2.default)(JSON.parse((0, _stringify.default)(req)), 'wrapped'), {
494
491
  depth: null
495
492
  }));
496
493
  }
@@ -518,7 +515,7 @@ var KMS = _webexCore.WebexPlugin.extend((_dec = (0, _common.oneFlight)({
518
515
  // eslint-disable-next-line max-nested-callbacks
519
516
  .then(function () {
520
517
  if (process.env.NODE_ENV !== 'production') {
521
- _this15.logger.info('kms: response payload', _util.default.inspect((0, _lodash.omit)(JSON.parse((0, _stringify.default)(res)), 'wrapped'), {
518
+ _this15.logger.info('kms: response payload', _util.default.inspect((0, _omit2.default)(JSON.parse((0, _stringify.default)(res)), 'wrapped'), {
522
519
  depth: null
523
520
  }));
524
521
  }
@@ -805,7 +802,8 @@ var KMS = _webexCore.WebexPlugin.extend((_dec = (0, _common.oneFlight)({
805
802
  context.ephemeralKey = originalContext.ephemeralKey;
806
803
  return context;
807
804
  },
808
- version: "2.60.0-next.8"
805
+ version: "2.60.1"
809
806
  }, ((0, _applyDecoratedDescriptor2.default)(_obj, "fetchKey", [_dec], (0, _getOwnPropertyDescriptor.default)(_obj, "fetchKey"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "_getContext", [_common.oneFlight], (0, _getOwnPropertyDescriptor.default)(_obj, "_getContext"), _obj)), _obj)));
810
- var _default = exports.default = KMS;
807
+ var _default = KMS;
808
+ exports.default = _default;
811
809
  //# sourceMappingURL=kms.js.map
package/dist/kms.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_querystring","_interopRequireDefault","require","_util","_commonTimers","_common","_webexCore","_nodeKms","_nodeJose","_lodash","_uuid","_kmsBatcher","_interopRequireWildcard","_kmsCertificateValidation","_dec","_obj","_getRequireWildcardCache","e","_WeakMap2","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor2","u","Object","prototype","hasOwnProperty","call","i","set","contexts","_weakMap","kmsDetails","partialContexts","consoleDebug","KMS","WebexPlugin","extend","oneFlight","keyFactory","_ref","uri","onBehalfOf","concat","namespace","children","batcher","KMSBatcher","bindKey","_ref2","_this","kro","kroUri","key","keyUri","logger","info","_promise","reject","Error","request","method","resourceUri","then","res","createResource","_ref3","_this2","userIds","keyUris","keys","reduce","uris","k","push","length","resource","addAuthorization","_ref4","_this3","authIds","authorizations","listAuthorizations","_ref5","_this4","removeAuthorization","_ref6","_this5","authId","userId","querystring","stringify","createUnboundKeys","_ref7","_this6","count","all","map","asKey","fetchPublicKey","_ref8","_this7","assignedOrgId","publicKey","uploadCustomerMasterKey","_ref9","_this8","customerMasterKey","_ref9$awsKms","awsKms","requestId","uuid","v4","listAllCustomerMasterKey","_ref10","_this9","_ref10$awsKms","changeCustomerMasterKeyState","_ref11","_this10","keyId","keyState","deleteAllCustomerMasterKeys","_ref12","_this11","_ref12$awsKms","useGlobalMasterKey","_ref13","_this12","fetchKey","_ref14","_this13","ping","jose","JWK","jwk","prepareRequest","payload","_this14","isECDHRequest","includes","resolve","_getContext","context","req","Request","requestContext","_contextOnBehalfOf","wrap","serverKey","process","env","NODE_ENV","util","inspect","omit","JSON","parse","_stringify","depth","processKmsMessageEvent","event","_this15","encryption","kmsMessages","kmsMessage","index","_isECDHEMessage","isECDHMessage","Response","unwrap","catch","reason","error","stack","decryptKmsMessage","body","_getKMSStaticPubKey","kmsStaticPubKey","fields","split","header","base64url","decode","kid","_this16","_ref15","arguments","undefined","timeout","config","kmsInitialTimeout","webex","internal","mercury","connect","TIMEOUT_SYMBOL","status","statusCode","message","match","warn","KMSError","trigger","ecdhMaxTimeout","nextTimeout","kmsMaxTimeout","delete","_getAuthorization","credentials","getUserToken","token","access_token","_this17","promise","_prepareContext","expiresIn","ephemeralKey","expirationDate","_now","safeSetTimeout","_ref16","_ref17","_slicedToArray2","authorization","clientInfo","credential","bearer","_getKMSCluster","_getKMSDetails","_ref18","kmsCluster","_this18","details","service","device","rsaPublicKey","_ref19","_this19","Context","validateKMS","caroots","_ref20","_ref21","clientId","url","serverInfo","createECDHKey","localECDHKey","_ref22","_ref23","cluster","toJSON","deriveEphemeralKey","originalContext","version","_applyDecoratedDescriptor2","_getOwnPropertyDescriptor","_default","exports"],"sources":["kms.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport querystring from 'querystring';\nimport util from 'util';\n\nimport {safeSetTimeout} from '@webex/common-timers';\nimport {oneFlight} from '@webex/common';\nimport {WebexPlugin} from '@webex/webex-core';\nimport {Context, Request, Response} from 'node-kms';\nimport jose from 'node-jose';\nimport {omit} from 'lodash';\nimport uuid from 'uuid';\n\nimport KMSBatcher, {TIMEOUT_SYMBOL} from './kms-batcher';\nimport validateKMS, {KMSError} from './kms-certificate-validation';\n\nconst contexts = new WeakMap();\nconst kmsDetails = new WeakMap();\nconst partialContexts = new WeakMap();\n\nconst consoleDebug = require('debug')('kms');\n\n/**\n * @class\n */\nconst KMS = WebexPlugin.extend({\n namespace: 'Encryption',\n\n children: {\n batcher: KMSBatcher,\n },\n\n /**\n * Binds a key to a resource\n * @param {Object} options\n * @param {KMSResourceObject} options.kro\n * @param {string} options.kroUri\n * @param {Key} options.key\n * @param {string} options.keyUri\n * @returns {Promise<Key>}\n */\n bindKey({kro, kroUri, key, keyUri}) {\n kroUri = kroUri || kro.uri;\n keyUri = keyUri || key.uri;\n\n this.logger.info('kms: binding key to resource');\n\n /* istanbul ignore if */\n if (!kroUri) {\n return Promise.reject(new Error('`kro` or `kroUri` is required'));\n }\n\n /* istanbul ignore if */\n if (!keyUri) {\n return Promise.reject(new Error('`key` or `keyUri` is required'));\n }\n\n return this.request({\n method: 'update',\n resourceUri: kroUri,\n uri: keyUri,\n }).then((res) => {\n this.logger.info('kms: bound key to resource');\n\n return res.key;\n });\n },\n\n /**\n * Creates a new KMS Resource\n * @param {Object} options\n * @param {Array<string>} options.userIds\n * @param {Array<string>} options.keyUris\n * @param {Key} options.key\n * @param {Array<Keys>} options.keys\n * @returns {Promise<KMSResourceObject>}\n */\n createResource({userIds, keyUris, key, keys}) {\n keyUris = keyUris || [];\n /* istanbul ignore if */\n if (keys) {\n keyUris = keys.reduce((uris, k) => {\n uris.push(k.uri);\n\n return uris;\n }, keyUris);\n }\n\n /* istanbul ignore else */\n if (key) {\n keyUris.push(key.uri);\n }\n\n /* istanbul ignore if */\n if (keyUris.length === 0) {\n return Promise.reject(new Error('Cannot create KMS Resource without at least one keyUri'));\n }\n\n this.logger.info('kms: creating resource');\n\n return this.request({\n method: 'create',\n uri: '/resources',\n userIds,\n keyUris,\n }).then((res) => {\n this.logger.info('kms: created resource');\n\n return res.resource;\n });\n },\n\n /**\n * Authorizes a user or KRO to a KRO\n * @param {Object} options\n * @param {Array<string>} options.userIds\n * @param {Array<string>} options.authIds interchangable with userIds\n * @param {KMSResourceObject} options.kro the target kro\n * @param {string} options.kroUri\n * @returns {Promise<KMSAuthorizationObject>}\n */\n addAuthorization({userIds, authIds, kro, kroUri}) {\n userIds = userIds || [];\n kroUri = kroUri || kro.uri;\n\n if (authIds) {\n userIds = userIds.concat(authIds);\n }\n\n /* istanbul ignore if */\n if (userIds.length === 0) {\n return Promise.reject(new Error('Cannot add authorization without userIds or authIds'));\n }\n\n /* istanbul ignore if */\n if (!kroUri) {\n return Promise.reject(new Error('`kro` or `kroUri` is required'));\n }\n\n this.logger.info('kms: adding authorization to kms resource');\n\n return this.request({\n method: 'create',\n uri: '/authorizations',\n resourceUri: kroUri,\n userIds,\n }).then((res) => {\n this.logger.info('kms: added authorization');\n\n return res.authorizations;\n });\n },\n\n /**\n * Retrieve a list of users that have been authorized to the KRO\n * @param {Object} options\n * @param {KMSResourceObject} options.kro the target kro\n * @param {string} options.kroUri\n * @returns {Array<authId>}\n */\n listAuthorizations({kro, kroUri}) {\n kroUri = kroUri || kro.uri;\n /* istanbul ignore if */\n if (!kroUri) {\n return Promise.reject(new Error('`kro` or `kroUri` is required'));\n }\n\n return this.request({\n method: 'retrieve',\n uri: `${kroUri}/authorizations`,\n }).then((res) => {\n this.logger.info('kms: retrieved authorization list');\n\n return res.authorizations;\n });\n },\n\n /**\n * Deauthorizes a user or KRO from a KRO\n * @param {Object} options\n * @param {string} options.userId\n * @param {string} options.authId interchangable with userIds\n * @param {KMSResourceObject} options.kro the target kro\n * @param {string} options.kroUri\n * @returns {Promise<KMSAuthorizationObject>}\n */\n removeAuthorization({authId, userId, kro, kroUri}) {\n authId = authId || userId;\n kroUri = kroUri || kro.uri;\n\n /* istanbul ignore if */\n if (!authId) {\n return Promise.reject(new Error('Cannot remove authorization without authId'));\n }\n\n /* istanbul ignore if */\n if (!kroUri) {\n return Promise.reject(new Error('`kro` or `kroUri` is required'));\n }\n\n this.logger.info('kms: removing authorization from kms resource');\n\n return this.request({\n method: 'delete',\n uri: `${kroUri}/authorizations?${querystring.stringify({authId})}`,\n }).then((res) => {\n this.logger.info('kms: removed authorization');\n\n return res.authorizations;\n });\n },\n\n /**\n * Requests `count` unbound keys from the kms\n * @param {Object} options\n * @param {Number} options.count\n * @returns {Array<Key>}\n */\n createUnboundKeys({count}) {\n this.logger.info(`kms: request ${count} unbound keys`);\n\n /* istanbul ignore if */\n if (!count) {\n return Promise.reject(new Error('`options.count` is required'));\n }\n\n return this.request({\n method: 'create',\n uri: '/keys',\n count,\n }).then((res) => {\n this.logger.info('kms: received unbound keys');\n\n return Promise.all(res.keys.map(this.asKey));\n });\n },\n\n /**\n * @typedef {Object} FetchPublicKeyResponse\n * @property {number} status 200,400(Bad Request: Request payload missing info),404(Not Found: HSM Public Key not found),501(Not Implemented: This KMS does not support BYOK),502(Bad Gateway: KMS could not communicate with HSM)\n * @property {UUID} requestId this is should be unique, used for debug.\n * @property {string} publicKey\n */\n /**\n * get public key from kms\n * @param {Object} options\n * @param {UUID} options.assignedOrgId the orgId\n * @returns {Promise.<FetchPublicKeyResponse>} response of get public key api\n */\n fetchPublicKey({assignedOrgId}) {\n this.logger.info('kms: fetch public key for byok');\n\n return this.request({\n method: 'retrieve',\n uri: '/publicKey',\n assignedOrgId,\n }).then((res) => {\n this.logger.info('kms: received public key');\n\n return res.publicKey;\n });\n },\n\n /**\n * @typedef {Object} UploadCmkResponse\n * @property {number} status\n * @property {UUID} requestId\n * @property {string} uri\n * @property {string} keysState\n */\n /**\n * upload master key for one org.\n * @param {Object} options\n * @param {UUID} options.assignedOrgId the orgId\n * @param {string} options.customerMasterKey the master key\n * @param {boolean} options.awsKms enable amazon aws keys\n * @returns {Promise.<UploadCmkResponse>} response of upload CMK api\n */\n uploadCustomerMasterKey({assignedOrgId, customerMasterKey, awsKms = false}) {\n this.logger.info('kms: upload customer master key for byok');\n\n return this.request({\n method: 'create',\n uri: awsKms ? '/awsKmsCmk' : '/cmk',\n assignedOrgId,\n customerMasterKey,\n requestId: uuid.v4(),\n }).then((res) => {\n this.logger.info('kms: finish to upload customer master key');\n\n return res;\n });\n },\n\n /**\n * get all customer master keys for one org.\n * @param {Object} options\n * @param {UUID} options.assignedOrgId the orgId\n * @param {boolean} options.awsKms enable amazon aws keys\n * @returns {Promise.<ActivateCmkResponse>} response of list CMKs api\n */\n listAllCustomerMasterKey({assignedOrgId, awsKms = false}) {\n this.logger.info('kms: get all customer master keys for byok');\n\n return this.request({\n method: 'retrieve',\n uri: awsKms ? '/awsKmsCmk' : '/cmk',\n assignedOrgId,\n requestId: uuid.v4(),\n }).then((res) => {\n this.logger.info('kms: finish to get all customer master keys');\n\n return res;\n });\n },\n\n /**\n * @typedef {Object} ActivateCmkResponse\n * @property {number} status\n * @property {UUID} requestId\n * @property {Array<CMK>} customerMasterKeys\n */\n /**\n *\n * @typedef {Object} CMK\n * @property {string} usageState\n * @property {UUID} assignedOrgId\n * @property {string} uri\n * @property {string} source\n * @property {Date | undefined} stateUpdatedOn\n * @property {Date | undefined} rotation\n */\n /**\n * change one customer master key state for one org.\n * delete pending key, then the keyState should be 'removedclean';\n * active pending key, then the keyState should be 'active';\n *\n * @param {Object} options\n * @param {string} options.keyId the id of one customer master key, it should be a url\n * @param {string} options.keyState one of the following: PENDING, RECOVERING,ACTIVE,REVOKED,DEACTIVATED,REENCRYPTING,RETIRED,DELETED,DISABLED,REMOVEDCLEAN,REMOVEDDIRTY;\n * @param {UUID} options.assignedOrgId the orgId\n * @returns {Promise.<ActivateCmkResponse>} response of list CMKs api\n */\n changeCustomerMasterKeyState({keyId, keyState, assignedOrgId}) {\n this.logger.info('kms: change one customer master key state for byok');\n\n return this.request({\n method: 'update',\n uri: keyId,\n keyState,\n assignedOrgId,\n requestId: uuid.v4(),\n }).then((res) => {\n this.logger.info('kms: finish to change the customer master key state to {}', keyState);\n\n return res;\n });\n },\n\n /**\n * this is for test case. it will delete all CMKs, no matter what their status is. This is mainly for test purpose\n * @param {Object} options\n * @param {UUID} options.assignedOrgId the orgId\n * @param {boolean} options.awsKms enable amazon aws keys\n * @returns {Promise.<{status, requestId}>}\n */\n deleteAllCustomerMasterKeys({assignedOrgId, awsKms = false}) {\n this.logger.info('kms: delete all customer master keys at the same time');\n\n return this.request({\n method: 'delete',\n uri: awsKms ? '/awsKmsCmk' : '/cmk',\n assignedOrgId,\n requestId: uuid.v4(),\n }).then((res) => {\n this.logger.info('kms: finish to delete all customer master keys');\n\n return res;\n });\n },\n\n /**\n * return to use global master key for one org.\n * @param {Object} options\n * @param {UUID} options.assignedOrgId the orgId\n * @returns {Promise.<ActivateCmkResponse>} response of activate CMK api\n */\n useGlobalMasterKey({assignedOrgId}) {\n this.logger.info('kms: return to use global master key');\n\n return this.request({\n method: 'update',\n uri: 'default',\n keyState: 'ACTIVE',\n assignedOrgId,\n requestId: uuid.v4(),\n }).then((res) => {\n this.logger.info('kms: finish to return to global master key');\n\n return res;\n });\n },\n\n /**\n * Fetches the specified key from the kms\n * @param {Object} options\n * @param {string} options.uri\n * @param {string} options.onBehalfOf The id of a user, upon whose behalf, the key is to be retrieved or undefined if retrieval is for the active user\n * @returns {Promise<Key>}\n */\n // Ideally, this would be done via the kms batcher, but other than request id,\n // there isn't any other userful key in a kms response to match it to a\n // request. as such, we need the batcher to group requests, but one flight to\n // make sure we don't make the same request multiple times.\n @oneFlight({\n keyFactory: ({uri, onBehalfOf}) => `${uri}/${onBehalfOf}`,\n })\n fetchKey({uri, onBehalfOf}) {\n /* istanbul ignore if */\n if (!uri) {\n return Promise.reject(new Error('`options.uri` is required'));\n }\n\n this.logger.info('kms: fetching key');\n\n return this.request(\n {\n method: 'retrieve',\n uri,\n },\n {onBehalfOf}\n ).then((res) => {\n this.logger.info('kms: fetched key');\n\n return this.asKey(res.key);\n });\n },\n\n /**\n * Pings the kms. Mostly for testing\n * @returns {Promise}\n */\n ping() {\n return this.request({\n method: 'update',\n uri: '/ping',\n });\n },\n\n /**\n * Ensures a key obect is Key instance\n * @param {Object} key\n * @returns {Promise<Key>}\n */\n asKey(key) {\n return jose.JWK.asKey(key.jwk).then((jwk) => {\n key.jwk = jwk;\n\n return key;\n });\n },\n\n /**\n * Adds appropriate metadata to the KMS request\n * @param {Object} payload\n * @param {Object} onBehalfOf Optional parameter to prepare the request on behalf of another user\n * @returns {Promise<KMS.Request>}\n */\n prepareRequest(payload, onBehalfOf) {\n const isECDHRequest = payload.method === 'create' && payload.uri.includes('/ecdhe');\n\n return Promise.resolve(isECDHRequest ? partialContexts.get(this) : this._getContext()).then(\n (context) => {\n this.logger.info(`kms: wrapping ${isECDHRequest ? 'ephemeral key' : 'kms'} request`);\n const req = new Request(payload);\n let requestContext = context;\n\n if (onBehalfOf) {\n requestContext = this._contextOnBehalfOf(context, onBehalfOf);\n }\n\n return req.wrap(requestContext, {serverKey: isECDHRequest}).then(() => {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n this.logger.info(\n 'kms: request payload',\n util.inspect(omit(JSON.parse(JSON.stringify(req)), 'wrapped'), {depth: null})\n );\n }\n\n return req;\n });\n }\n );\n },\n\n /**\n * Accepts a kms message event, decrypts it, and passes it to the batcher\n * @param {Object} event\n * @returns {Promise<Object>}\n */\n processKmsMessageEvent(event) {\n this.logger.info('kms: received kms message');\n\n return Promise.all(\n event.encryption.kmsMessages.map((kmsMessage, index) =>\n this._isECDHEMessage(kmsMessage).then((isECDHMessage) => {\n this.logger.info(`kms: received ${isECDHMessage ? 'ecdhe' : 'normal'} message`);\n const res = new Response(kmsMessage);\n\n return (\n Promise.resolve(isECDHMessage ? partialContexts.get(this) : contexts.get(this))\n // eslint-disable-next-line max-nested-callbacks\n .then((context) => res.unwrap(context))\n // eslint-disable-next-line max-nested-callbacks\n .then(() => {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.info(\n 'kms: response payload',\n util.inspect(omit(JSON.parse(JSON.stringify(res)), 'wrapped'), {depth: null})\n );\n }\n })\n // eslint-disable-next-line max-nested-callbacks\n .then(() => {\n event.encryption.kmsMessages[index] = res;\n })\n // eslint-disable-next-line max-nested-callbacks\n .then(() => res)\n );\n })\n )\n )\n .then(() => this.batcher.processKmsMessageEvent(event))\n .catch((reason) => {\n this.logger.error('kms: decrypt failed', reason.stack);\n\n return Promise.reject(reason);\n })\n .then(() => event);\n },\n\n /**\n * Decrypts a kms message\n * @param {Object} kmsMessage\n * @returns {Promise<Object>}\n */\n decryptKmsMessage(kmsMessage) {\n const res = new Response(kmsMessage);\n\n return contexts\n .get(this)\n .then((context) => res.unwrap(context))\n .then(() => res.body);\n },\n\n /**\n * Determines if the kms message is an ecdhe message or a normal message\n * @param {Object} kmsMessage\n * @returns {Promise<boolean>}\n */\n _isECDHEMessage(kmsMessage) {\n return this._getKMSStaticPubKey().then((kmsStaticPubKey) => {\n const fields = kmsMessage.split('.');\n\n if (fields.length !== 3) {\n return false;\n }\n\n const header = JSON.parse(jose.util.base64url.decode(fields[0]));\n\n return header.kid === kmsStaticPubKey.kid;\n });\n },\n\n /**\n * Sends a request to the kms\n * @param {Object} payload\n * @param {Object} options\n * @param {Number} options.timeout (internal)\n * @param {string} options.onBehalfOf Run the request on behalf of another user (UUID), used in compliance scenarios\n * @returns {Promise<Object>}\n */\n request(payload, {timeout, onBehalfOf} = {}) {\n timeout = timeout || this.config.kmsInitialTimeout;\n\n // Note: this should only happen when we're using the async kms batcher;\n // once we implement the sync batcher, this'll need to be smarter.\n return (\n this.webex.internal.mercury\n .connect()\n .then(() => this.prepareRequest(payload, onBehalfOf))\n .then((req) => {\n req[TIMEOUT_SYMBOL] = timeout;\n\n return this.batcher.request(req);\n })\n // High complexity is due to attempt at test mode resiliency\n // eslint-disable-next-line complexity\n .catch((reason) => {\n if (\n process.env.NODE_ENV === 'test' &&\n (reason.status === 403 || reason.statusCode === 403) &&\n reason.message.match(\n /Failed to resolve authorization token in KmsMessage request for user/\n )\n ) {\n this.logger.warn('kms: rerequested key due to test-mode kms auth failure');\n\n return this.request(payload, {onBehalfOf});\n }\n\n // KMS Error. Notify the user\n if (reason instanceof KMSError) {\n this.webex.trigger('client:InvalidRequestError');\n\n return Promise.reject(reason);\n }\n\n // Ideally, most or all of the code below would go in kms-batcher, but\n // but batching needs at least one more round of refactoring for that to\n // work.\n if (!reason.statusCode && !reason.status) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore next: reason.stack vs stack difficult to control in test */\n this.logger.info('kms: request error', reason.stack || reason);\n }\n\n consoleDebug(`timeout ${timeout}`);\n timeout *= 2;\n\n if (timeout >= this.config.ecdhMaxTimeout) {\n this.logger.info('kms: exceeded maximum KMS request retries');\n\n return Promise.reject(reason);\n }\n\n // Peek ahead to make sure we don't reset the timeout if the next timeout\n // will exceed the maximum timeout for renegotiating ECDH keys.\n const nextTimeout = timeout * 2;\n\n if (timeout >= this.config.kmsMaxTimeout && nextTimeout < this.config.ecdhMaxTimeout) {\n this.logger.info(\n 'kms: exceeded maximum KMS request retries; negotiating new ecdh key'\n );\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n this.logger.info('kms: timeout/maxtimeout', timeout, this.config.kmsMaxTimeout);\n }\n\n contexts.delete(this);\n timeout = 0;\n }\n\n return this.request(payload, {timeout, onBehalfOf});\n }\n\n return Promise.reject(reason);\n })\n );\n },\n\n /**\n * @private\n * @returns {Promise<string>}\n */\n _getAuthorization() {\n return this.webex.credentials.getUserToken('spark:kms').then((token) => token.access_token);\n },\n\n @oneFlight\n /**\n * @private\n * @param {String} onBehalfOf create context on behalf of another user, undefined when this is not necessary\n * @returns {Promise<Object>}\n */\n _getContext() {\n let promise = contexts.get(this);\n\n if (!promise) {\n promise = this._prepareContext();\n contexts.set(this, promise);\n promise.then((context) => {\n const expiresIn = context.ephemeralKey.expirationDate - Date.now() - 30000;\n\n safeSetTimeout(() => contexts.delete(this), expiresIn);\n });\n }\n\n return Promise.all([promise, this._getAuthorization()]).then(([context, authorization]) => {\n context.clientInfo.credential.bearer = authorization;\n\n return context;\n });\n },\n\n /**\n * @private\n * @returns {Promise<Object>}\n */\n _getKMSCluster() {\n this.logger.info('kms: retrieving KMS cluster');\n\n return this._getKMSDetails().then(({kmsCluster}) => kmsCluster);\n },\n\n /**\n * @private\n * @returns {Promise<Object>}\n */\n _getKMSDetails() {\n let details = kmsDetails.get(this);\n\n if (!details) {\n this.logger.info('kms: fetching KMS details');\n details = this.webex\n .request({\n service: 'encryption',\n resource: `/kms/${this.webex.internal.device.userId}`,\n })\n .then((res) => {\n this.logger.info('kms: fetched KMS details');\n const {body} = res;\n\n body.rsaPublicKey = JSON.parse(body.rsaPublicKey);\n\n return body;\n })\n .catch((reason) => {\n this.logger.error('kms: failed to fetch KMS details', reason);\n\n return Promise.reject(reason);\n });\n\n kmsDetails.set(this, details);\n }\n\n return details;\n },\n\n /**\n * @private\n * @returns {Promise<Object>}\n */\n _getKMSStaticPubKey() {\n this.logger.info('kms: retrieving KMS static public key');\n\n return this._getKMSDetails().then(({rsaPublicKey}) => rsaPublicKey);\n },\n\n /**\n * @private\n * @returns {Promise<Object>}\n */\n _prepareContext() {\n this.logger.info('kms: creating context');\n const context = new Context();\n\n return Promise.all([\n this._getKMSStaticPubKey().then(validateKMS(this.config.caroots)),\n this._getAuthorization(),\n ])\n .then(([kmsStaticPubKey, authorization]) => {\n context.clientInfo = {\n clientId: this.webex.internal.device.url,\n credential: {\n userId: this.webex.internal.device.userId,\n bearer: authorization,\n },\n };\n\n context.serverInfo = {\n key: kmsStaticPubKey,\n };\n\n this.logger.info('kms: creating local ephemeral key');\n\n return context.createECDHKey();\n })\n .then((localECDHKey) => {\n context.ephemeralKey = localECDHKey;\n partialContexts.set(this, context);\n\n return Promise.all([localECDHKey.asKey(), this._getKMSCluster()]);\n })\n .then(([localECDHKey, cluster]) => {\n this.logger.info('kms: submitting ephemeral key request');\n\n return this.request({\n uri: `${cluster}/ecdhe`,\n method: 'create',\n jwk: localECDHKey.toJSON(),\n });\n })\n .then((res) => {\n this.logger.info('kms: deriving final ephemeral key');\n\n return context.deriveEphemeralKey(res.key);\n })\n .then((key) => {\n context.ephemeralKey = key;\n partialContexts.delete(this);\n this.logger.info('kms: derived final ephemeral key');\n\n return context;\n })\n .catch((reason) => {\n this.logger.error('kms: failed to negotiate ephemeral key', reason);\n\n return Promise.reject(reason);\n });\n },\n\n /**\n * KMS 'retrieve' requests can be made on behalf of another user. This is useful\n * for scenarios such as eDiscovery. i.e. Where an authorized compliance officer is\n * entitled to retrieve content generated by any organisational user.\n * As the KMSContext is cached, updating it will affect separate requests. Hence when\n * making a request onBehalfOf another user create a new context for just this request.\n * However this context will be 'light' as it only needs to change one field.\n * @param {Object} originalContext - The base context to 'copy'\n * @param {String} onBehalfOf - The user specified in the new context\n * @returns {Context} A 'copy' of the existing context with a new user specified\n * @private\n */\n _contextOnBehalfOf(originalContext, onBehalfOf) {\n const context = new Context();\n\n context.clientInfo = context.clientInfo = {\n clientId: originalContext.clientInfo.clientId,\n credential: {\n userId: onBehalfOf,\n onBehalfOf, // Supports running onBehalfOf self. i.e. A CO which calls onBehalfOf with CO.id.\n bearer: originalContext.clientInfo.credential.bearer,\n },\n };\n context.serverInfo = originalContext.serverInfo;\n context.ephemeralKey = originalContext.ephemeralKey;\n\n return context;\n },\n});\n\nexport default KMS;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_querystring","_interopRequireDefault","require","_util","_commonTimers","_common","_webexCore","_nodeKms","_nodeJose","_uuid","_kmsBatcher","_interopRequireWildcard","_kmsCertificateValidation","_dec","_obj","_getRequireWildcardCache","nodeInterop","_WeakMap2","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","_Object$defineProperty","_Object$getOwnPropertyDescriptor2","key","Object","prototype","hasOwnProperty","call","desc","set","contexts","_weakMap","kmsDetails","partialContexts","consoleDebug","KMS","WebexPlugin","extend","oneFlight","keyFactory","_ref","uri","onBehalfOf","concat","namespace","children","batcher","KMSBatcher","bindKey","_ref2","_this","kro","kroUri","keyUri","logger","info","_promise","reject","Error","request","method","resourceUri","then","res","createResource","_ref3","_this2","userIds","keyUris","keys","reduce","uris","k","push","length","resource","addAuthorization","_ref4","_this3","authIds","authorizations","listAuthorizations","_ref5","_this4","removeAuthorization","_ref6","_this5","authId","userId","querystring","stringify","createUnboundKeys","_ref7","_this6","count","all","map","asKey","fetchPublicKey","_ref8","_this7","assignedOrgId","publicKey","uploadCustomerMasterKey","_ref9","_this8","customerMasterKey","_ref9$awsKms","awsKms","requestId","uuid","v4","listAllCustomerMasterKey","_ref10","_this9","_ref10$awsKms","changeCustomerMasterKeyState","_ref11","_this10","keyId","keyState","deleteAllCustomerMasterKeys","_ref12","_this11","_ref12$awsKms","useGlobalMasterKey","_ref13","_this12","fetchKey","_ref14","_this13","ping","jose","JWK","jwk","prepareRequest","payload","_this14","isECDHRequest","includes","resolve","_getContext","context","req","Request","requestContext","_contextOnBehalfOf","wrap","serverKey","process","env","NODE_ENV","util","inspect","_omit2","JSON","parse","_stringify","depth","processKmsMessageEvent","event","_this15","encryption","kmsMessages","kmsMessage","index","_isECDHEMessage","isECDHMessage","Response","unwrap","catch","reason","error","stack","decryptKmsMessage","body","_getKMSStaticPubKey","kmsStaticPubKey","fields","split","header","base64url","decode","kid","_this16","_ref15","arguments","undefined","timeout","config","kmsInitialTimeout","webex","internal","mercury","connect","TIMEOUT_SYMBOL","status","statusCode","message","match","warn","KMSError","trigger","ecdhMaxTimeout","nextTimeout","kmsMaxTimeout","delete","_getAuthorization","credentials","getUserToken","token","access_token","_this17","promise","_prepareContext","expiresIn","ephemeralKey","expirationDate","_now","safeSetTimeout","_ref16","_ref17","_slicedToArray2","authorization","clientInfo","credential","bearer","_getKMSCluster","_getKMSDetails","_ref18","kmsCluster","_this18","details","service","device","rsaPublicKey","_ref19","_this19","Context","validateKMS","caroots","_ref20","_ref21","clientId","url","serverInfo","createECDHKey","localECDHKey","_ref22","_ref23","cluster","toJSON","deriveEphemeralKey","originalContext","version","_applyDecoratedDescriptor2","_getOwnPropertyDescriptor","_default","exports"],"sources":["kms.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport querystring from 'querystring';\nimport util from 'util';\n\nimport {safeSetTimeout} from '@webex/common-timers';\nimport {oneFlight} from '@webex/common';\nimport {WebexPlugin} from '@webex/webex-core';\nimport {Context, Request, Response} from 'node-kms';\nimport jose from 'node-jose';\nimport {omit} from 'lodash';\nimport uuid from 'uuid';\n\nimport KMSBatcher, {TIMEOUT_SYMBOL} from './kms-batcher';\nimport validateKMS, {KMSError} from './kms-certificate-validation';\n\nconst contexts = new WeakMap();\nconst kmsDetails = new WeakMap();\nconst partialContexts = new WeakMap();\n\nconst consoleDebug = require('debug')('kms');\n\n/**\n * @class\n */\nconst KMS = WebexPlugin.extend({\n namespace: 'Encryption',\n\n children: {\n batcher: KMSBatcher,\n },\n\n /**\n * Binds a key to a resource\n * @param {Object} options\n * @param {KMSResourceObject} options.kro\n * @param {string} options.kroUri\n * @param {Key} options.key\n * @param {string} options.keyUri\n * @returns {Promise<Key>}\n */\n bindKey({kro, kroUri, key, keyUri}) {\n kroUri = kroUri || kro.uri;\n keyUri = keyUri || key.uri;\n\n this.logger.info('kms: binding key to resource');\n\n /* istanbul ignore if */\n if (!kroUri) {\n return Promise.reject(new Error('`kro` or `kroUri` is required'));\n }\n\n /* istanbul ignore if */\n if (!keyUri) {\n return Promise.reject(new Error('`key` or `keyUri` is required'));\n }\n\n return this.request({\n method: 'update',\n resourceUri: kroUri,\n uri: keyUri,\n }).then((res) => {\n this.logger.info('kms: bound key to resource');\n\n return res.key;\n });\n },\n\n /**\n * Creates a new KMS Resource\n * @param {Object} options\n * @param {Array<string>} options.userIds\n * @param {Array<string>} options.keyUris\n * @param {Key} options.key\n * @param {Array<Keys>} options.keys\n * @returns {Promise<KMSResourceObject>}\n */\n createResource({userIds, keyUris, key, keys}) {\n keyUris = keyUris || [];\n /* istanbul ignore if */\n if (keys) {\n keyUris = keys.reduce((uris, k) => {\n uris.push(k.uri);\n\n return uris;\n }, keyUris);\n }\n\n /* istanbul ignore else */\n if (key) {\n keyUris.push(key.uri);\n }\n\n /* istanbul ignore if */\n if (keyUris.length === 0) {\n return Promise.reject(new Error('Cannot create KMS Resource without at least one keyUri'));\n }\n\n this.logger.info('kms: creating resource');\n\n return this.request({\n method: 'create',\n uri: '/resources',\n userIds,\n keyUris,\n }).then((res) => {\n this.logger.info('kms: created resource');\n\n return res.resource;\n });\n },\n\n /**\n * Authorizes a user or KRO to a KRO\n * @param {Object} options\n * @param {Array<string>} options.userIds\n * @param {Array<string>} options.authIds interchangable with userIds\n * @param {KMSResourceObject} options.kro the target kro\n * @param {string} options.kroUri\n * @returns {Promise<KMSAuthorizationObject>}\n */\n addAuthorization({userIds, authIds, kro, kroUri}) {\n userIds = userIds || [];\n kroUri = kroUri || kro.uri;\n\n if (authIds) {\n userIds = userIds.concat(authIds);\n }\n\n /* istanbul ignore if */\n if (userIds.length === 0) {\n return Promise.reject(new Error('Cannot add authorization without userIds or authIds'));\n }\n\n /* istanbul ignore if */\n if (!kroUri) {\n return Promise.reject(new Error('`kro` or `kroUri` is required'));\n }\n\n this.logger.info('kms: adding authorization to kms resource');\n\n return this.request({\n method: 'create',\n uri: '/authorizations',\n resourceUri: kroUri,\n userIds,\n }).then((res) => {\n this.logger.info('kms: added authorization');\n\n return res.authorizations;\n });\n },\n\n /**\n * Retrieve a list of users that have been authorized to the KRO\n * @param {Object} options\n * @param {KMSResourceObject} options.kro the target kro\n * @param {string} options.kroUri\n * @returns {Array<authId>}\n */\n listAuthorizations({kro, kroUri}) {\n kroUri = kroUri || kro.uri;\n /* istanbul ignore if */\n if (!kroUri) {\n return Promise.reject(new Error('`kro` or `kroUri` is required'));\n }\n\n return this.request({\n method: 'retrieve',\n uri: `${kroUri}/authorizations`,\n }).then((res) => {\n this.logger.info('kms: retrieved authorization list');\n\n return res.authorizations;\n });\n },\n\n /**\n * Deauthorizes a user or KRO from a KRO\n * @param {Object} options\n * @param {string} options.userId\n * @param {string} options.authId interchangable with userIds\n * @param {KMSResourceObject} options.kro the target kro\n * @param {string} options.kroUri\n * @returns {Promise<KMSAuthorizationObject>}\n */\n removeAuthorization({authId, userId, kro, kroUri}) {\n authId = authId || userId;\n kroUri = kroUri || kro.uri;\n\n /* istanbul ignore if */\n if (!authId) {\n return Promise.reject(new Error('Cannot remove authorization without authId'));\n }\n\n /* istanbul ignore if */\n if (!kroUri) {\n return Promise.reject(new Error('`kro` or `kroUri` is required'));\n }\n\n this.logger.info('kms: removing authorization from kms resource');\n\n return this.request({\n method: 'delete',\n uri: `${kroUri}/authorizations?${querystring.stringify({authId})}`,\n }).then((res) => {\n this.logger.info('kms: removed authorization');\n\n return res.authorizations;\n });\n },\n\n /**\n * Requests `count` unbound keys from the kms\n * @param {Object} options\n * @param {Number} options.count\n * @returns {Array<Key>}\n */\n createUnboundKeys({count}) {\n this.logger.info(`kms: request ${count} unbound keys`);\n\n /* istanbul ignore if */\n if (!count) {\n return Promise.reject(new Error('`options.count` is required'));\n }\n\n return this.request({\n method: 'create',\n uri: '/keys',\n count,\n }).then((res) => {\n this.logger.info('kms: received unbound keys');\n\n return Promise.all(res.keys.map(this.asKey));\n });\n },\n\n /**\n * @typedef {Object} FetchPublicKeyResponse\n * @property {number} status 200,400(Bad Request: Request payload missing info),404(Not Found: HSM Public Key not found),501(Not Implemented: This KMS does not support BYOK),502(Bad Gateway: KMS could not communicate with HSM)\n * @property {UUID} requestId this is should be unique, used for debug.\n * @property {string} publicKey\n */\n /**\n * get public key from kms\n * @param {Object} options\n * @param {UUID} options.assignedOrgId the orgId\n * @returns {Promise.<FetchPublicKeyResponse>} response of get public key api\n */\n fetchPublicKey({assignedOrgId}) {\n this.logger.info('kms: fetch public key for byok');\n\n return this.request({\n method: 'retrieve',\n uri: '/publicKey',\n assignedOrgId,\n }).then((res) => {\n this.logger.info('kms: received public key');\n\n return res.publicKey;\n });\n },\n\n /**\n * @typedef {Object} UploadCmkResponse\n * @property {number} status\n * @property {UUID} requestId\n * @property {string} uri\n * @property {string} keysState\n */\n /**\n * upload master key for one org.\n * @param {Object} options\n * @param {UUID} options.assignedOrgId the orgId\n * @param {string} options.customerMasterKey the master key\n * @param {boolean} options.awsKms enable amazon aws keys\n * @returns {Promise.<UploadCmkResponse>} response of upload CMK api\n */\n uploadCustomerMasterKey({assignedOrgId, customerMasterKey, awsKms = false}) {\n this.logger.info('kms: upload customer master key for byok');\n\n return this.request({\n method: 'create',\n uri: awsKms ? '/awsKmsCmk' : '/cmk',\n assignedOrgId,\n customerMasterKey,\n requestId: uuid.v4(),\n }).then((res) => {\n this.logger.info('kms: finish to upload customer master key');\n\n return res;\n });\n },\n\n /**\n * get all customer master keys for one org.\n * @param {Object} options\n * @param {UUID} options.assignedOrgId the orgId\n * @param {boolean} options.awsKms enable amazon aws keys\n * @returns {Promise.<ActivateCmkResponse>} response of list CMKs api\n */\n listAllCustomerMasterKey({assignedOrgId, awsKms = false}) {\n this.logger.info('kms: get all customer master keys for byok');\n\n return this.request({\n method: 'retrieve',\n uri: awsKms ? '/awsKmsCmk' : '/cmk',\n assignedOrgId,\n requestId: uuid.v4(),\n }).then((res) => {\n this.logger.info('kms: finish to get all customer master keys');\n\n return res;\n });\n },\n\n /**\n * @typedef {Object} ActivateCmkResponse\n * @property {number} status\n * @property {UUID} requestId\n * @property {Array<CMK>} customerMasterKeys\n */\n /**\n *\n * @typedef {Object} CMK\n * @property {string} usageState\n * @property {UUID} assignedOrgId\n * @property {string} uri\n * @property {string} source\n * @property {Date | undefined} stateUpdatedOn\n * @property {Date | undefined} rotation\n */\n /**\n * change one customer master key state for one org.\n * delete pending key, then the keyState should be 'removedclean';\n * active pending key, then the keyState should be 'active';\n *\n * @param {Object} options\n * @param {string} options.keyId the id of one customer master key, it should be a url\n * @param {string} options.keyState one of the following: PENDING, RECOVERING,ACTIVE,REVOKED,DEACTIVATED,REENCRYPTING,RETIRED,DELETED,DISABLED,REMOVEDCLEAN,REMOVEDDIRTY;\n * @param {UUID} options.assignedOrgId the orgId\n * @returns {Promise.<ActivateCmkResponse>} response of list CMKs api\n */\n changeCustomerMasterKeyState({keyId, keyState, assignedOrgId}) {\n this.logger.info('kms: change one customer master key state for byok');\n\n return this.request({\n method: 'update',\n uri: keyId,\n keyState,\n assignedOrgId,\n requestId: uuid.v4(),\n }).then((res) => {\n this.logger.info('kms: finish to change the customer master key state to {}', keyState);\n\n return res;\n });\n },\n\n /**\n * this is for test case. it will delete all CMKs, no matter what their status is. This is mainly for test purpose\n * @param {Object} options\n * @param {UUID} options.assignedOrgId the orgId\n * @param {boolean} options.awsKms enable amazon aws keys\n * @returns {Promise.<{status, requestId}>}\n */\n deleteAllCustomerMasterKeys({assignedOrgId, awsKms = false}) {\n this.logger.info('kms: delete all customer master keys at the same time');\n\n return this.request({\n method: 'delete',\n uri: awsKms ? '/awsKmsCmk' : '/cmk',\n assignedOrgId,\n requestId: uuid.v4(),\n }).then((res) => {\n this.logger.info('kms: finish to delete all customer master keys');\n\n return res;\n });\n },\n\n /**\n * return to use global master key for one org.\n * @param {Object} options\n * @param {UUID} options.assignedOrgId the orgId\n * @returns {Promise.<ActivateCmkResponse>} response of activate CMK api\n */\n useGlobalMasterKey({assignedOrgId}) {\n this.logger.info('kms: return to use global master key');\n\n return this.request({\n method: 'update',\n uri: 'default',\n keyState: 'ACTIVE',\n assignedOrgId,\n requestId: uuid.v4(),\n }).then((res) => {\n this.logger.info('kms: finish to return to global master key');\n\n return res;\n });\n },\n\n /**\n * Fetches the specified key from the kms\n * @param {Object} options\n * @param {string} options.uri\n * @param {string} options.onBehalfOf The id of a user, upon whose behalf, the key is to be retrieved or undefined if retrieval is for the active user\n * @returns {Promise<Key>}\n */\n // Ideally, this would be done via the kms batcher, but other than request id,\n // there isn't any other userful key in a kms response to match it to a\n // request. as such, we need the batcher to group requests, but one flight to\n // make sure we don't make the same request multiple times.\n @oneFlight({\n keyFactory: ({uri, onBehalfOf}) => `${uri}/${onBehalfOf}`,\n })\n fetchKey({uri, onBehalfOf}) {\n /* istanbul ignore if */\n if (!uri) {\n return Promise.reject(new Error('`options.uri` is required'));\n }\n\n this.logger.info('kms: fetching key');\n\n return this.request(\n {\n method: 'retrieve',\n uri,\n },\n {onBehalfOf}\n ).then((res) => {\n this.logger.info('kms: fetched key');\n\n return this.asKey(res.key);\n });\n },\n\n /**\n * Pings the kms. Mostly for testing\n * @returns {Promise}\n */\n ping() {\n return this.request({\n method: 'update',\n uri: '/ping',\n });\n },\n\n /**\n * Ensures a key obect is Key instance\n * @param {Object} key\n * @returns {Promise<Key>}\n */\n asKey(key) {\n return jose.JWK.asKey(key.jwk).then((jwk) => {\n key.jwk = jwk;\n\n return key;\n });\n },\n\n /**\n * Adds appropriate metadata to the KMS request\n * @param {Object} payload\n * @param {Object} onBehalfOf Optional parameter to prepare the request on behalf of another user\n * @returns {Promise<KMS.Request>}\n */\n prepareRequest(payload, onBehalfOf) {\n const isECDHRequest = payload.method === 'create' && payload.uri.includes('/ecdhe');\n\n return Promise.resolve(isECDHRequest ? partialContexts.get(this) : this._getContext()).then(\n (context) => {\n this.logger.info(`kms: wrapping ${isECDHRequest ? 'ephemeral key' : 'kms'} request`);\n const req = new Request(payload);\n let requestContext = context;\n\n if (onBehalfOf) {\n requestContext = this._contextOnBehalfOf(context, onBehalfOf);\n }\n\n return req.wrap(requestContext, {serverKey: isECDHRequest}).then(() => {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n this.logger.info(\n 'kms: request payload',\n util.inspect(omit(JSON.parse(JSON.stringify(req)), 'wrapped'), {depth: null})\n );\n }\n\n return req;\n });\n }\n );\n },\n\n /**\n * Accepts a kms message event, decrypts it, and passes it to the batcher\n * @param {Object} event\n * @returns {Promise<Object>}\n */\n processKmsMessageEvent(event) {\n this.logger.info('kms: received kms message');\n\n return Promise.all(\n event.encryption.kmsMessages.map((kmsMessage, index) =>\n this._isECDHEMessage(kmsMessage).then((isECDHMessage) => {\n this.logger.info(`kms: received ${isECDHMessage ? 'ecdhe' : 'normal'} message`);\n const res = new Response(kmsMessage);\n\n return (\n Promise.resolve(isECDHMessage ? partialContexts.get(this) : contexts.get(this))\n // eslint-disable-next-line max-nested-callbacks\n .then((context) => res.unwrap(context))\n // eslint-disable-next-line max-nested-callbacks\n .then(() => {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.info(\n 'kms: response payload',\n util.inspect(omit(JSON.parse(JSON.stringify(res)), 'wrapped'), {depth: null})\n );\n }\n })\n // eslint-disable-next-line max-nested-callbacks\n .then(() => {\n event.encryption.kmsMessages[index] = res;\n })\n // eslint-disable-next-line max-nested-callbacks\n .then(() => res)\n );\n })\n )\n )\n .then(() => this.batcher.processKmsMessageEvent(event))\n .catch((reason) => {\n this.logger.error('kms: decrypt failed', reason.stack);\n\n return Promise.reject(reason);\n })\n .then(() => event);\n },\n\n /**\n * Decrypts a kms message\n * @param {Object} kmsMessage\n * @returns {Promise<Object>}\n */\n decryptKmsMessage(kmsMessage) {\n const res = new Response(kmsMessage);\n\n return contexts\n .get(this)\n .then((context) => res.unwrap(context))\n .then(() => res.body);\n },\n\n /**\n * Determines if the kms message is an ecdhe message or a normal message\n * @param {Object} kmsMessage\n * @returns {Promise<boolean>}\n */\n _isECDHEMessage(kmsMessage) {\n return this._getKMSStaticPubKey().then((kmsStaticPubKey) => {\n const fields = kmsMessage.split('.');\n\n if (fields.length !== 3) {\n return false;\n }\n\n const header = JSON.parse(jose.util.base64url.decode(fields[0]));\n\n return header.kid === kmsStaticPubKey.kid;\n });\n },\n\n /**\n * Sends a request to the kms\n * @param {Object} payload\n * @param {Object} options\n * @param {Number} options.timeout (internal)\n * @param {string} options.onBehalfOf Run the request on behalf of another user (UUID), used in compliance scenarios\n * @returns {Promise<Object>}\n */\n request(payload, {timeout, onBehalfOf} = {}) {\n timeout = timeout || this.config.kmsInitialTimeout;\n\n // Note: this should only happen when we're using the async kms batcher;\n // once we implement the sync batcher, this'll need to be smarter.\n return (\n this.webex.internal.mercury\n .connect()\n .then(() => this.prepareRequest(payload, onBehalfOf))\n .then((req) => {\n req[TIMEOUT_SYMBOL] = timeout;\n\n return this.batcher.request(req);\n })\n // High complexity is due to attempt at test mode resiliency\n // eslint-disable-next-line complexity\n .catch((reason) => {\n if (\n process.env.NODE_ENV === 'test' &&\n (reason.status === 403 || reason.statusCode === 403) &&\n reason.message.match(\n /Failed to resolve authorization token in KmsMessage request for user/\n )\n ) {\n this.logger.warn('kms: rerequested key due to test-mode kms auth failure');\n\n return this.request(payload, {onBehalfOf});\n }\n\n // KMS Error. Notify the user\n if (reason instanceof KMSError) {\n this.webex.trigger('client:InvalidRequestError');\n\n return Promise.reject(reason);\n }\n\n // Ideally, most or all of the code below would go in kms-batcher, but\n // but batching needs at least one more round of refactoring for that to\n // work.\n if (!reason.statusCode && !reason.status) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore next: reason.stack vs stack difficult to control in test */\n this.logger.info('kms: request error', reason.stack || reason);\n }\n\n consoleDebug(`timeout ${timeout}`);\n timeout *= 2;\n\n if (timeout >= this.config.ecdhMaxTimeout) {\n this.logger.info('kms: exceeded maximum KMS request retries');\n\n return Promise.reject(reason);\n }\n\n // Peek ahead to make sure we don't reset the timeout if the next timeout\n // will exceed the maximum timeout for renegotiating ECDH keys.\n const nextTimeout = timeout * 2;\n\n if (timeout >= this.config.kmsMaxTimeout && nextTimeout < this.config.ecdhMaxTimeout) {\n this.logger.info(\n 'kms: exceeded maximum KMS request retries; negotiating new ecdh key'\n );\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n this.logger.info('kms: timeout/maxtimeout', timeout, this.config.kmsMaxTimeout);\n }\n\n contexts.delete(this);\n timeout = 0;\n }\n\n return this.request(payload, {timeout, onBehalfOf});\n }\n\n return Promise.reject(reason);\n })\n );\n },\n\n /**\n * @private\n * @returns {Promise<string>}\n */\n _getAuthorization() {\n return this.webex.credentials.getUserToken('spark:kms').then((token) => token.access_token);\n },\n\n @oneFlight\n /**\n * @private\n * @param {String} onBehalfOf create context on behalf of another user, undefined when this is not necessary\n * @returns {Promise<Object>}\n */\n _getContext() {\n let promise = contexts.get(this);\n\n if (!promise) {\n promise = this._prepareContext();\n contexts.set(this, promise);\n promise.then((context) => {\n const expiresIn = context.ephemeralKey.expirationDate - Date.now() - 30000;\n\n safeSetTimeout(() => contexts.delete(this), expiresIn);\n });\n }\n\n return Promise.all([promise, this._getAuthorization()]).then(([context, authorization]) => {\n context.clientInfo.credential.bearer = authorization;\n\n return context;\n });\n },\n\n /**\n * @private\n * @returns {Promise<Object>}\n */\n _getKMSCluster() {\n this.logger.info('kms: retrieving KMS cluster');\n\n return this._getKMSDetails().then(({kmsCluster}) => kmsCluster);\n },\n\n /**\n * @private\n * @returns {Promise<Object>}\n */\n _getKMSDetails() {\n let details = kmsDetails.get(this);\n\n if (!details) {\n this.logger.info('kms: fetching KMS details');\n details = this.webex\n .request({\n service: 'encryption',\n resource: `/kms/${this.webex.internal.device.userId}`,\n })\n .then((res) => {\n this.logger.info('kms: fetched KMS details');\n const {body} = res;\n\n body.rsaPublicKey = JSON.parse(body.rsaPublicKey);\n\n return body;\n })\n .catch((reason) => {\n this.logger.error('kms: failed to fetch KMS details', reason);\n\n return Promise.reject(reason);\n });\n\n kmsDetails.set(this, details);\n }\n\n return details;\n },\n\n /**\n * @private\n * @returns {Promise<Object>}\n */\n _getKMSStaticPubKey() {\n this.logger.info('kms: retrieving KMS static public key');\n\n return this._getKMSDetails().then(({rsaPublicKey}) => rsaPublicKey);\n },\n\n /**\n * @private\n * @returns {Promise<Object>}\n */\n _prepareContext() {\n this.logger.info('kms: creating context');\n const context = new Context();\n\n return Promise.all([\n this._getKMSStaticPubKey().then(validateKMS(this.config.caroots)),\n this._getAuthorization(),\n ])\n .then(([kmsStaticPubKey, authorization]) => {\n context.clientInfo = {\n clientId: this.webex.internal.device.url,\n credential: {\n userId: this.webex.internal.device.userId,\n bearer: authorization,\n },\n };\n\n context.serverInfo = {\n key: kmsStaticPubKey,\n };\n\n this.logger.info('kms: creating local ephemeral key');\n\n return context.createECDHKey();\n })\n .then((localECDHKey) => {\n context.ephemeralKey = localECDHKey;\n partialContexts.set(this, context);\n\n return Promise.all([localECDHKey.asKey(), this._getKMSCluster()]);\n })\n .then(([localECDHKey, cluster]) => {\n this.logger.info('kms: submitting ephemeral key request');\n\n return this.request({\n uri: `${cluster}/ecdhe`,\n method: 'create',\n jwk: localECDHKey.toJSON(),\n });\n })\n .then((res) => {\n this.logger.info('kms: deriving final ephemeral key');\n\n return context.deriveEphemeralKey(res.key);\n })\n .then((key) => {\n context.ephemeralKey = key;\n partialContexts.delete(this);\n this.logger.info('kms: derived final ephemeral key');\n\n return context;\n })\n .catch((reason) => {\n this.logger.error('kms: failed to negotiate ephemeral key', reason);\n\n return Promise.reject(reason);\n });\n },\n\n /**\n * KMS 'retrieve' requests can be made on behalf of another user. This is useful\n * for scenarios such as eDiscovery. i.e. Where an authorized compliance officer is\n * entitled to retrieve content generated by any organisational user.\n * As the KMSContext is cached, updating it will affect separate requests. Hence when\n * making a request onBehalfOf another user create a new context for just this request.\n * However this context will be 'light' as it only needs to change one field.\n * @param {Object} originalContext - The base context to 'copy'\n * @param {String} onBehalfOf - The user specified in the new context\n * @returns {Context} A 'copy' of the existing context with a new user specified\n * @private\n */\n _contextOnBehalfOf(originalContext, onBehalfOf) {\n const context = new Context();\n\n context.clientInfo = context.clientInfo = {\n clientId: originalContext.clientInfo.clientId,\n credential: {\n userId: onBehalfOf,\n onBehalfOf, // Supports running onBehalfOf self. i.e. A CO which calls onBehalfOf with CO.id.\n bearer: originalContext.clientInfo.credential.bearer,\n },\n };\n context.serverInfo = originalContext.serverInfo;\n context.ephemeralKey = originalContext.ephemeralKey;\n\n return context;\n },\n});\n\nexport default KMS;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "name": "@webex/internal-plugin-encryption",
3
+ "version": "2.60.1",
3
4
  "description": "",
4
5
  "license": "MIT",
5
6
  "main": "dist/index.js",
@@ -10,7 +11,7 @@
10
11
  "directory": "packages/@webex/internal-plugin-encryption"
11
12
  },
12
13
  "engines": {
13
- "node": ">=16"
14
+ "node": ">=14"
14
15
  },
15
16
  "browser": {
16
17
  "./dist/ensure-buffer.js": "./dist/ensure-buffer.browser.js",
@@ -24,27 +25,27 @@
24
25
  },
25
26
  "devDependencies": {
26
27
  "@babel/core": "^7.17.10",
27
- "@webex/babel-config-legacy": "0.0.0",
28
- "@webex/eslint-config-legacy": "0.0.0",
29
- "@webex/jest-config-legacy": "0.0.0",
30
- "@webex/legacy-tools": "0.0.0",
31
- "@webex/test-helper-chai": "2.60.0-next.8",
32
- "@webex/test-helper-make-local-url": "2.60.0-next.8",
33
- "@webex/test-helper-mocha": "2.60.0-next.8",
34
- "@webex/test-helper-mock-webex": "2.60.0-next.8",
35
- "@webex/test-helper-test-users": "2.60.0-next.8",
28
+ "@webex/babel-config-legacy": "2.60.1",
29
+ "@webex/eslint-config-legacy": "2.60.1",
30
+ "@webex/jest-config-legacy": "2.60.1",
31
+ "@webex/legacy-tools": "2.60.1",
32
+ "@webex/test-helper-chai": "2.60.1",
33
+ "@webex/test-helper-make-local-url": "2.60.1",
34
+ "@webex/test-helper-mocha": "2.60.1",
35
+ "@webex/test-helper-mock-webex": "2.60.1",
36
+ "@webex/test-helper-test-users": "2.60.1",
36
37
  "eslint": "^8.24.0",
37
38
  "prettier": "^2.7.1",
38
39
  "sinon": "^9.2.4"
39
40
  },
40
41
  "dependencies": {
41
- "@webex/common": "2.60.0-next.8",
42
- "@webex/common-timers": "2.60.0-next.8",
43
- "@webex/http-core": "2.60.0-next.8",
44
- "@webex/internal-plugin-device": "2.60.0-next.8",
45
- "@webex/internal-plugin-mercury": "2.60.0-next.8",
46
- "@webex/test-helper-file": "2.60.0-next.8",
47
- "@webex/webex-core": "2.60.0-next.8",
42
+ "@webex/common": "2.60.1",
43
+ "@webex/common-timers": "2.60.1",
44
+ "@webex/http-core": "2.60.1",
45
+ "@webex/internal-plugin-device": "2.60.1",
46
+ "@webex/internal-plugin-mercury": "2.60.1",
47
+ "@webex/test-helper-file": "2.60.1",
48
+ "@webex/webex-core": "2.60.1",
48
49
  "asn1js": "^2.0.26",
49
50
  "debug": "^4.3.4",
50
51
  "isomorphic-webcrypto": "^2.3.8",
@@ -60,12 +61,10 @@
60
61
  "scripts": {
61
62
  "build": "yarn build:src",
62
63
  "build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
63
- "deploy:npm": "yarn npm publish",
64
64
  "test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
65
65
  "test:browser": "webex-legacy-tools test --integration --unit --runner karma",
66
66
  "test:integration:broken": "webex-legacy-tools test --integration --runner mocha",
67
67
  "test:style": "eslint ./src/**/*.*",
68
68
  "test:unit": "webex-legacy-tools test --unit --runner jest"
69
- },
70
- "version": "2.60.0-next.8"
71
- }
69
+ }
70
+ }