@sd-jwt/core 0.1.2-alpha.0 → 0.1.2-alpha.2
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/build/index.d.ts +1 -1
- package/build/index.js +3 -3
- package/build/index.js.map +1 -1
- package/build/jwt/index.d.ts +0 -1
- package/build/jwt/index.js +0 -1
- package/build/jwt/index.js.map +1 -1
- package/build/jwt/jwt.js +10 -10
- package/build/jwt/jwt.js.map +1 -1
- package/build/keyBinding/keyBinding.js +3 -2
- package/build/keyBinding/keyBinding.js.map +1 -1
- package/build/sdJwt/decoys.js +2 -2
- package/build/sdJwt/decoys.js.map +1 -1
- package/build/sdJwt/disclosures.js +7 -7
- package/build/sdJwt/disclosures.js.map +1 -1
- package/build/sdJwt/index.d.ts +0 -1
- package/build/sdJwt/index.js +0 -1
- package/build/sdJwt/index.js.map +1 -1
- package/build/sdJwt/sdJwt.d.ts +1 -1
- package/build/sdJwt/sdJwt.js +32 -23
- package/build/sdJwt/sdJwt.js.map +1 -1
- package/build/sdJwtVc/sdJwtVc.d.ts +1 -1
- package/build/sdJwtVc/sdJwtVc.js +27 -4
- package/build/sdJwtVc/sdJwtVc.js.map +1 -1
- package/build/types/hasher.d.ts +1 -1
- package/build/types/verifier.d.ts +1 -1
- package/package.json +4 -2
- package/build/base64url.d.ts +0 -28
- package/build/base64url.js +0 -40
- package/build/base64url.js.map +0 -1
- package/build/hasherAlgorithm.d.ts +0 -70
- package/build/hasherAlgorithm.js +0 -75
- package/build/hasherAlgorithm.js.map +0 -1
- package/build/jwt/compact.d.ts +0 -6
- package/build/jwt/compact.js +0 -27
- package/build/jwt/compact.js.map +0 -1
- package/build/sdJwt/compact.d.ts +0 -8
- package/build/sdJwt/compact.js +0 -39
- package/build/sdJwt/compact.js.map +0 -1
package/build/index.d.ts
CHANGED
|
@@ -3,9 +3,9 @@ export type { KeyBindingHeader, KeyBindingPayload, KeyBindingOptions, KeyBinding
|
|
|
3
3
|
export type { JwtOptions, JwtAdditionalOptions, JwtVerificationResult } from './jwt';
|
|
4
4
|
export type { Hasher, Signer, Verifier, VerifyOptions, SaltGenerator, DisclosureItem, DisclosureFrame, HasherAndAlgorithm, PresentationFrame } from './types';
|
|
5
5
|
export type { SdJwtVcVerificationResult } from './sdJwtVc';
|
|
6
|
-
export { HasherAlgorithm } from './hasherAlgorithm';
|
|
7
6
|
export { SignatureAndEncryptionAlgorithm } from './signatureAndEncryptionAlgorithm';
|
|
8
7
|
export { SdJwt, Disclosure, SdJwtError } from './sdJwt';
|
|
9
8
|
export { KeyBinding } from './keyBinding';
|
|
10
9
|
export { Jwt, JwtError } from './jwt';
|
|
11
10
|
export { SdJwtVc, SdJwtVcError } from './sdJwtVc';
|
|
11
|
+
export { HasherAlgorithm } from '@sd-jwt/utils';
|
package/build/index.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SdJwtVcError = exports.SdJwtVc = exports.JwtError = exports.Jwt = exports.KeyBinding = exports.SdJwtError = exports.Disclosure = exports.SdJwt = exports.SignatureAndEncryptionAlgorithm =
|
|
4
|
-
var hasherAlgorithm_1 = require("./hasherAlgorithm");
|
|
5
|
-
Object.defineProperty(exports, "HasherAlgorithm", { enumerable: true, get: function () { return hasherAlgorithm_1.HasherAlgorithm; } });
|
|
3
|
+
exports.HasherAlgorithm = exports.SdJwtVcError = exports.SdJwtVc = exports.JwtError = exports.Jwt = exports.KeyBinding = exports.SdJwtError = exports.Disclosure = exports.SdJwt = exports.SignatureAndEncryptionAlgorithm = void 0;
|
|
6
4
|
var signatureAndEncryptionAlgorithm_1 = require("./signatureAndEncryptionAlgorithm");
|
|
7
5
|
Object.defineProperty(exports, "SignatureAndEncryptionAlgorithm", { enumerable: true, get: function () { return signatureAndEncryptionAlgorithm_1.SignatureAndEncryptionAlgorithm; } });
|
|
8
6
|
var sdJwt_1 = require("./sdJwt");
|
|
@@ -17,4 +15,6 @@ Object.defineProperty(exports, "JwtError", { enumerable: true, get: function ()
|
|
|
17
15
|
var sdJwtVc_1 = require("./sdJwtVc");
|
|
18
16
|
Object.defineProperty(exports, "SdJwtVc", { enumerable: true, get: function () { return sdJwtVc_1.SdJwtVc; } });
|
|
19
17
|
Object.defineProperty(exports, "SdJwtVcError", { enumerable: true, get: function () { return sdJwtVc_1.SdJwtVcError; } });
|
|
18
|
+
var utils_1 = require("@sd-jwt/utils");
|
|
19
|
+
Object.defineProperty(exports, "HasherAlgorithm", { enumerable: true, get: function () { return utils_1.HasherAlgorithm; } });
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAkCA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAkCA,qFAAmF;AAA1E,kJAAA,+BAA+B,OAAA;AAExC,iCAAuD;AAA9C,8FAAA,KAAK,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,mGAAA,UAAU,OAAA;AACtC,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,6BAAqC;AAA5B,0FAAA,GAAG,OAAA;AAAE,+FAAA,QAAQ,OAAA;AACtB,qCAAiD;AAAxC,kGAAA,OAAO,OAAA;AAAE,uGAAA,YAAY,OAAA;AAE9B,uCAA+C;AAAtC,wGAAA,eAAe,OAAA"}
|
package/build/jwt/index.d.ts
CHANGED
package/build/jwt/index.js
CHANGED
|
@@ -16,5 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./jwt"), exports);
|
|
18
18
|
__exportStar(require("./error"), exports);
|
|
19
|
-
__exportStar(require("./compact"), exports);
|
|
20
19
|
//# sourceMappingURL=index.js.map
|
package/build/jwt/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jwt/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,0CAAuB
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jwt/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,0CAAuB"}
|
package/build/jwt/jwt.js
CHANGED
|
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.Jwt = void 0;
|
|
13
|
-
const
|
|
13
|
+
const utils_1 = require("@sd-jwt/utils");
|
|
14
14
|
const error_1 = require("./error");
|
|
15
|
-
const
|
|
16
|
-
const
|
|
15
|
+
const utils_2 = require("../utils");
|
|
16
|
+
const decode_1 = require("@sd-jwt/decode");
|
|
17
17
|
class Jwt {
|
|
18
18
|
constructor(options, additionalOptions) {
|
|
19
19
|
this.header = options === null || options === void 0 ? void 0 : options.header;
|
|
@@ -31,7 +31,7 @@ class Jwt {
|
|
|
31
31
|
*
|
|
32
32
|
*/
|
|
33
33
|
static fromCompact(compact) {
|
|
34
|
-
const { header, payload, signature } = (0,
|
|
34
|
+
const { header, payload, signature } = (0, decode_1.jwtFromCompact)(compact);
|
|
35
35
|
const jwt = new Jwt({
|
|
36
36
|
header,
|
|
37
37
|
payload,
|
|
@@ -186,11 +186,11 @@ class Jwt {
|
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
assertClaimInObject(object, claimKey, claimValue) {
|
|
189
|
-
const value = (0,
|
|
189
|
+
const value = (0, utils_2.getValueByKeyAnyLevel)(object, claimKey);
|
|
190
190
|
if (!value) {
|
|
191
191
|
throw new error_1.JwtError(`Claim key '${claimKey}' not found in any level`);
|
|
192
192
|
}
|
|
193
|
-
if (claimValue && !(0,
|
|
193
|
+
if (claimValue && !(0, utils_2.simpleDeepEqual)(value, claimValue)) {
|
|
194
194
|
throw new error_1.JwtError(`Claim key '${claimKey}' was found, but values did not match`);
|
|
195
195
|
}
|
|
196
196
|
}
|
|
@@ -219,7 +219,7 @@ class Jwt {
|
|
|
219
219
|
return this.getClaimInObject(this.header, claimKey);
|
|
220
220
|
}
|
|
221
221
|
getClaimInObject(object, claimKey) {
|
|
222
|
-
const value = (0,
|
|
222
|
+
const value = (0, utils_2.getValueByKeyAnyLevel)(object, claimKey);
|
|
223
223
|
if (!value) {
|
|
224
224
|
throw new error_1.JwtError(`Claim key '${claimKey}' not found in any level`);
|
|
225
225
|
}
|
|
@@ -252,11 +252,11 @@ class Jwt {
|
|
|
252
252
|
}
|
|
253
253
|
get compactHeader() {
|
|
254
254
|
this.assertHeader();
|
|
255
|
-
return
|
|
255
|
+
return utils_1.Base64url.encodeFromJson(this.header);
|
|
256
256
|
}
|
|
257
257
|
get compactPayload() {
|
|
258
258
|
this.assertPayload();
|
|
259
|
-
return
|
|
259
|
+
return utils_1.Base64url.encodeFromJson(this.payload);
|
|
260
260
|
}
|
|
261
261
|
/**
|
|
262
262
|
*
|
|
@@ -274,7 +274,7 @@ class Jwt {
|
|
|
274
274
|
if (!this.signature) {
|
|
275
275
|
yield this.signAndAdd();
|
|
276
276
|
}
|
|
277
|
-
const encodedSignature =
|
|
277
|
+
const encodedSignature = utils_1.Base64url.encode(this.signature);
|
|
278
278
|
return `${this.compactHeader}.${this.compactPayload}.${encodedSignature}`;
|
|
279
279
|
});
|
|
280
280
|
}
|
package/build/jwt/jwt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/jwt/jwt.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/jwt/jwt.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.KeyBinding = void 0;
|
|
13
|
+
const decode_1 = require("@sd-jwt/decode");
|
|
13
14
|
const jwt_1 = require("../jwt");
|
|
14
15
|
class KeyBinding extends jwt_1.Jwt {
|
|
15
16
|
constructor(options, additionalOptions) {
|
|
@@ -60,8 +61,8 @@ class KeyBinding extends jwt_1.Jwt {
|
|
|
60
61
|
*
|
|
61
62
|
*/
|
|
62
63
|
static fromCompact(compact) {
|
|
63
|
-
const
|
|
64
|
-
const keyBinding = KeyBinding
|
|
64
|
+
const { header, payload, signature } = (0, decode_1.keyBindingFromCompact)(compact);
|
|
65
|
+
const keyBinding = new KeyBinding({ header, payload, signature });
|
|
65
66
|
return keyBinding;
|
|
66
67
|
}
|
|
67
68
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyBinding.js","sourceRoot":"","sources":["../../src/keyBinding/keyBinding.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAKe;AAoCf,MAAa,UAGX,SAAQ,SAAoB;IAG1B,YACI,OAA4C,EAC5C,iBAAuD;QAEvD,KAAK,CAAC,OAAO,CAAC,CAAA;QAEd,IAAI,CAAC,MAAM,GAAG,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAwB,CAAA;IAC7D,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,OAAO,CAGnB,GAAyB;QACvB,MAAM,UAAU,GAAG,IAAI,UAAU,CAC7B;YACI,MAAM,EAAE,GAAG,CAAC,MAAkC;YAC9C,OAAO,EAAE,GAAG,CAAC,OAAqC;YAClD,SAAS,EAAE,GAAG,CAAC,SAAS;SAC3B,EACD,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CACzB,CAAA;QAED,UAAU,CAAC,wBAAwB,EAAE,CAAA;QAErC,OAAO,UAAU,CAAA;IACrB,CAAC;IAED;;;;;;;;;OASG;IACmB,MAAM,CACxB,eAAiC,EACjC,cAA8C,EAC9C,YAAsC;;;;;YAEtC,IAAI,CAAC,wBAAwB,EAAE,CAAA;YAE/B,MAAM,qBAAqB,GAAG,MAAM,OAAM,MAAM,YAC5C,eAAe,EACf,cAAc,EACd,YAAY,CACf,CAAA;YAED,OAAO,qBAAqB,CAAA;QAChC,CAAC;KAAA;IAED;;;;;;OAMG;IACI,MAAM,CAAU,WAAW,CAGhC,OAAe;QACb,MAAM,
|
|
1
|
+
{"version":3,"file":"keyBinding.js","sourceRoot":"","sources":["../../src/keyBinding/keyBinding.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAsD;AACtD,gCAKe;AAoCf,MAAa,UAGX,SAAQ,SAAoB;IAG1B,YACI,OAA4C,EAC5C,iBAAuD;QAEvD,KAAK,CAAC,OAAO,CAAC,CAAA;QAEd,IAAI,CAAC,MAAM,GAAG,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAwB,CAAA;IAC7D,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,OAAO,CAGnB,GAAyB;QACvB,MAAM,UAAU,GAAG,IAAI,UAAU,CAC7B;YACI,MAAM,EAAE,GAAG,CAAC,MAAkC;YAC9C,OAAO,EAAE,GAAG,CAAC,OAAqC;YAClD,SAAS,EAAE,GAAG,CAAC,SAAS;SAC3B,EACD,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CACzB,CAAA;QAED,UAAU,CAAC,wBAAwB,EAAE,CAAA;QAErC,OAAO,UAAU,CAAA;IACrB,CAAC;IAED;;;;;;;;;OASG;IACmB,MAAM,CACxB,eAAiC,EACjC,cAA8C,EAC9C,YAAsC;;;;;YAEtC,IAAI,CAAC,wBAAwB,EAAE,CAAA;YAE/B,MAAM,qBAAqB,GAAG,MAAM,OAAM,MAAM,YAC5C,eAAe,EACf,cAAc,EACd,YAAY,CACf,CAAA;YAED,OAAO,qBAAqB,CAAA;QAChC,CAAC;KAAA;IAED;;;;;;OAMG;IACI,MAAM,CAAU,WAAW,CAGhC,OAAe;QACb,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAA,8BAAqB,EAG1D,OAAO,CAAC,CAAA;QAEV,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;QAEjE,OAAO,UAIN,CAAA;IACL,CAAC;IAED;;;;;;OAMG;IACU,wBAAwB;;YACjC,IAAI,CAAC;gBACD,IAAI,CAAC,YAAY,EAAE,CAAA;gBACnB,IAAI,CAAC,aAAa,EAAE,CAAA;gBAEpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;oBAClB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;gBAC3B,CAAC;gBAED,IAAI,CAAC,eAAe,EAAE,CAAA;gBAEtB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;gBACzC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;gBAE/B,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;gBAChC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;gBAClC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;YACpC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;oBACrB,CAAC,CAAC,OAAO,GAAG,uDAAuD,CAAC,CAAC,OAAO,EAAE,CAAA;gBAClF,CAAC;gBAED,MAAM,CAAC,CAAA;YACX,CAAC;QACL,CAAC;KAAA;CACJ;AA3HD,gCA2HC"}
|
package/build/sdJwt/decoys.js
CHANGED
|
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.createDecoys = void 0;
|
|
13
13
|
const error_1 = require("./error");
|
|
14
|
-
const
|
|
14
|
+
const utils_1 = require("@sd-jwt/utils");
|
|
15
15
|
const createDecoys = (count, saltGenerator, hasher) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
16
|
if (count < 0) {
|
|
17
17
|
throw new error_1.SdJwtError(`Negative count of ${count} is not allowed.`);
|
|
@@ -26,7 +26,7 @@ const createDecoys = (count, saltGenerator, hasher) => __awaiter(void 0, void 0,
|
|
|
26
26
|
for (let i = 0; i < count; i++) {
|
|
27
27
|
const salt = yield saltGenerator();
|
|
28
28
|
const decoy = yield hasher(salt);
|
|
29
|
-
const encodedDecoy =
|
|
29
|
+
const encodedDecoy = utils_1.Base64url.encode(decoy);
|
|
30
30
|
decoys.push(encodedDecoy);
|
|
31
31
|
}
|
|
32
32
|
return decoys;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoys.js","sourceRoot":"","sources":["../../src/sdJwt/decoys.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"decoys.js","sourceRoot":"","sources":["../../src/sdJwt/decoys.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAoC;AACpC,yCAAyC;AAElC,MAAM,YAAY,GAAG,CACxB,KAAa,EACb,aAA4B,EAC5B,MAAc,EAChB,EAAE;IACA,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,kBAAU,CAAC,qBAAqB,KAAK,kBAAkB,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,kBAAU,CAAC,+BAA+B,CAAC,CAAA;IACzD,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,kBAAU,CAAC,qCAAqC,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAA;QAClC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;QAChC,MAAM,YAAY,GAAG,iBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC5C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,MAAM,CAAA;AACjB,CAAC,CAAA,CAAA;AAzBY,QAAA,YAAY,gBAyBxB"}
|
|
@@ -13,9 +13,9 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
13
13
|
var _Disclosure_digest;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.isDisclosureWithDigest = exports.Disclosure = void 0;
|
|
16
|
-
const
|
|
16
|
+
const utils_1 = require("@sd-jwt/utils");
|
|
17
17
|
const error_1 = require("./error");
|
|
18
|
-
const
|
|
18
|
+
const utils_2 = require("../utils");
|
|
19
19
|
class Disclosure {
|
|
20
20
|
constructor(salt, value, key) {
|
|
21
21
|
_Disclosure_digest.set(this, void 0);
|
|
@@ -30,7 +30,7 @@ class Disclosure {
|
|
|
30
30
|
this.value = value;
|
|
31
31
|
}
|
|
32
32
|
static fromString(s) {
|
|
33
|
-
const item =
|
|
33
|
+
const item = utils_1.Base64url.decodeToJson(s);
|
|
34
34
|
return Disclosure.fromArray(item);
|
|
35
35
|
}
|
|
36
36
|
static fromArray(item) {
|
|
@@ -39,7 +39,7 @@ class Disclosure {
|
|
|
39
39
|
: new Disclosure(item[0], item[2], item[1]);
|
|
40
40
|
}
|
|
41
41
|
get encoded() {
|
|
42
|
-
return
|
|
42
|
+
return utils_1.Base64url.encodeFromJson(this.decoded);
|
|
43
43
|
}
|
|
44
44
|
get decoded() {
|
|
45
45
|
return this.key
|
|
@@ -72,15 +72,15 @@ class Disclosure {
|
|
|
72
72
|
// Calculate digest
|
|
73
73
|
const hashResult = hasher(this.encoded);
|
|
74
74
|
// If promise, wait for it to resolve
|
|
75
|
-
if ((0,
|
|
75
|
+
if ((0, utils_2.isPromise)(hashResult)) {
|
|
76
76
|
return hashResult.then((hash) => {
|
|
77
|
-
__classPrivateFieldSet(this, _Disclosure_digest,
|
|
77
|
+
__classPrivateFieldSet(this, _Disclosure_digest, utils_1.Base64url.encode(hash), "f");
|
|
78
78
|
// We know for sure that digest is defined now
|
|
79
79
|
return this;
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
else {
|
|
83
|
-
__classPrivateFieldSet(this, _Disclosure_digest,
|
|
83
|
+
__classPrivateFieldSet(this, _Disclosure_digest, utils_1.Base64url.encode(hashResult), "f");
|
|
84
84
|
// We know for sure that digest is defined now
|
|
85
85
|
return this;
|
|
86
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disclosures.js","sourceRoot":"","sources":["../../src/sdJwt/disclosures.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"disclosures.js","sourceRoot":"","sources":["../../src/sdJwt/disclosures.ts"],"names":[],"mappings":"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"}
|
package/build/sdJwt/index.d.ts
CHANGED
package/build/sdJwt/index.js
CHANGED
|
@@ -19,7 +19,6 @@ __exportStar(require("./sdJwt"), exports);
|
|
|
19
19
|
__exportStar(require("./disclosures"), exports);
|
|
20
20
|
__exportStar(require("./decoys"), exports);
|
|
21
21
|
__exportStar(require("./disclosureFrame"), exports);
|
|
22
|
-
__exportStar(require("./compact"), exports);
|
|
23
22
|
__exportStar(require("./types"), exports);
|
|
24
23
|
__exportStar(require("./presentationFrame"), exports);
|
|
25
24
|
//# sourceMappingURL=index.js.map
|
package/build/sdJwt/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdJwt/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,0CAAuB;AACvB,gDAA6B;AAC7B,2CAAwB;AACxB,oDAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdJwt/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,0CAAuB;AACvB,gDAA6B;AAC7B,2CAAwB;AACxB,oDAAiC;AACjC,0CAAuB;AACvB,sDAAmC"}
|
package/build/sdJwt/sdJwt.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ import { Jwt, JwtAdditionalOptions, JwtVerificationResult } from '../jwt/jwt';
|
|
|
3
3
|
import { KeyBinding } from '../keyBinding';
|
|
4
4
|
import { ReturnSdJwtWithHeaderAndPayload, ReturnSdJwtWithKeyBinding, ReturnSdJwtWithPayload } from './types';
|
|
5
5
|
import { Disclosure, DisclosureWithDigest } from './disclosures';
|
|
6
|
-
import { HasherAlgorithm } from '../hasherAlgorithm';
|
|
7
6
|
import { PresentationFrame } from '../types/present';
|
|
7
|
+
import { HasherAlgorithm } from '@sd-jwt/utils';
|
|
8
8
|
export type SdJwtToCompactOptions<DisclosablePayload extends Record<string, unknown>> = {
|
|
9
9
|
disclosureFrame?: DisclosureFrame<DisclosablePayload>;
|
|
10
10
|
shouldApplyFrame?: boolean;
|
package/build/sdJwt/sdJwt.js
CHANGED
|
@@ -10,15 +10,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.SdJwt = void 0;
|
|
13
|
-
const
|
|
13
|
+
const utils_1 = require("@sd-jwt/utils");
|
|
14
14
|
const error_1 = require("./error");
|
|
15
15
|
const jwt_1 = require("../jwt/jwt");
|
|
16
16
|
const keyBinding_1 = require("../keyBinding");
|
|
17
|
-
const
|
|
17
|
+
const disclosures_1 = require("./disclosures");
|
|
18
18
|
const disclosureFrame_1 = require("./disclosureFrame");
|
|
19
19
|
const swapClaim_1 = require("./swapClaim");
|
|
20
|
-
const
|
|
20
|
+
const utils_2 = require("../utils");
|
|
21
21
|
const presentationFrame_1 = require("./presentationFrame");
|
|
22
|
+
const decode_1 = require("@sd-jwt/decode");
|
|
22
23
|
class SdJwt extends jwt_1.Jwt {
|
|
23
24
|
constructor(options, additionalOptions) {
|
|
24
25
|
super(options, additionalOptions);
|
|
@@ -46,7 +47,14 @@ class SdJwt extends jwt_1.Jwt {
|
|
|
46
47
|
*
|
|
47
48
|
*/
|
|
48
49
|
static fromCompact(compact) {
|
|
49
|
-
const { disclosures, keyBinding, signature, payload, header } = (0,
|
|
50
|
+
const { disclosures: d, keyBinding: kb, signature, payload, header } = (0, decode_1.sdJwtFromCompact)(compact);
|
|
51
|
+
const disclosures = d === null || d === void 0 ? void 0 : d.map((disclosure) => new disclosures_1.Disclosure(disclosure.salt, disclosure.value, disclosure.key));
|
|
52
|
+
const keyBinding = kb
|
|
53
|
+
? new keyBinding_1.KeyBinding()
|
|
54
|
+
.withHeader(kb.header)
|
|
55
|
+
.withPayload(kb.payload)
|
|
56
|
+
.withSignature(kb.signature)
|
|
57
|
+
: undefined;
|
|
50
58
|
const sdJwt = new SdJwt({
|
|
51
59
|
header,
|
|
52
60
|
payload,
|
|
@@ -202,7 +210,7 @@ class SdJwt extends jwt_1.Jwt {
|
|
|
202
210
|
*/
|
|
203
211
|
assertHashAndAlgorithm() {
|
|
204
212
|
if (!this.hasherAndAlgorithm) {
|
|
205
|
-
throw new error_1.SdJwtError('A hasher and algorithm must be set in order to create a digest of a disclosure. You can set it with this.
|
|
213
|
+
throw new error_1.SdJwtError('A hasher and algorithm must be set in order to create a digest of a disclosure. You can set it with this.withHasher()');
|
|
206
214
|
}
|
|
207
215
|
}
|
|
208
216
|
/**
|
|
@@ -214,7 +222,7 @@ class SdJwt extends jwt_1.Jwt {
|
|
|
214
222
|
*/
|
|
215
223
|
assertClaimInDisclosureFrame(claimKey) {
|
|
216
224
|
this.assertDisclosureFrame();
|
|
217
|
-
const value = (0,
|
|
225
|
+
const value = (0, utils_2.getValueByKeyAnyLevel)(this.disclosureFrame, claimKey);
|
|
218
226
|
if (!value) {
|
|
219
227
|
throw new error_1.SdJwtError(`Claim key '${claimKey}' not found in any level of the disclosureFrame`);
|
|
220
228
|
}
|
|
@@ -293,7 +301,7 @@ class SdJwt extends jwt_1.Jwt {
|
|
|
293
301
|
const { isValid } = yield this.keyBinding.verify(verifier, [], publicKeyJwk);
|
|
294
302
|
jwtVerificationResult.isKeyBindingValid = isValid;
|
|
295
303
|
}
|
|
296
|
-
const claimKeys = (0,
|
|
304
|
+
const claimKeys = (0, utils_2.getAllKeys)(this.payload).concat(((_a = this.disclosures) !== null && _a !== void 0 ? _a : []).map((d) => d.decoded[1]));
|
|
297
305
|
if (requiredClaimKeys) {
|
|
298
306
|
jwtVerificationResult.areRequiredClaimsIncluded =
|
|
299
307
|
requiredClaimKeys.every((key) => claimKeys.includes(key));
|
|
@@ -323,15 +331,21 @@ class SdJwt extends jwt_1.Jwt {
|
|
|
323
331
|
try {
|
|
324
332
|
this.assertClaimInDisclosureFrame(claimKey);
|
|
325
333
|
}
|
|
326
|
-
catch (
|
|
327
|
-
|
|
334
|
+
catch (error) {
|
|
335
|
+
// Check if it's an SdJwtError (to prevent other errors making the method not throw)
|
|
336
|
+
if (error instanceof error_1.SdJwtError)
|
|
337
|
+
return;
|
|
328
338
|
}
|
|
329
339
|
throw new error_1.SdJwtError(`Claim key '${claimKey}' was found in the disclosure frame. This claim is not allowed to be selectively disclosed`);
|
|
330
340
|
}
|
|
331
341
|
assertNonSelectivelyDisclosableClaims() {
|
|
332
342
|
if (!this.disclosureFrame)
|
|
333
343
|
return;
|
|
334
|
-
|
|
344
|
+
// NOTE: we don't include any properties here as it is a SHOULD
|
|
345
|
+
// in the spec, and not a MUST
|
|
346
|
+
for (const claimKey of ['_sd', '_sd_alg', '...']) {
|
|
347
|
+
this.assertNonSelectivelyDisclosableClaim(claimKey);
|
|
348
|
+
}
|
|
335
349
|
}
|
|
336
350
|
/**
|
|
337
351
|
*
|
|
@@ -365,7 +379,7 @@ class SdJwt extends jwt_1.Jwt {
|
|
|
365
379
|
});
|
|
366
380
|
}
|
|
367
381
|
__toCompact(disclosures = this.disclosures, shouldApplyFrame = true) {
|
|
368
|
-
var _a, _b;
|
|
382
|
+
var _a, _b, _c;
|
|
369
383
|
return __awaiter(this, void 0, void 0, function* () {
|
|
370
384
|
this.assertHeader();
|
|
371
385
|
this.assertPayload();
|
|
@@ -374,21 +388,16 @@ class SdJwt extends jwt_1.Jwt {
|
|
|
374
388
|
yield this.applyDisclosureFrame();
|
|
375
389
|
}
|
|
376
390
|
disclosures !== null && disclosures !== void 0 ? disclosures : (disclosures = this.disclosures);
|
|
377
|
-
const compactHeader =
|
|
378
|
-
const compactPayload =
|
|
391
|
+
const compactHeader = utils_1.Base64url.encode(JSON.stringify(this.header));
|
|
392
|
+
const compactPayload = utils_1.Base64url.encode(JSON.stringify(this.payload));
|
|
379
393
|
const sSignature = this.signature
|
|
380
|
-
?
|
|
381
|
-
:
|
|
394
|
+
? utils_1.Base64url.encode(this.signature)
|
|
395
|
+
: utils_1.Base64url.encode((yield this.signAndAdd()).signature);
|
|
382
396
|
const sDisclosures = disclosures && disclosures.length > 0
|
|
383
397
|
? `~${disclosures.join('~')}~`
|
|
384
|
-
: '';
|
|
385
|
-
const kb = yield ((_b = this.keyBinding) === null || _b === void 0 ? void 0 : _b.toCompact());
|
|
386
|
-
|
|
387
|
-
? sDisclosures.length > 0
|
|
388
|
-
? kb
|
|
389
|
-
: `~${kb}`
|
|
390
|
-
: '';
|
|
391
|
-
return `${compactHeader}.${compactPayload}.${sSignature}${sDisclosures}${sKeyBinding}`;
|
|
398
|
+
: '~';
|
|
399
|
+
const kb = (_c = (yield ((_b = this.keyBinding) === null || _b === void 0 ? void 0 : _b.toCompact()))) !== null && _c !== void 0 ? _c : '';
|
|
400
|
+
return `${compactHeader}.${compactPayload}.${sSignature}${sDisclosures}${kb}`;
|
|
392
401
|
});
|
|
393
402
|
}
|
|
394
403
|
}
|
package/build/sdJwt/sdJwt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdJwt.js","sourceRoot":"","sources":["../../src/sdJwt/sdJwt.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"sdJwt.js","sourceRoot":"","sources":["../../src/sdJwt/sdJwt.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { ReturnSdJwtWithHeaderAndPayload } from '../sdJwt';
|
|
|
2
2
|
import { SdJwt, SdJwtVerificationResult } from '../sdJwt';
|
|
3
3
|
import { Verifier } from '../types';
|
|
4
4
|
export type SdJwtVcVerificationResult = SdJwtVerificationResult & {
|
|
5
|
-
containsExpectedKeyBinding
|
|
5
|
+
containsExpectedKeyBinding?: boolean;
|
|
6
6
|
containsRequiredVcProperties: boolean;
|
|
7
7
|
};
|
|
8
8
|
export declare class SdJwtVc<Header extends Record<string, unknown> = Record<string, unknown>, Payload extends Record<string, unknown> = Record<string, unknown>> extends SdJwt<Header, Payload> {
|
package/build/sdJwtVc/sdJwtVc.js
CHANGED
|
@@ -13,11 +13,24 @@ exports.SdJwtVc = void 0;
|
|
|
13
13
|
const sdJwt_1 = require("../sdJwt");
|
|
14
14
|
const sdJwt_2 = require("../sdJwt");
|
|
15
15
|
const jwt_1 = require("../jwt");
|
|
16
|
+
const decode_1 = require("@sd-jwt/decode");
|
|
17
|
+
const keyBinding_1 = require("../keyBinding");
|
|
16
18
|
class SdJwtVc extends sdJwt_2.SdJwt {
|
|
17
19
|
assertNonSelectivelyDisclosableClaims() {
|
|
18
20
|
if (!this.disclosureFrame)
|
|
19
21
|
return;
|
|
20
|
-
|
|
22
|
+
const nonSelectivelyDisclosableClaims = [
|
|
23
|
+
'iss',
|
|
24
|
+
'iat',
|
|
25
|
+
'nbf',
|
|
26
|
+
'exp',
|
|
27
|
+
'cnf',
|
|
28
|
+
'vct',
|
|
29
|
+
'status'
|
|
30
|
+
];
|
|
31
|
+
for (const claimKey of nonSelectivelyDisclosableClaims) {
|
|
32
|
+
this.assertNonSelectivelyDisclosableClaim(claimKey);
|
|
33
|
+
}
|
|
21
34
|
}
|
|
22
35
|
validateSdJwtVc(expectedCnfClaim) {
|
|
23
36
|
try {
|
|
@@ -29,7 +42,9 @@ class SdJwtVc extends sdJwt_2.SdJwt {
|
|
|
29
42
|
this.assertClaimInPayload('iss');
|
|
30
43
|
this.assertClaimInPayload('vct');
|
|
31
44
|
this.assertClaimInPayload('iat');
|
|
32
|
-
|
|
45
|
+
if (expectedCnfClaim) {
|
|
46
|
+
this.assertClaimInPayload('cnf', expectedCnfClaim);
|
|
47
|
+
}
|
|
33
48
|
}
|
|
34
49
|
catch (e) {
|
|
35
50
|
if (e instanceof Error) {
|
|
@@ -46,7 +61,14 @@ class SdJwtVc extends sdJwt_2.SdJwt {
|
|
|
46
61
|
*
|
|
47
62
|
*/
|
|
48
63
|
static fromCompact(compact) {
|
|
49
|
-
const { disclosures, keyBinding, signature, payload, header } = (0,
|
|
64
|
+
const { disclosures: d, keyBinding: kb, signature, payload, header } = (0, decode_1.sdJwtVcFromCompact)(compact);
|
|
65
|
+
const disclosures = d === null || d === void 0 ? void 0 : d.map((disclosure) => new sdJwt_1.Disclosure(disclosure.salt, disclosure.value, disclosure.key));
|
|
66
|
+
const keyBinding = kb
|
|
67
|
+
? new keyBinding_1.KeyBinding()
|
|
68
|
+
.withHeader(kb.header)
|
|
69
|
+
.withPayload(kb.payload)
|
|
70
|
+
.withSignature(kb.signature)
|
|
71
|
+
: undefined;
|
|
50
72
|
const sdJwtVc = new SdJwtVc({
|
|
51
73
|
header,
|
|
52
74
|
payload,
|
|
@@ -54,7 +76,6 @@ class SdJwtVc extends sdJwt_2.SdJwt {
|
|
|
54
76
|
disclosures,
|
|
55
77
|
keyBinding
|
|
56
78
|
});
|
|
57
|
-
sdJwtVc.validateSdJwtVc();
|
|
58
79
|
return sdJwtVc;
|
|
59
80
|
}
|
|
60
81
|
/**
|
|
@@ -94,6 +115,8 @@ class SdJwtVc extends sdJwt_2.SdJwt {
|
|
|
94
115
|
else {
|
|
95
116
|
sdJwtVerificationResult.containsRequiredVcProperties = false;
|
|
96
117
|
}
|
|
118
|
+
// The verification result is not valid if an error occurred
|
|
119
|
+
sdJwtVerificationResult.isValid = false;
|
|
97
120
|
}
|
|
98
121
|
return sdJwtVerificationResult;
|
|
99
122
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdJwtVc.js","sourceRoot":"","sources":["../../src/sdJwtVc/sdJwtVc.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"sdJwtVc.js","sourceRoot":"","sources":["../../src/sdJwtVc/sdJwtVc.ts"],"names":[],"mappings":"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"}
|
package/build/types/hasher.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { HasherAlgorithm } from '@sd-jwt/utils';
|
|
1
2
|
import { OrPromise } from './utils';
|
|
2
|
-
import { HasherAlgorithm } from '../hasherAlgorithm';
|
|
3
3
|
/**
|
|
4
4
|
* A simple hash function that takes the base64url encoded variant of the disclosure and returns the digest as a byte array
|
|
5
5
|
*/
|
|
@@ -11,4 +11,4 @@ export type VerifyOptions<Header extends Record<string, unknown>> = {
|
|
|
11
11
|
*/
|
|
12
12
|
publicKeyJwk?: Record<string, unknown>;
|
|
13
13
|
};
|
|
14
|
-
export type Verifier<Header extends Record<string, unknown> = Record<string, unknown>, options extends
|
|
14
|
+
export type Verifier<Header extends Record<string, unknown> = Record<string, unknown>, options extends VerifyOptions<Header> = VerifyOptions<Header>> = (options: options) => OrPromise<boolean>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sd-jwt/core",
|
|
3
|
-
"version": "0.1.2-alpha.
|
|
3
|
+
"version": "0.1.2-alpha.2",
|
|
4
4
|
"description": "Core implementation of sd-jwt Draft 06 and sd-jwt-vc Draft 01",
|
|
5
5
|
"license": "(MIT OR Apache-2.0)",
|
|
6
6
|
"author": "Berend Sliedrecht <sliedrecht@berend.io>",
|
|
@@ -40,7 +40,9 @@
|
|
|
40
40
|
"release": "release-it"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"
|
|
43
|
+
"@sd-jwt/decode": "workspace:*",
|
|
44
|
+
"@sd-jwt/types": "workspace:*",
|
|
45
|
+
"@sd-jwt/utils": "workspace:*"
|
|
44
46
|
},
|
|
45
47
|
"devDependencies": {
|
|
46
48
|
"@types/node": "*",
|
package/build/base64url.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Buffer } from 'buffer';
|
|
3
|
-
export declare class Base64url {
|
|
4
|
-
/**
|
|
5
|
-
*
|
|
6
|
-
* Encode into base64url string
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
static encode(input: string | Uint8Array | Buffer): string;
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
* Encode from JSON into a base64url string
|
|
13
|
-
*
|
|
14
|
-
*/
|
|
15
|
-
static encodeFromJson(input: Record<string, unknown> | Array<unknown>): string;
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
* Decode from base64url into JSON
|
|
19
|
-
*
|
|
20
|
-
*/
|
|
21
|
-
static decodeToJson<T extends Record<string, unknown> | Array<unknown> = Record<string, unknown>>(input: string): T;
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
* Decode from base64url into a byte array
|
|
25
|
-
*
|
|
26
|
-
*/
|
|
27
|
-
static decode(input: string): Uint8Array;
|
|
28
|
-
}
|
package/build/base64url.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Base64url = void 0;
|
|
4
|
-
const buffer_1 = require("buffer");
|
|
5
|
-
class Base64url {
|
|
6
|
-
/**
|
|
7
|
-
*
|
|
8
|
-
* Encode into base64url string
|
|
9
|
-
*
|
|
10
|
-
*/
|
|
11
|
-
static encode(input) {
|
|
12
|
-
return buffer_1.Buffer.from(input).toString('base64url');
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
*
|
|
16
|
-
* Encode from JSON into a base64url string
|
|
17
|
-
*
|
|
18
|
-
*/
|
|
19
|
-
static encodeFromJson(input) {
|
|
20
|
-
return buffer_1.Buffer.from(JSON.stringify(input)).toString('base64url');
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
* Decode from base64url into JSON
|
|
25
|
-
*
|
|
26
|
-
*/
|
|
27
|
-
static decodeToJson(input) {
|
|
28
|
-
return JSON.parse(buffer_1.Buffer.from(input, 'base64url').toString());
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
*
|
|
32
|
-
* Decode from base64url into a byte array
|
|
33
|
-
*
|
|
34
|
-
*/
|
|
35
|
-
static decode(input) {
|
|
36
|
-
return Uint8Array.from(buffer_1.Buffer.from(input, 'base64url'));
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.Base64url = Base64url;
|
|
40
|
-
//# sourceMappingURL=base64url.js.map
|
package/build/base64url.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base64url.js","sourceRoot":"","sources":["../src/base64url.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAE/B,MAAa,SAAS;IAClB;;;;OAIG;IACI,MAAM,CAAC,MAAM,CAAC,KAAmC;QACpD,OAAO,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IACnD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,cAAc,CACxB,KAA+C;QAE/C,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IACnE,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,YAAY,CAKxB,KAAa;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,eAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAM,CAAA;IACtE,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAM,CAAC,KAAa;QAC9B,OAAO,UAAU,CAAC,IAAI,CAAC,eAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAA;IAC3D,CAAC;CACJ;AA3CD,8BA2CC"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
export declare enum HasherAlgorithm {
|
|
2
|
-
/**
|
|
3
|
-
* Sha-256: 256 bits. [RFC6920] (current)
|
|
4
|
-
*/
|
|
5
|
-
Sha256 = "sha-256",
|
|
6
|
-
/**
|
|
7
|
-
* Sha-256-128: 128 bits. [RFC6920] (current)
|
|
8
|
-
*/
|
|
9
|
-
Sha256_128 = "sha-256-128",
|
|
10
|
-
/**
|
|
11
|
-
* Sha-256-120: 120 bits. [RFC6920] (current)
|
|
12
|
-
*/
|
|
13
|
-
Sha256_120 = "sha-256-120",
|
|
14
|
-
/**
|
|
15
|
-
* Sha-256-96: 96 bits. [RFC6920] (current)
|
|
16
|
-
*/
|
|
17
|
-
Sha256_96 = "sha-256-96",
|
|
18
|
-
/**
|
|
19
|
-
* Sha-256-64: 64 bits. [RFC6920] (current)
|
|
20
|
-
*/
|
|
21
|
-
Sha256_64 = "sha-256-64",
|
|
22
|
-
/**
|
|
23
|
-
* Sha-256-32: 32 bits. [RFC6920] (current)
|
|
24
|
-
*/
|
|
25
|
-
Sha256_32 = "sha-256-32",
|
|
26
|
-
/**
|
|
27
|
-
* Sha-384: 384 bits. [FIPS 180-4] (current)
|
|
28
|
-
*/
|
|
29
|
-
Sha384 = "sha-384",
|
|
30
|
-
/**
|
|
31
|
-
* Sha-512: 512 bits. [FIPS 180-4] (current)
|
|
32
|
-
*/
|
|
33
|
-
Sha512 = "sha-512",
|
|
34
|
-
/**
|
|
35
|
-
* Sha3-224: 224 bits. [FIPS 202] (current)
|
|
36
|
-
*/
|
|
37
|
-
Sha3_224 = "sha3-224",
|
|
38
|
-
/**
|
|
39
|
-
* Sha3-256: 256 bits. [FIPS 202] (current)
|
|
40
|
-
*/
|
|
41
|
-
Sha3_256 = "sha3-256",
|
|
42
|
-
/**
|
|
43
|
-
* Sha3-384: 384 bits. [FIPS 202] (current)
|
|
44
|
-
*/
|
|
45
|
-
Sha3_384 = "sha3-384",
|
|
46
|
-
/**
|
|
47
|
-
* Sha3-512: 512 bits. [FIPS 202] (current)
|
|
48
|
-
*/
|
|
49
|
-
Sha3_512 = "sha3-512",
|
|
50
|
-
/**
|
|
51
|
-
* Blake2s-256: 256 bits. [RFC7693] (current)
|
|
52
|
-
*/
|
|
53
|
-
Blake2s_256 = "blake2s-256",
|
|
54
|
-
/**
|
|
55
|
-
* Blake2b-256: 256 bits. [RFC7693] (current)
|
|
56
|
-
*/
|
|
57
|
-
Blake2b_256 = "blake2b-256",
|
|
58
|
-
/**
|
|
59
|
-
* Blake2b-512: 512 bits. [RFC7693] (current)
|
|
60
|
-
*/
|
|
61
|
-
Blake2b_512 = "blake2b-512",
|
|
62
|
-
/**
|
|
63
|
-
* K12-256: 256 bits. [draft-irtf-cfrg-kangarootwelve-06] (current)
|
|
64
|
-
*/
|
|
65
|
-
K12_256 = "k12-256",
|
|
66
|
-
/**
|
|
67
|
-
* K12-512: 512 bits. [draft-irtf-cfrg-kangarootwelve-06] (current)
|
|
68
|
-
*/
|
|
69
|
-
K12_512 = "k12-512"
|
|
70
|
-
}
|
package/build/hasherAlgorithm.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HasherAlgorithm = void 0;
|
|
4
|
-
var HasherAlgorithm;
|
|
5
|
-
(function (HasherAlgorithm) {
|
|
6
|
-
/**
|
|
7
|
-
* Sha-256: 256 bits. [RFC6920] (current)
|
|
8
|
-
*/
|
|
9
|
-
HasherAlgorithm["Sha256"] = "sha-256";
|
|
10
|
-
/**
|
|
11
|
-
* Sha-256-128: 128 bits. [RFC6920] (current)
|
|
12
|
-
*/
|
|
13
|
-
HasherAlgorithm["Sha256_128"] = "sha-256-128";
|
|
14
|
-
/**
|
|
15
|
-
* Sha-256-120: 120 bits. [RFC6920] (current)
|
|
16
|
-
*/
|
|
17
|
-
HasherAlgorithm["Sha256_120"] = "sha-256-120";
|
|
18
|
-
/**
|
|
19
|
-
* Sha-256-96: 96 bits. [RFC6920] (current)
|
|
20
|
-
*/
|
|
21
|
-
HasherAlgorithm["Sha256_96"] = "sha-256-96";
|
|
22
|
-
/**
|
|
23
|
-
* Sha-256-64: 64 bits. [RFC6920] (current)
|
|
24
|
-
*/
|
|
25
|
-
HasherAlgorithm["Sha256_64"] = "sha-256-64";
|
|
26
|
-
/**
|
|
27
|
-
* Sha-256-32: 32 bits. [RFC6920] (current)
|
|
28
|
-
*/
|
|
29
|
-
HasherAlgorithm["Sha256_32"] = "sha-256-32";
|
|
30
|
-
/**
|
|
31
|
-
* Sha-384: 384 bits. [FIPS 180-4] (current)
|
|
32
|
-
*/
|
|
33
|
-
HasherAlgorithm["Sha384"] = "sha-384";
|
|
34
|
-
/**
|
|
35
|
-
* Sha-512: 512 bits. [FIPS 180-4] (current)
|
|
36
|
-
*/
|
|
37
|
-
HasherAlgorithm["Sha512"] = "sha-512";
|
|
38
|
-
/**
|
|
39
|
-
* Sha3-224: 224 bits. [FIPS 202] (current)
|
|
40
|
-
*/
|
|
41
|
-
HasherAlgorithm["Sha3_224"] = "sha3-224";
|
|
42
|
-
/**
|
|
43
|
-
* Sha3-256: 256 bits. [FIPS 202] (current)
|
|
44
|
-
*/
|
|
45
|
-
HasherAlgorithm["Sha3_256"] = "sha3-256";
|
|
46
|
-
/**
|
|
47
|
-
* Sha3-384: 384 bits. [FIPS 202] (current)
|
|
48
|
-
*/
|
|
49
|
-
HasherAlgorithm["Sha3_384"] = "sha3-384";
|
|
50
|
-
/**
|
|
51
|
-
* Sha3-512: 512 bits. [FIPS 202] (current)
|
|
52
|
-
*/
|
|
53
|
-
HasherAlgorithm["Sha3_512"] = "sha3-512";
|
|
54
|
-
/**
|
|
55
|
-
* Blake2s-256: 256 bits. [RFC7693] (current)
|
|
56
|
-
*/
|
|
57
|
-
HasherAlgorithm["Blake2s_256"] = "blake2s-256";
|
|
58
|
-
/**
|
|
59
|
-
* Blake2b-256: 256 bits. [RFC7693] (current)
|
|
60
|
-
*/
|
|
61
|
-
HasherAlgorithm["Blake2b_256"] = "blake2b-256";
|
|
62
|
-
/**
|
|
63
|
-
* Blake2b-512: 512 bits. [RFC7693] (current)
|
|
64
|
-
*/
|
|
65
|
-
HasherAlgorithm["Blake2b_512"] = "blake2b-512";
|
|
66
|
-
/**
|
|
67
|
-
* K12-256: 256 bits. [draft-irtf-cfrg-kangarootwelve-06] (current)
|
|
68
|
-
*/
|
|
69
|
-
HasherAlgorithm["K12_256"] = "k12-256";
|
|
70
|
-
/**
|
|
71
|
-
* K12-512: 512 bits. [draft-irtf-cfrg-kangarootwelve-06] (current)
|
|
72
|
-
*/
|
|
73
|
-
HasherAlgorithm["K12_512"] = "k12-512";
|
|
74
|
-
})(HasherAlgorithm || (exports.HasherAlgorithm = HasherAlgorithm = {}));
|
|
75
|
-
//# sourceMappingURL=hasherAlgorithm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hasherAlgorithm.js","sourceRoot":"","sources":["../src/hasherAlgorithm.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAqEX;AArED,WAAY,eAAe;IACvB;;OAEG;IACH,qCAAkB,CAAA;IAClB;;OAEG;IACH,6CAA0B,CAAA;IAC1B;;OAEG;IACH,6CAA0B,CAAA;IAC1B;;OAEG;IACH,2CAAwB,CAAA;IACxB;;OAEG;IACH,2CAAwB,CAAA;IACxB;;OAEG;IACH,2CAAwB,CAAA;IACxB;;OAEG;IACH,qCAAkB,CAAA;IAClB;;OAEG;IACH,qCAAkB,CAAA;IAClB;;OAEG;IACH,wCAAqB,CAAA;IACrB;;OAEG;IACH,wCAAqB,CAAA;IACrB;;OAEG;IACH,wCAAqB,CAAA;IACrB;;OAEG;IACH,wCAAqB,CAAA;IACrB;;OAEG;IACH,8CAA2B,CAAA;IAC3B;;OAEG;IACH,8CAA2B,CAAA;IAC3B;;OAEG;IACH,8CAA2B,CAAA;IAC3B;;OAEG;IACH,sCAAmB,CAAA;IACnB;;OAEG;IACH,sCAAmB,CAAA;AACvB,CAAC,EArEW,eAAe,+BAAf,eAAe,QAqE1B"}
|
package/build/jwt/compact.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export type ExpandedJwt<H extends Record<string, unknown> = Record<string, unknown>, P extends Record<string, unknown> = Record<string, unknown>> = {
|
|
2
|
-
header: H;
|
|
3
|
-
payload: P;
|
|
4
|
-
signature: Uint8Array;
|
|
5
|
-
};
|
|
6
|
-
export declare const jwtFromCompact: <H extends Record<string, unknown> = Record<string, unknown>, P extends Record<string, unknown> = Record<string, unknown>>(compact: string) => ExpandedJwt<H, P>;
|
package/build/jwt/compact.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.jwtFromCompact = void 0;
|
|
4
|
-
const base64url_1 = require("../base64url");
|
|
5
|
-
const error_1 = require("./error");
|
|
6
|
-
const jwtFromCompact = (compact) => {
|
|
7
|
-
if (compact.includes('~')) {
|
|
8
|
-
throw new error_1.JwtError('compact JWT includes `~` which is only allowed in an sd-jwt. Please use sdJwtFromCompact() instead.');
|
|
9
|
-
}
|
|
10
|
-
if ((compact.match(/\./g) || []).length !== 2) {
|
|
11
|
-
throw new error_1.JwtError('compact JWT must include two periods (.)');
|
|
12
|
-
}
|
|
13
|
-
const [compactHeader, compactPayload, encodedSignature] = compact.split('.');
|
|
14
|
-
if (!encodedSignature || encodedSignature.length === 0) {
|
|
15
|
-
throw new error_1.JwtError('A signature must be provided within the context of sd-jwt');
|
|
16
|
-
}
|
|
17
|
-
const header = base64url_1.Base64url.decodeToJson(compactHeader);
|
|
18
|
-
const payload = base64url_1.Base64url.decodeToJson(compactPayload);
|
|
19
|
-
const signature = base64url_1.Base64url.decode(encodedSignature);
|
|
20
|
-
return {
|
|
21
|
-
header,
|
|
22
|
-
payload,
|
|
23
|
-
signature
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
exports.jwtFromCompact = jwtFromCompact;
|
|
27
|
-
//# sourceMappingURL=compact.js.map
|
package/build/jwt/compact.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/jwt/compact.ts"],"names":[],"mappings":";;;AAAA,4CAAwC;AACxC,mCAAkC;AAW3B,MAAM,cAAc,GAAG,CAI1B,OAAe,EACE,EAAE;IACnB,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,gBAAQ,CACd,qGAAqG,CACxG,CAAA;IACL,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,gBAAQ,CAAC,0CAA0C,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,gBAAgB,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE5E,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,gBAAQ,CACd,2DAA2D,CAC9D,CAAA;IACL,CAAC;IAED,MAAM,MAAM,GAAG,qBAAS,CAAC,YAAY,CAAI,aAAa,CAAC,CAAA;IACvD,MAAM,OAAO,GAAG,qBAAS,CAAC,YAAY,CAAI,cAAc,CAAC,CAAA;IACzD,MAAM,SAAS,GAAG,qBAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAEpD,OAAO;QACH,MAAM;QACN,OAAO;QACP,SAAS;KACZ,CAAA;AACL,CAAC,CAAA;AAjCY,QAAA,cAAc,kBAiC1B"}
|
package/build/sdJwt/compact.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { KeyBinding } from '../keyBinding';
|
|
2
|
-
import { Disclosure } from './disclosures';
|
|
3
|
-
import { ExpandedJwt } from '../jwt';
|
|
4
|
-
export type ExpandedSdJwt<H extends Record<string, unknown> = Record<string, unknown>, P extends Record<string, unknown> = Record<string, unknown>> = ExpandedJwt<H, P> & {
|
|
5
|
-
disclosures?: Array<Disclosure>;
|
|
6
|
-
keyBinding?: KeyBinding;
|
|
7
|
-
};
|
|
8
|
-
export declare const sdJwtFromCompact: <H extends Record<string, unknown> = Record<string, unknown>, P extends Record<string, unknown> = Record<string, unknown>>(compact: string) => ExpandedSdJwt<H, P>;
|
package/build/sdJwt/compact.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sdJwtFromCompact = void 0;
|
|
4
|
-
const keyBinding_1 = require("../keyBinding");
|
|
5
|
-
const disclosures_1 = require("./disclosures");
|
|
6
|
-
const jwt_1 = require("../jwt");
|
|
7
|
-
const sdJwtFromCompact = (compact) => {
|
|
8
|
-
const [jwtWithoutDisclosures, ...encodedDisclosures] = compact.split('~');
|
|
9
|
-
const { header, payload, signature } = (0, jwt_1.jwtFromCompact)(jwtWithoutDisclosures);
|
|
10
|
-
if (encodedDisclosures.length === 0) {
|
|
11
|
-
return {
|
|
12
|
-
header,
|
|
13
|
-
payload,
|
|
14
|
-
signature
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
const hasKeyBinding = !compact.endsWith('~');
|
|
18
|
-
// If the disclosure array ends with an `~` we do not have
|
|
19
|
-
// a key binding and `String.split` takes it as an empty string
|
|
20
|
-
// as element which we would not like to include in the disclosures.
|
|
21
|
-
if (!hasKeyBinding)
|
|
22
|
-
encodedDisclosures.pop();
|
|
23
|
-
const compactKeyBinding = hasKeyBinding
|
|
24
|
-
? encodedDisclosures.pop()
|
|
25
|
-
: undefined;
|
|
26
|
-
const keyBinding = compactKeyBinding
|
|
27
|
-
? keyBinding_1.KeyBinding.fromCompact(compactKeyBinding)
|
|
28
|
-
: undefined;
|
|
29
|
-
const disclosures = encodedDisclosures.map(disclosures_1.Disclosure.fromString);
|
|
30
|
-
return {
|
|
31
|
-
header,
|
|
32
|
-
payload,
|
|
33
|
-
signature,
|
|
34
|
-
keyBinding,
|
|
35
|
-
disclosures
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
exports.sdJwtFromCompact = sdJwtFromCompact;
|
|
39
|
-
//# sourceMappingURL=compact.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/sdJwt/compact.ts"],"names":[],"mappings":";;;AAAA,8CAA0C;AAC1C,+CAA0C;AAC1C,gCAAoD;AAU7C,MAAM,gBAAgB,GAAG,CAI5B,OAAe,EACI,EAAE;IACrB,MAAM,CAAC,qBAAqB,EAAE,GAAG,kBAAkB,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEzE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAA,oBAAc,EACjD,qBAAqB,CACxB,CAAA;IAED,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO;YACH,MAAM;YACN,OAAO;YACP,SAAS;SACZ,CAAA;IACL,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAE5C,0DAA0D;IAC1D,+DAA+D;IAC/D,oEAAoE;IACpE,IAAI,CAAC,aAAa;QAAE,kBAAkB,CAAC,GAAG,EAAE,CAAA;IAE5C,MAAM,iBAAiB,GAAG,aAAa;QACnC,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE;QAC1B,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,UAAU,GAAG,iBAAiB;QAChC,CAAC,CAAC,uBAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC;QAC3C,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,wBAAU,CAAC,UAAU,CAAC,CAAA;IAEjE,OAAO;QACH,MAAM;QACN,OAAO;QACP,SAAS;QACT,UAAU;QACV,WAAW;KACd,CAAA;AACL,CAAC,CAAA;AA5CY,QAAA,gBAAgB,oBA4C5B"}
|