@astronautlabs/jwt 1.0.1 → 1.1.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
- # v1.0.0
1
+ # v1.1.0
2
+ - The Token object now includes the decoded header object when signing/decoding/validating tokens.
3
+
4
+ # v1.0.1
5
+ - Update dependencies based on relevant advisories.
2
6
 
3
- Initial stable release
7
+ # v1.0.0
8
+ - Initial stable release
@@ -118,7 +118,11 @@ var WebCryptoJWT = /** @class */ (function () {
118
118
  var decodedToken;
119
119
  return __generator(this, function (_a) {
120
120
  decodedToken = this._decode(token);
121
- return [2 /*return*/, { claims: decodedToken.payload, string: token }];
121
+ return [2 /*return*/, {
122
+ claims: decodedToken.payload,
123
+ header: decodedToken.header,
124
+ string: token
125
+ }];
122
126
  });
123
127
  });
124
128
  };
@@ -130,15 +134,17 @@ var WebCryptoJWT = /** @class */ (function () {
130
134
  };
131
135
  WebCryptoJWT.prototype.encode = function (payload, options) {
132
136
  return __awaiter(this, void 0, void 0, function () {
133
- var _a;
134
- return __generator(this, function (_b) {
135
- switch (_b.label) {
136
- case 0:
137
- _a = {};
138
- return [4 /*yield*/, this._sign(payload, options.secretOrKey, this.algorithmOf(options))];
139
- case 1: return [2 /*return*/, (_a.string = _b.sent(),
140
- _a.claims = payload,
141
- _a)];
137
+ var string;
138
+ return __generator(this, function (_a) {
139
+ switch (_a.label) {
140
+ case 0: return [4 /*yield*/, this._sign(payload, options.secretOrKey, this.algorithmOf(options))];
141
+ case 1:
142
+ string = _a.sent();
143
+ return [2 /*return*/, {
144
+ string: string,
145
+ header: this._decode(string).header,
146
+ claims: payload
147
+ }];
142
148
  }
143
149
  });
144
150
  });
@@ -176,6 +182,7 @@ var WebCryptoJWT = /** @class */ (function () {
176
182
  }
177
183
  return [2 /*return*/, {
178
184
  string: string,
185
+ header: decodedToken.header,
179
186
  claims: decodedToken.payload
180
187
  }];
181
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"webcrypto-jwt.js","sourceRoot":"","sources":["../../src/browser/webcrypto-jwt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webcrypto-jwt.js","sourceRoot":"","sources":["../../src/browser/webcrypto-jwt.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export interface ValidateOptions {
23
23
  export interface Token {
24
24
  string: string;
25
25
  claims: Record<string, any>;
26
+ header: Record<string, any>;
26
27
  }
27
28
  export interface DecodedToken {
28
29
  encodedHeader: string;
@@ -77,10 +77,28 @@ function engineTest(subjectName, engine) {
77
77
  }
78
78
  });
79
79
  }); });
80
+ it('rejects tokens with the \'none\' algorithm', function () { return __awaiter(_this, void 0, void 0, function () {
81
+ var e_2;
82
+ return __generator(this, function (_a) {
83
+ switch (_a.label) {
84
+ case 0:
85
+ _a.trys.push([0, 2, , 3]);
86
+ return [4 /*yield*/, engine.validate(HS256Fixtures.SAMPLE_TOKEN_NONE, { algorithm: 'RS256', secretOrKey: RS256Fixtures.SAMPLE_PUBKEY })];
87
+ case 1:
88
+ _a.sent();
89
+ return [3 /*break*/, 3];
90
+ case 2:
91
+ e_2 = _a.sent();
92
+ (0, chai_1.expect)(e_2.message).to.contain('Token has incorrect algorithm');
93
+ return [2 /*return*/];
94
+ case 3: throw new Error("Should not accept token with incorrect algorithm");
95
+ }
96
+ });
97
+ }); });
80
98
  });
81
99
  describe(': exp', function (it) {
82
100
  it('rejects expired tokens by default', function () { return __awaiter(_this, void 0, void 0, function () {
83
- var options, token, e_2;
101
+ var options, token, e_3;
84
102
  return __generator(this, function (_a) {
85
103
  switch (_a.label) {
86
104
  case 0:
@@ -96,15 +114,15 @@ function engineTest(subjectName, engine) {
96
114
  _a.sent();
97
115
  return [3 /*break*/, 5];
98
116
  case 4:
99
- e_2 = _a.sent();
100
- (0, chai_1.expect)(e_2.message).to.contain('Token is expired');
117
+ e_3 = _a.sent();
118
+ (0, chai_1.expect)(e_3.message).to.contain('Token is expired');
101
119
  return [2 /*return*/];
102
120
  case 5: throw new Error("Should not accept an expired token by default");
103
121
  }
104
122
  });
105
123
  }); });
106
124
  it('rejects expired tokens with validate.exp=force', function () { return __awaiter(_this, void 0, void 0, function () {
107
- var options, token, e_3;
125
+ var options, token, e_4;
108
126
  return __generator(this, function (_a) {
109
127
  switch (_a.label) {
110
128
  case 0:
@@ -120,8 +138,8 @@ function engineTest(subjectName, engine) {
120
138
  _a.sent();
121
139
  return [3 /*break*/, 5];
122
140
  case 4:
123
- e_3 = _a.sent();
124
- (0, chai_1.expect)(e_3.message).to.contain('Token is expired');
141
+ e_4 = _a.sent();
142
+ (0, chai_1.expect)(e_4.message).to.contain('Token is expired');
125
143
  return [2 /*return*/];
126
144
  case 5: throw new Error("Should not accept an expired token with validate.exp=force");
127
145
  }
@@ -145,7 +163,7 @@ function engineTest(subjectName, engine) {
145
163
  });
146
164
  }); });
147
165
  it('rejects tokens without exp claim when configured to do so', function () { return __awaiter(_this, void 0, void 0, function () {
148
- var options, token, e_4;
166
+ var options, token, e_5;
149
167
  return __generator(this, function (_a) {
150
168
  switch (_a.label) {
151
169
  case 0:
@@ -161,8 +179,8 @@ function engineTest(subjectName, engine) {
161
179
  _a.sent();
162
180
  return [3 /*break*/, 5];
163
181
  case 4:
164
- e_4 = _a.sent();
165
- (0, chai_1.expect)(e_4.message).to.contain('Non-expiring tokens are not acceptable');
182
+ e_5 = _a.sent();
183
+ (0, chai_1.expect)(e_5.message).to.contain('Non-expiring tokens are not acceptable');
166
184
  return [2 /*return*/];
167
185
  case 5: throw new Error("Should not accept a token without exp claim when configured to require it");
168
186
  }
@@ -210,7 +228,7 @@ function engineTest(subjectName, engine) {
210
228
  });
211
229
  }); });
212
230
  it('can detect a forged token', function () { return __awaiter(_this, void 0, void 0, function () {
213
- var e_5;
231
+ var e_6;
214
232
  return __generator(this, function (_a) {
215
233
  switch (_a.label) {
216
234
  case 0:
@@ -223,15 +241,15 @@ function engineTest(subjectName, engine) {
223
241
  _a.sent();
224
242
  return [3 /*break*/, 3];
225
243
  case 2:
226
- e_5 = _a.sent();
227
- (0, chai_1.expect)(e_5.message).to.contain('Invalid signature');
244
+ e_6 = _a.sent();
245
+ (0, chai_1.expect)(e_6.message).to.contain('Invalid signature');
228
246
  return [2 /*return*/];
229
247
  case 3: throw new Error('Engine should have detected forgery');
230
248
  }
231
249
  });
232
250
  }); });
233
251
  it('fails to verify a token with wrong key', function () { return __awaiter(_this, void 0, void 0, function () {
234
- var e_6;
252
+ var e_7;
235
253
  return __generator(this, function (_a) {
236
254
  switch (_a.label) {
237
255
  case 0:
@@ -244,15 +262,15 @@ function engineTest(subjectName, engine) {
244
262
  _a.sent();
245
263
  return [3 /*break*/, 3];
246
264
  case 2:
247
- e_6 = _a.sent();
248
- (0, chai_1.expect)(e_6.message).to.contain('Invalid signature');
265
+ e_7 = _a.sent();
266
+ (0, chai_1.expect)(e_7.message).to.contain('Invalid signature');
249
267
  return [2 /*return*/];
250
268
  case 3: throw new Error('Engine should have failed to verify');
251
269
  }
252
270
  });
253
271
  }); });
254
272
  it('can sign a token', function () { return __awaiter(_this, void 0, void 0, function () {
255
- var token, validatedToken, e_7;
273
+ var token, validatedToken, e_8;
256
274
  return __generator(this, function (_a) {
257
275
  switch (_a.label) {
258
276
  case 0: return [4 /*yield*/, engine.encode({
@@ -276,10 +294,10 @@ function engineTest(subjectName, engine) {
276
294
  (0, chai_1.expect)(validatedToken.claims.iat).to.equal(1598181440);
277
295
  return [3 /*break*/, 5];
278
296
  case 4:
279
- e_7 = _a.sent();
297
+ e_8 = _a.sent();
280
298
  console.error("Caught error during .sign() test:");
281
- console.error(e_7);
282
- throw new Error("Should be able to validate signed token '".concat(token.string, "', caught error: ").concat(e_7));
299
+ console.error(e_8);
300
+ throw new Error("Should be able to validate signed token '".concat(token.string, "', caught error: ").concat(e_8));
283
301
  case 5: return [2 /*return*/];
284
302
  }
285
303
  });
@@ -1 +1 @@
1
- {"version":3,"file":"engine.test.js","sourceRoot":"","sources":["../src/engine.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.test.js","sourceRoot":"","sources":["../src/engine.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAA+B;AAC/B,6BAA8B;AAE9B,wDAA0D;AAC1D,wDAA0D;AAC1D,wDAA0D;AAC1D,wDAA0D;AAC1D,wDAA0D;AAC1D,wDAA0D;AAW1D,IAAM,UAAU,GAAG;IACf,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;CACvB,CAAC;AAEF,SAAgB,UAAU,CAAC,WAAoB,EAAE,MAAkB;IAAnE,iBA0JC;IAzJG,IAAA,cAAK,EAAC,UAAA,QAAQ;QACV,QAAQ,CAAC,WAAW,EAAE,UAAA,EAAE;YACpB,QAAQ,CAAC,cAAc,EAAE,UAAA,EAAE;gBACvB,QAAQ,CAAC,OAAO,EAAE,UAAA,EAAE;oBAChB,EAAE,CAAC,yCAAyC,EAAE;;;;;;oCAEtC,qBAAM,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,aAAa,EAAE,CAAC,EAAA;;oCAAnH,SAAmH,CAAA;;;;oCAEnH,IAAA,aAAM,EAAC,GAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;oCAC9D,sBAAO;wCAGX,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;;;yBACvE,CAAC,CAAC;oBACH,EAAE,CAAC,4CAA4C,EAAE;;;;;;oCAEzC,qBAAM,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,aAAa,EAAE,CAAC,EAAA;;oCAAxH,SAAwH,CAAA;;;;oCAExH,IAAA,aAAM,EAAC,GAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;oCAC9D,sBAAO;wCAGX,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;;;yBACvE,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,OAAO,EAAE,UAAA,EAAE;oBAChB,EAAE,CAAC,mCAAmC,EAAE;;;;;oCAChC,OAAO,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,aAAa,EAAE,CAAC;oCACnE,qBAAM,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,OAAO,CAAC,EAAA;;oCAAzE,KAAK,GAAG,SAAiE;;;;oCAGzE,qBAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAAA;;oCAA5C,SAA4C,CAAA;;;;oCAE5C,IAAA,aAAM,EAAC,GAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;oCACjD,sBAAO;wCAGX,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;;;yBACpE,CAAC,CAAC;oBAEH,EAAE,CAAC,gDAAgD,EAAE;;;;;oCAC7C,OAAO,GAAmB,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;oCAC/G,qBAAM,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,OAAO,CAAC,EAAA;;oCAAzE,KAAK,GAAG,SAAiE;;;;oCAGzE,qBAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAAA;;oCAA5C,SAA4C,CAAA;;;;oCAE5C,IAAA,aAAM,EAAC,GAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;oCACjD,sBAAO;wCAGX,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;;;yBACjF,CAAC,CAAC;oBAEH,EAAE,CAAC,8CAA8C,EAAE;;;;;oCAC3C,OAAO,GAAmB,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;oCAC/G,qBAAM,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,OAAO,CAAC,EAAA;;oCAAzF,KAAK,GAAG,SAAiF;oCAExE,qBAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAAA;;oCAA7D,cAAc,GAAG,SAA4C;oCACjE,IAAA,aAAM,EAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;;;;yBACxD,CAAC,CAAC;oBAEH,EAAE,CAAC,2DAA2D,EAAE;;;;;oCACxD,OAAO,GAAmB,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;oCAC/G,qBAAM,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,EAAA;;oCAAvD,KAAK,GAAG,SAA+C;;;;oCAGvD,qBAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAAA;;oCAA5C,SAA4C,CAAA;;;;oCAE5C,IAAA,aAAM,EAAC,GAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;oCACvE,sBAAO;wCAGX,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;;;yBAChG,CAAC,CAAC;oBAEH,EAAE,CAAC,iDAAiD,EAAE;;;;;oCAC9C,OAAO,GAAmB,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC;oCAChH,qBAAM,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,OAAO,CAAC,EAAA;;oCAAxF,KAAK,GAAG,SAAgF;oCACvE,qBAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAAA;;oCAA7D,cAAc,GAAG,SAA4C;oCACjE,IAAA,aAAM,EAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;;;;yBACxD,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG,IAAI,OAAA,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAnC,CAAmC,CAAC,CAAC;YAE5E,SAAS,aAAa,CAAC,SAAkB,EAAE,QAA4B;gBAAvE,iBA6DC;gBA5DG,QAAQ,CAAC,sBAAe,SAAS,CAAE,EAAE;;;wBACjC,EAAE,CAAC,oBAAoB,EAAE;;;;4CACT,qBAAM,MAAM,CAAC,QAAQ,CAC7B,QAAQ,CAAC,YAAY,EACrB;4CACI,SAAS,WAAA;4CACT,WAAW,EAAE,QAAQ,CAAC,aAAa;yCACtC,CACJ,EAAA;;wCANG,KAAK,GAAG,SAMX;wCACD,IAAA,aAAM,EAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;wCAChD,IAAA,aAAM,EAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;;;;6BACjD,CAAC,CAAC;wBACH,EAAE,CAAC,2BAA2B,EAAE;;;;;;wCAExB,qBAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,EAAE;gDACjD,SAAS,WAAA;gDACT,WAAW,EAAE,QAAQ,CAAC,aAAa;6CACtC,CAAC,EAAA;;wCAHF,SAGE,CAAC;;;;wCAEH,IAAA,aAAM,EAAC,GAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;wCAClD,sBAAO;4CAGX,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;;;6BAC1D,CAAC,CAAC;wBACH,EAAE,CAAC,wCAAwC,EAAE;;;;;;wCAErC,qBAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,EAAE;gDACjD,SAAS,WAAA;gDACT,WAAW,EAAE,QAAQ,CAAC,eAAe;6CACxC,CAAC,EAAA;;wCAHF,SAGE,CAAC;;;;wCAEH,IAAA,aAAM,EAAC,GAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;wCAClD,sBAAO;4CAGX,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;;;6BAC1D,CAAC,CAAC;wBACH,EAAE,CAAC,kBAAkB,EAAE;;;;4CACP,qBAAM,MAAM,CAAC,MAAM,CAAC;4CAC5B,GAAG,EAAE,GAAG;4CACR,GAAG,EAAE,UAAU;yCAClB,EAAE;4CACC,SAAS,WAAA;4CACT,WAAW,EAAE,QAAQ,CAAC,iBAAiB;yCAC1C,CAAC,EAAA;;wCANE,KAAK,GAAG,SAMV;;;;wCAGuB,qBAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;gDACrD,SAAS,WAAA;gDACT,WAAW,EAAE,QAAQ,CAAC,aAAa;6CACtC,CAAC,EAAA;;wCAHE,cAAc,GAAG,SAGnB;wCACF,IAAA,aAAM,EAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;;;;wCAEvD,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;wCACnD,OAAO,CAAC,KAAK,CAAC,GAAC,CAAC,CAAC;wCACjB,MAAM,IAAI,KAAK,CAAC,mDAA4C,KAAK,CAAC,MAAM,8BAAoB,GAAC,CAAE,CAAC,CAAC;;;;6BAExG,CAAC,CAAC;;;qBACN,CAAC,CAAC;YACP,CAAC;QAEL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AA1JD,gCA0JC"}
@@ -1,5 +1,6 @@
1
1
  export declare const SAMPLE_TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
2
2
  export declare const SAMPLE_TOKEN_INVALID = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_SNEAKYssw5c";
3
+ export declare const SAMPLE_TOKEN_NONE = "eyJhbGciOiJub25lIn0.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTczNjI5MjEyNH0.";
3
4
  export declare const SAMPLE_PUBKEY = "your-256-bit-secret";
4
5
  export declare const SAMPLE_PRIVATEKEY = "your-256-bit-secret";
5
6
  export declare const SAMPLE_PUBKEY_2 = "wrong-key";
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SAMPLE_PRIVATEKEY_2 = exports.SAMPLE_PUBKEY_2 = exports.SAMPLE_PRIVATEKEY = exports.SAMPLE_PUBKEY = exports.SAMPLE_TOKEN_INVALID = exports.SAMPLE_TOKEN = void 0;
3
+ exports.SAMPLE_PRIVATEKEY_2 = exports.SAMPLE_PUBKEY_2 = exports.SAMPLE_PRIVATEKEY = exports.SAMPLE_PUBKEY = exports.SAMPLE_TOKEN_NONE = exports.SAMPLE_TOKEN_INVALID = exports.SAMPLE_TOKEN = void 0;
4
4
  exports.SAMPLE_TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
5
5
  exports.SAMPLE_TOKEN_INVALID = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_SNEAKYssw5c";
6
+ exports.SAMPLE_TOKEN_NONE = "eyJhbGciOiJub25lIn0.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTczNjI5MjEyNH0.";
6
7
  exports.SAMPLE_PUBKEY = "your-256-bit-secret";
7
8
  exports.SAMPLE_PRIVATEKEY = "your-256-bit-secret";
8
9
  exports.SAMPLE_PUBKEY_2 = "wrong-key";
@@ -1 +1 @@
1
- {"version":3,"file":"hs256.fixture.js","sourceRoot":"","sources":["../../src/fixtures/hs256.fixture.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,6JAA6J,CAAC;AAC7K,QAAA,oBAAoB,GAAG,gKAAgK,CAAC;AACxL,QAAA,aAAa,GAAG,qBAAqB,CAAC;AACtC,QAAA,iBAAiB,GAAG,qBAAqB,CAAC;AAC1C,QAAA,eAAe,GAAG,WAAW,CAAC;AAC9B,QAAA,mBAAmB,GAAG,WAAW,CAAC"}
1
+ {"version":3,"file":"hs256.fixture.js","sourceRoot":"","sources":["../../src/fixtures/hs256.fixture.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,6JAA6J,CAAC;AAC7K,QAAA,oBAAoB,GAAG,gKAAgK,CAAC;AACxL,QAAA,iBAAiB,GAAG,kHAAkH,CAAC;AACvI,QAAA,aAAa,GAAG,qBAAqB,CAAC;AACtC,QAAA,iBAAiB,GAAG,qBAAqB,CAAC;AAC1C,QAAA,eAAe,GAAG,WAAW,CAAC;AAC9B,QAAA,mBAAmB,GAAG,WAAW,CAAC"}
@@ -1,6 +1,13 @@
1
1
  import { JWTEngine, EncodeOptions, Token, DecodeOptions } from "../common/interface";
2
2
  export * from '../common';
3
3
  export declare class NodeJWT implements JWTEngine {
4
+ /**
5
+ * A simple decode used to obtain the header since the jsonwebtoken package does not
6
+ * expose it. It is not used during the validation or decoding paths for this implementation.
7
+ * @param token
8
+ * @returns
9
+ */
10
+ private _decode;
4
11
  decodeUntrusted(token: string): Promise<Token>;
5
12
  encode(claims: Record<string, any>, options: EncodeOptions): Promise<Token>;
6
13
  validate(string: string, options: DecodeOptions): Promise<Token>;
@@ -53,12 +53,35 @@ __exportStar(require("../common"), exports);
53
53
  var NodeJWT = /** @class */ (function () {
54
54
  function NodeJWT() {
55
55
  }
56
+ /**
57
+ * A simple decode used to obtain the header since the jsonwebtoken package does not
58
+ * expose it. It is not used during the validation or decoding paths for this implementation.
59
+ * @param token
60
+ * @returns
61
+ */
62
+ NodeJWT.prototype._decode = function (token) {
63
+ var parts = token.split('.');
64
+ if (parts.length !== 3)
65
+ throw new Error("Invalid token '".concat(token, "': must have 3 parts separated by '.'"));
66
+ return {
67
+ encodedHeader: parts[0],
68
+ encodedPayload: parts[1],
69
+ signature: parts[2],
70
+ header: JSON.parse(Buffer.from(parts[0], 'base64').toString('utf-8')),
71
+ payload: JSON.parse(Buffer.from(parts[1], 'base64').toString('utf-8')),
72
+ };
73
+ };
74
+ ;
56
75
  NodeJWT.prototype.decodeUntrusted = function (token) {
57
76
  return __awaiter(this, void 0, void 0, function () {
58
- var decodedToken;
77
+ var decoded;
59
78
  return __generator(this, function (_a) {
60
- decodedToken = jsonwebtoken.decode(token);
61
- return [2 /*return*/, { claims: decodedToken, string: token }];
79
+ decoded = this._decode(token);
80
+ return [2 /*return*/, {
81
+ claims: decoded.payload,
82
+ header: decoded.header,
83
+ string: token
84
+ }];
62
85
  });
63
86
  });
64
87
  };
@@ -71,6 +94,7 @@ var NodeJWT = /** @class */ (function () {
71
94
  });
72
95
  return [2 /*return*/, {
73
96
  string: string,
97
+ header: this._decode(string).header,
74
98
  claims: claims
75
99
  }];
76
100
  });
@@ -92,6 +116,8 @@ var NodeJWT = /** @class */ (function () {
92
116
  throw new Error("Cannot validate JWT '".concat(string, "': Invalid signature"));
93
117
  else if (e.message === 'invalid algorithm')
94
118
  throw new Error("Cannot validate JWT '".concat(string, "': Token has incorrect algorithm"));
119
+ else if (e.message === 'jwt signature is required')
120
+ throw new Error("Cannot validate JWT '".concat(string, "': Token has incorrect algorithm"));
95
121
  throw e;
96
122
  }
97
123
  try {
@@ -102,6 +128,7 @@ var NodeJWT = /** @class */ (function () {
102
128
  }
103
129
  return [2 /*return*/, {
104
130
  string: string,
131
+ header: this._decode(string).header,
105
132
  claims: claims
106
133
  }];
107
134
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA6C;AAE7C,oCAA2C;AAC3C,4CAA0B;AAE1B;IAAA;IA8CA,CAAC;IA7CS,iCAAe,GAArB,UAAsB,KAAa;;;;gBAC3B,YAAY,GAAuB,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClE,sBAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,EAAC;;;KAClD;IAEK,wBAAM,GAAZ,UAAa,MAA2B,EAAE,OAAsB;;;;gBACxD,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;oBACxD,SAAS,EAAO,OAAO,CAAC,SAAS;iBACpC,CAAC,CAAC;gBAEH,sBAAO;wBACH,MAAM,QAAA;wBACN,MAAM,QAAA;qBACT,EAAA;;;KACJ;IAEK,0BAAQ,GAAd,UAAe,MAAe,EAAE,OAAsB;;;;;gBAGlD,IAAI;oBACA,MAAM,GAAuB,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;wBAC1E,UAAU,EAAE,CAAO,OAAO,CAAC,SAAS,CAAE;wBACtC,gBAAgB,EAAE,IAAI;qBACzB,CAAC,CAAC;iBACN;gBAAC,OAAO,CAAC,EAAE;oBACR,IAAI,CAAC,CAAC,OAAO,KAAK,mBAAmB,EAAO,iBAAiB;wBACzD,MAAM,IAAI,KAAK,CAAC,+BAAwB,MAAM,yBAAsB,CAAC,CAAC;yBACrE,IAAI,CAAC,CAAC,OAAO,KAAK,mBAAmB;wBACtC,MAAM,IAAI,KAAK,CAAC,+BAAwB,MAAM,qCAAkC,CAAC,CAAC;oBAEtF,MAAM,CAAC,CAAC;iBACX;gBAED,IAAI;oBACA,IAAA,uBAAc,EAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAA,OAAO,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC;iBAClE;gBAAC,OAAO,CAAC,EAAE;oBACR,MAAM,IAAI,KAAK,CAAC,+BAAwB,MAAM,gBAAM,CAAC,CAAC,OAAO,CAAE,CAAC,CAAC;iBACpE;gBAED,sBAAO;wBACH,MAAM,QAAA;wBACN,MAAM,QAAA;qBACT,EAAA;;;KACJ;IAEL,cAAC;AAAD,CAAC,AA9CD,IA8CC;AA9CY,0BAAO;AAgDpB,SAAgB,eAAe,KAAiB,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;AAAvE,0CAAuE;AAAA,CAAC;AAC3D,QAAA,GAAG,GAAG,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astronautlabs/jwt",
3
- "version": "1.0.1",
3
+ "version": "1.1.1",
4
4
  "description": "An isomorphic JWT library (works in browser and Node.js)",
5
5
  "main": "dist/node/index.js",
6
6
  "browser": "dist/browser/index.js",
@@ -38,8 +38,9 @@
38
38
  "zone.js": "^0.11.1"
39
39
  },
40
40
  "dependencies": {
41
- "@trust/webcrypto": "^0.9.2",
42
- "btoa": "^1.2.1",
43
- "jsonwebtoken": "^8.5.1"
41
+ "jsonwebtoken": "^9.0.3"
42
+ },
43
+ "engines": {
44
+ "node": ">=11"
44
45
  }
45
46
  }
@@ -82,7 +82,11 @@ export class WebCryptoJWT implements JWTEngine {
82
82
 
83
83
  async decodeUntrusted(token: string): Promise<Token> {
84
84
  let decodedToken = this._decode(token);
85
- return { claims: decodedToken.payload, string: token };
85
+ return {
86
+ claims: decodedToken.payload,
87
+ header: decodedToken.header,
88
+ string: token
89
+ };
86
90
  }
87
91
 
88
92
  private findSubtleCrypto() {
@@ -94,8 +98,10 @@ export class WebCryptoJWT implements JWTEngine {
94
98
 
95
99
 
96
100
  async encode(payload: Record<string, any>, options: EncodeOptions): Promise<Token> {
101
+ let string = await this._sign(payload, options.secretOrKey, this.algorithmOf(options))
97
102
  return {
98
- string: await this._sign(payload, options.secretOrKey, this.algorithmOf(options)),
103
+ string,
104
+ header: this._decode(string).header,
99
105
  claims: payload
100
106
  }
101
107
  }
@@ -126,6 +132,7 @@ export class WebCryptoJWT implements JWTEngine {
126
132
 
127
133
  return {
128
134
  string,
135
+ header: decodedToken.header,
129
136
  claims: decodedToken.payload
130
137
  };
131
138
  }
@@ -28,6 +28,7 @@ export interface ValidateOptions {
28
28
  export interface Token {
29
29
  string : string;
30
30
  claims : Record<string, any>;
31
+ header : Record<string, any>;
31
32
  }
32
33
 
33
34
  export interface DecodedToken {
@@ -39,6 +39,16 @@ export function engineTest(subjectName : string, engine : JWTEngine) {
39
39
  return;
40
40
  }
41
41
 
42
+ throw new Error(`Should not accept token with incorrect algorithm`);
43
+ });
44
+ it('rejects tokens with the \'none\' algorithm', async () => {
45
+ try {
46
+ await engine.validate(HS256Fixtures.SAMPLE_TOKEN_NONE, { algorithm: 'RS256', secretOrKey: RS256Fixtures.SAMPLE_PUBKEY })
47
+ } catch (e) {
48
+ expect(e.message).to.contain('Token has incorrect algorithm');
49
+ return;
50
+ }
51
+
42
52
  throw new Error(`Should not accept token with incorrect algorithm`);
43
53
  });
44
54
  });
@@ -1,5 +1,6 @@
1
1
  export const SAMPLE_TOKEN = `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c`;
2
2
  export const SAMPLE_TOKEN_INVALID = `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_SNEAKYssw5c`;
3
+ export const SAMPLE_TOKEN_NONE = `eyJhbGciOiJub25lIn0.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTczNjI5MjEyNH0.`;
3
4
  export const SAMPLE_PUBKEY = `your-256-bit-secret`;
4
5
  export const SAMPLE_PRIVATEKEY = `your-256-bit-secret`;
5
6
  export const SAMPLE_PUBKEY_2 = `wrong-key`;
package/src/node/index.ts CHANGED
@@ -1,13 +1,37 @@
1
1
  import { JWTEngine, EncodeOptions, Token, DecodeOptions } from "../common/interface";
2
2
  import * as jsonwebtoken from 'jsonwebtoken';
3
- import { Base64URL } from "../browser/base64url";
4
- import { validateExpiry } from "../common";
3
+ import { validateExpiry, DecodedToken } from "../common";
5
4
  export * from '../common';
6
5
 
7
6
  export class NodeJWT implements JWTEngine {
7
+ /**
8
+ * A simple decode used to obtain the header since the jsonwebtoken package does not
9
+ * expose it. It is not used during the validation or decoding paths for this implementation.
10
+ * @param token
11
+ * @returns
12
+ */
13
+ private _decode(token : string): DecodedToken {
14
+ let parts = token.split('.');
15
+ if (parts.length !== 3)
16
+ throw new Error(`Invalid token '${token}': must have 3 parts separated by '.'`);
17
+
18
+ return {
19
+ encodedHeader: parts[0],
20
+ encodedPayload: parts[1],
21
+ signature: parts[2],
22
+
23
+ header: JSON.parse(Buffer.from(parts[0], 'base64').toString('utf-8')),
24
+ payload: JSON.parse(Buffer.from(parts[1], 'base64').toString('utf-8')),
25
+ };
26
+ };
27
+
8
28
  async decodeUntrusted(token: string): Promise<Token> {
9
- let decodedToken = <Record<string,any>>jsonwebtoken.decode(token);
10
- return { claims: decodedToken, string: token };
29
+ let decoded = this._decode(token);
30
+ return {
31
+ claims: decoded.payload,
32
+ header: decoded.header,
33
+ string: token
34
+ };
11
35
  }
12
36
 
13
37
  async encode(claims: Record<string, any>, options: EncodeOptions): Promise<Token> {
@@ -17,6 +41,7 @@ export class NodeJWT implements JWTEngine {
17
41
 
18
42
  return {
19
43
  string,
44
+ header: this._decode(string).header,
20
45
  claims
21
46
  }
22
47
  }
@@ -34,6 +59,8 @@ export class NodeJWT implements JWTEngine {
34
59
  throw new Error(`Cannot validate JWT '${string}': Invalid signature`);
35
60
  else if (e.message === 'invalid algorithm')
36
61
  throw new Error(`Cannot validate JWT '${string}': Token has incorrect algorithm`);
62
+ else if (e.message === 'jwt signature is required')
63
+ throw new Error(`Cannot validate JWT '${string}': Token has incorrect algorithm`);
37
64
 
38
65
  throw e;
39
66
  }
@@ -46,6 +73,7 @@ export class NodeJWT implements JWTEngine {
46
73
 
47
74
  return {
48
75
  string,
76
+ header: this._decode(string).header,
49
77
  claims
50
78
  }
51
79
  }
package/demo.key DELETED
@@ -1,27 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEogIBAAKCAQEAnzyis1ZjfNB0bBgKFMSvvkTtwlvBsaJq7S5wA+kzeVOVpVWw
3
- kWdVha4s38XM/pa/yr47av7+z3VTmvDRyAHcaT92whREFpLv9cj5lTeJSibyr/Mr
4
- m/YtjCZVWgaOYIhwrXwKLqPr/11inWsAkfIytvHWTxZYEcXLgAXFuUuaS3uF9gEi
5
- NQwzGTU1v0FqkqTBr4B8nW3HCN47XUu0t8Y0e+lf4s4OxQawWD79J9/5d3Ry0vbV
6
- 3Am1FtGJiJvOwRsIfVChDpYStTcHTCMqtvWbV6L11BWkpzGXSW4Hv43qa+GSYOD2
7
- QU68Mb59oSk2OB+BtOLpJofmbGEGgvmwyCI9MwIDAQABAoIBACiARq2wkltjtcjs
8
- kFvZ7w1JAORHbEufEO1Eu27zOIlqbgyAcAl7q+/1bip4Z/x1IVES84/yTaM8p0go
9
- amMhvgry/mS8vNi1BN2SAZEnb/7xSxbflb70bX9RHLJqKnp5GZe2jexw+wyXlwaM
10
- +bclUCrh9e1ltH7IvUrRrQnFJfh+is1fRon9Co9Li0GwoN0x0byrrngU8Ak3Y6D9
11
- D8GjQA4Elm94ST3izJv8iCOLSDBmzsPsXfcCUZfmTfZ5DbUDMbMxRnSo3nQeoKGC
12
- 0Lj9FkWcfmLcpGlSXTO+Ww1L7EGq+PT3NtRae1FZPwjddQ1/4V905kyQFLamAA5Y
13
- lSpE2wkCgYEAy1OPLQcZt4NQnQzPz2SBJqQN2P5u3vXl+zNVKP8w4eBv0vWuJJF+
14
- hkGNnSxXQrTkvDOIUddSKOzHHgSg4nY6K02ecyT0PPm/UZvtRpWrnBjcEVtHEJNp
15
- bU9pLD5iZ0J9sbzPU/LxPmuAP2Bs8JmTn6aFRspFrP7W0s1Nmk2jsm0CgYEAyH0X
16
- +jpoqxj4efZfkUrg5GbSEhf+dZglf0tTOA5bVg8IYwtmNk/pniLG/zI7c+GlTc9B
17
- BwfMr59EzBq/eFMI7+LgXaVUsM/sS4Ry+yeK6SJx/otIMWtDfqxsLD8CPMCRvecC
18
- 2Pip4uSgrl0MOebl9XKp57GoaUWRWRHqwV4Y6h8CgYAZhI4mh4qZtnhKjY4TKDjx
19
- QYufXSdLAi9v3FxmvchDwOgn4L+PRVdMwDNms2bsL0m5uPn104EzM6w1vzz1zwKz
20
- 5pTpPI0OjgWN13Tq8+PKvm/4Ga2MjgOgPWQkslulO/oMcXbPwWC3hcRdr9tcQtn9
21
- Imf9n2spL/6EDFId+Hp/7QKBgAqlWdiXsWckdE1Fn91/NGHsc8syKvjjk1onDcw0
22
- NvVi5vcba9oGdElJX3e9mxqUKMrw7msJJv1MX8LWyMQC5L6YNYHDfbPF1q5L4i8j
23
- 8mRex97UVokJQRRA452V2vCO6S5ETgpnad36de3MUxHgCOX3qL382Qx9/THVmbma
24
- 3YfRAoGAUxL/Eu5yvMK8SAt/dJK6FedngcM3JEFNplmtLYVLWhkIlNRGDwkg3I5K
25
- y18Ae9n7dHVueyslrb6weq7dTkYDi3iOYRW8HRkIQh06wEdbxt0shTzAJvvCQfrB
26
- jg/3747WSsf/zBTcHihTRBdAv6OmdhV4/dD5YBfLAkLrd+mX7iE=
27
- -----END RSA PRIVATE KEY-----
package/demo8.key DELETED
@@ -1,28 +0,0 @@
1
- -----BEGIN PRIVATE KEY-----
2
- MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCfPKKzVmN80HRs
3
- GAoUxK++RO3CW8GxomrtLnAD6TN5U5WlVbCRZ1WFrizfxcz+lr/Kvjtq/v7PdVOa
4
- 8NHIAdxpP3bCFEQWku/1yPmVN4lKJvKv8yub9i2MJlVaBo5giHCtfAouo+v/XWKd
5
- awCR8jK28dZPFlgRxcuABcW5S5pLe4X2ASI1DDMZNTW/QWqSpMGvgHydbccI3jtd
6
- S7S3xjR76V/izg7FBrBYPv0n3/l3dHLS9tXcCbUW0YmIm87BGwh9UKEOlhK1NwdM
7
- Iyq29ZtXovXUFaSnMZdJbge/jepr4ZJg4PZBTrwxvn2hKTY4H4G04ukmh+ZsYQaC
8
- +bDIIj0zAgMBAAECggEAKIBGrbCSW2O1yOyQW9nvDUkA5EdsS58Q7US7bvM4iWpu
9
- DIBwCXur7/VuKnhn/HUhURLzj/JNozynSChqYyG+CvL+ZLy82LUE3ZIBkSdv/vFL
10
- Ft+VvvRtf1EcsmoqenkZl7aN7HD7DJeXBoz5tyVQKuH17WW0fsi9StGtCcUl+H6K
11
- zV9Gif0Kj0uLQbCg3THRvKuueBTwCTdjoP0PwaNADgSWb3hJPeLMm/yII4tIMGbO
12
- w+xd9wJRl+ZN9nkNtQMxszFGdKjedB6goYLQuP0WRZx+YtykaVJdM75bDUvsQar4
13
- 9Pc21Fp7UVk/CN11DX/hX3TmTJAUtqYADliVKkTbCQKBgQDLU48tBxm3g1CdDM/P
14
- ZIEmpA3Y/m7e9eX7M1Uo/zDh4G/S9a4kkX6GQY2dLFdCtOS8M4hR11Io7MceBKDi
15
- djorTZ5zJPQ8+b9Rm+1GlaucGNwRW0cQk2ltT2ksPmJnQn2xvM9T8vE+a4A/YGzw
16
- mZOfpoVGykWs/tbSzU2aTaOybQKBgQDIfRf6OmirGPh59l+RSuDkZtISF/51mCV/
17
- S1M4DltWDwhjC2Y2T+meIsb/Mjtz4aVNz0EHB8yvn0TMGr94Uwjv4uBdpVSwz+xL
18
- hHL7J4rpInH+i0gxa0N+rGwsPwI8wJG95wLY+Kni5KCuXQw55uX1cqnnsahpRZFZ
19
- EerBXhjqHwKBgBmEjiaHipm2eEqNjhMoOPFBi59dJ0sCL2/cXGa9yEPA6Cfgv49F
20
- V0zAM2azZuwvSbm4+fXTgTMzrDW/PPXPArPmlOk8jQ6OBY3XdOrz48q+b/gZrYyO
21
- A6A9ZCSyW6U7+gxxds/BYLeFxF2v21xC2f0iZ/2faykv/oQMUh34en/tAoGACqVZ
22
- 2JexZyR0TUWf3X80YexzyzIq+OOTWicNzDQ29WLm9xtr2gZ0SUlfd72bGpQoyvDu
23
- awkm/UxfwtbIxALkvpg1gcN9s8XWrkviLyPyZF7H3tRWiQlBFEDjnZXa8I7pLkRO
24
- Cmdp3fp17cxTEeAI5feovfzZDH39MdWZuZrdh9ECgYBTEv8S7nK8wrxIC390kroV
25
- 52eBwzckQU2mWa0thUtaGQiU1EYPCSDcjkrLXwB72ft0dW57KyWtvrB6rt1ORgOL
26
- eI5hFbwdGQhCHTrAR1vG3SyFPMAm+8JB+sGOD/fvjtZKx//MFNweKFNEF0C/o6Z2
27
- FXj90PlgF8sCQut36ZfuIQ==
28
- -----END PRIVATE KEY-----