@sd-jwt/core 0.1.2-alpha.8 → 0.2.0
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 +3 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/jwt/jwt.js +1 -1
- package/build/jwt/jwt.js.map +1 -1
- package/build/sdJwt/decoys.d.ts +2 -2
- package/build/sdJwt/decoys.js +2 -2
- package/build/sdJwt/decoys.js.map +1 -1
- package/build/sdJwt/disclosureFrame.d.ts +3 -3
- package/build/sdJwt/disclosureFrame.js +6 -6
- package/build/sdJwt/disclosureFrame.js.map +1 -1
- package/build/sdJwt/disclosures.d.ts +7 -3
- package/build/sdJwt/disclosures.js +25 -9
- 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 +4 -4
- package/build/sdJwt/sdJwt.js +12 -13
- package/build/sdJwt/sdJwt.js.map +1 -1
- package/build/types/disclosure.d.ts +1 -1
- package/build/types/hasher.d.ts +4 -8
- package/build/types/index.d.ts +0 -1
- package/build/types/index.js +0 -1
- package/build/types/index.js.map +1 -1
- package/build/types/utils.d.ts +0 -3
- package/package.json +6 -5
- package/build/sdJwt/disclosureMapping.d.ts +0 -43
- package/build/sdJwt/disclosureMapping.js +0 -278
- package/build/sdJwt/disclosureMapping.js.map +0 -1
- package/build/sdJwt/presentationFrame.d.ts +0 -3
- package/build/sdJwt/presentationFrame.js +0 -64
- package/build/sdJwt/presentationFrame.js.map +0 -1
- package/build/sdJwt/swapClaim.d.ts +0 -2
- package/build/sdJwt/swapClaim.js +0 -79
- package/build/sdJwt/swapClaim.js.map +0 -1
- package/build/types/frame.d.ts +0 -5
- package/build/types/frame.js +0 -3
- package/build/types/frame.js.map +0 -1
- package/build/types/present.d.ts +0 -2
- package/build/types/present.js +0 -3
- package/build/types/present.js.map +0 -1
- package/build/utils/index.d.ts +0 -2
- package/build/utils/index.js +0 -19
- package/build/utils/index.js.map +0 -1
- package/build/utils/traverse.d.ts +0 -8
- package/build/utils/traverse.js +0 -29
- package/build/utils/traverse.js.map +0 -1
- package/build/utils/utils.d.ts +0 -8
- package/build/utils/utils.js +0 -118
- package/build/utils/utils.js.map +0 -1
package/build/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { SdJwtOptions, SdJwtAdditionalOptions, SdJwtVerificationResult } from './sdJwt';
|
|
2
2
|
export type { KeyBindingHeader, KeyBindingPayload, KeyBindingOptions, KeyBindingAdditionalOptions, KeyBindingVerificationResult } from './keyBinding';
|
|
3
3
|
export type { JwtOptions, JwtAdditionalOptions, JwtVerificationResult } from './jwt';
|
|
4
|
-
export type {
|
|
4
|
+
export type { Signer, Verifier, VerifyOptions, SaltGenerator, DisclosureItem, DisclosureFrame, HasherAndAlgorithm } from './types';
|
|
5
5
|
export type { SdJwtVcVerificationResult } from './sdJwtVc';
|
|
6
6
|
export { SignatureAndEncryptionAlgorithm } from './signatureAndEncryptionAlgorithm';
|
|
7
7
|
export { SdJwt, Disclosure, SdJwtError } from './sdJwt';
|
|
@@ -9,3 +9,5 @@ export { KeyBinding } from './keyBinding';
|
|
|
9
9
|
export { Jwt, JwtError } from './jwt';
|
|
10
10
|
export { SdJwtVc, SdJwtVcError } from './sdJwtVc';
|
|
11
11
|
export { HasherAlgorithm } from '@sd-jwt/utils';
|
|
12
|
+
export type { Hasher, AsyncHasher } from '@sd-jwt/types';
|
|
13
|
+
export type { PresentationFrame } from '@sd-jwt/present';
|
package/build/index.js
CHANGED
|
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "JwtError", { enumerable: true, get: function ()
|
|
|
15
15
|
var sdJwtVc_1 = require("./sdJwtVc");
|
|
16
16
|
Object.defineProperty(exports, "SdJwtVc", { enumerable: true, get: function () { return sdJwtVc_1.SdJwtVc; } });
|
|
17
17
|
Object.defineProperty(exports, "SdJwtVcError", { enumerable: true, get: function () { return sdJwtVc_1.SdJwtVcError; } });
|
|
18
|
+
// Re-export from sub-packages
|
|
18
19
|
var utils_1 = require("@sd-jwt/utils");
|
|
19
20
|
Object.defineProperty(exports, "HasherAlgorithm", { enumerable: true, get: function () { return utils_1.HasherAlgorithm; } });
|
|
20
21
|
//# 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":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAgCA,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,8BAA8B;AAC9B,uCAA+C;AAAtC,wGAAA,eAAe,OAAA"}
|
package/build/jwt/jwt.js
CHANGED
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.Jwt = void 0;
|
|
13
13
|
const utils_1 = require("@sd-jwt/utils");
|
|
14
14
|
const error_1 = require("./error");
|
|
15
|
-
const utils_2 = require("
|
|
15
|
+
const utils_2 = require("@sd-jwt/utils");
|
|
16
16
|
const decode_1 = require("@sd-jwt/decode");
|
|
17
17
|
class Jwt {
|
|
18
18
|
constructor(options, additionalOptions) {
|
package/build/jwt/jwt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/jwt/jwt.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAyC;AACzC,mCAAkC;AAGlC,
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/jwt/jwt.ts"],"names":[],"mappings":"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"}
|
package/build/sdJwt/decoys.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const createDecoys: (count: number, saltGenerator: SaltGenerator,
|
|
1
|
+
import { HasherAndAlgorithm, SaltGenerator } from '../types';
|
|
2
|
+
export declare const createDecoys: (count: number, saltGenerator: SaltGenerator, hasherAndAlgorithm: HasherAndAlgorithm) => Promise<string[]>;
|
package/build/sdJwt/decoys.js
CHANGED
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.createDecoys = void 0;
|
|
13
13
|
const error_1 = require("./error");
|
|
14
14
|
const utils_1 = require("@sd-jwt/utils");
|
|
15
|
-
const createDecoys = (count, saltGenerator,
|
|
15
|
+
const createDecoys = (count, saltGenerator, hasherAndAlgorithm) => __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.`);
|
|
18
18
|
}
|
|
@@ -25,7 +25,7 @@ const createDecoys = (count, saltGenerator, hasher) => __awaiter(void 0, void 0,
|
|
|
25
25
|
const decoys = [];
|
|
26
26
|
for (let i = 0; i < count; i++) {
|
|
27
27
|
const salt = yield saltGenerator();
|
|
28
|
-
const decoy = yield hasher(salt);
|
|
28
|
+
const decoy = yield hasherAndAlgorithm.hasher(salt, hasherAndAlgorithm.algorithm);
|
|
29
29
|
const encodedDecoy = utils_1.Base64url.encode(decoy);
|
|
30
30
|
decoys.push(encodedDecoy);
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,kBAAsC,EACxC,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,kBAAkB,CAAC,MAAM,CACzC,IAAI,EACJ,kBAAkB,CAAC,SAAS,CAC/B,CAAA;QACD,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;AA5BY,QAAA,YAAY,gBA4BxB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { DisclosureFrame } from '../types';
|
|
1
|
+
import { DisclosureFrame, HasherAndAlgorithm } from '../types';
|
|
2
2
|
import { DisclosureWithDigest } from './disclosures';
|
|
3
|
-
import { SaltGenerator
|
|
4
|
-
export declare const applyDisclosureFrame: <Payload extends Record<string, unknown> = Record<string, unknown>>(saltGenerator: SaltGenerator,
|
|
3
|
+
import { SaltGenerator } from '../types';
|
|
4
|
+
export declare const applyDisclosureFrame: <Payload extends Record<string, unknown> = Record<string, unknown>>(saltGenerator: SaltGenerator, hasherAndAlgorithm: HasherAndAlgorithm, payload: Payload, frame: DisclosureFrame<Payload>, keys?: Array<string>, cleanup?: Array<Array<string>>, disclosures?: Array<DisclosureWithDigest>) => Promise<{
|
|
5
5
|
payload: Record<string, unknown>;
|
|
6
6
|
disclosures: Array<DisclosureWithDigest>;
|
|
7
7
|
}>;
|
|
@@ -10,17 +10,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.applyDisclosureFrame = void 0;
|
|
13
|
-
const utils_1 = require("
|
|
13
|
+
const utils_1 = require("@sd-jwt/utils");
|
|
14
14
|
const decoys_1 = require("./decoys");
|
|
15
15
|
const disclosures_1 = require("./disclosures");
|
|
16
16
|
const error_1 = require("./error");
|
|
17
|
-
const applyDisclosureFrame = (saltGenerator,
|
|
17
|
+
const applyDisclosureFrame = (saltGenerator, hasherAndAlgorithm, payload, frame, keys = [], cleanup = [], disclosures = []) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
18
|
var _a, _b;
|
|
19
19
|
for (const [key, frameValue] of Object.entries(frame)) {
|
|
20
20
|
const newKeys = [...keys, key];
|
|
21
21
|
if (key === '__decoyCount' && typeof frameValue === 'number') {
|
|
22
22
|
const sd = Array.from((_a = payload._sd) !== null && _a !== void 0 ? _a : []);
|
|
23
|
-
const decoys = yield (0, decoys_1.createDecoys)(frameValue, saltGenerator,
|
|
23
|
+
const decoys = yield (0, decoys_1.createDecoys)(frameValue, saltGenerator, hasherAndAlgorithm);
|
|
24
24
|
decoys.forEach((digest) => sd.push(digest));
|
|
25
25
|
// @ts-ignore
|
|
26
26
|
payload._sd = sd.sort();
|
|
@@ -31,7 +31,7 @@ const applyDisclosureFrame = (saltGenerator, hasher, payload, frame, keys = [],
|
|
|
31
31
|
throw new error_1.SdJwtError(`key, ${key}, is not inside the payload (${JSON.stringify(payload)}), but it was supplied inside the frame.`);
|
|
32
32
|
}
|
|
33
33
|
const salt = yield saltGenerator();
|
|
34
|
-
const disclosure = yield new disclosures_1.Disclosure(salt, payload[key], key).withCalculateDigest(
|
|
34
|
+
const disclosure = yield new disclosures_1.Disclosure(salt, payload[key], key).withCalculateDigest(hasherAndAlgorithm);
|
|
35
35
|
disclosures.push(disclosure);
|
|
36
36
|
const sd = Array.from((_b = payload._sd) !== null && _b !== void 0 ? _b : []);
|
|
37
37
|
sd.push(disclosure.digest);
|
|
@@ -42,7 +42,7 @@ const applyDisclosureFrame = (saltGenerator, hasher, payload, frame, keys = [],
|
|
|
42
42
|
}
|
|
43
43
|
else if (typeof frameValue === 'object' &&
|
|
44
44
|
!Array.isArray(frameValue)) {
|
|
45
|
-
yield (0, exports.applyDisclosureFrame)(saltGenerator,
|
|
45
|
+
yield (0, exports.applyDisclosureFrame)(saltGenerator, hasherAndAlgorithm, payload[key], frameValue, newKeys, cleanup, disclosures);
|
|
46
46
|
}
|
|
47
47
|
else if (typeof frameValue === 'object' &&
|
|
48
48
|
Array.isArray(frameValue)) {
|
|
@@ -64,7 +64,7 @@ const applyDisclosureFrame = (saltGenerator, hasher, payload, frame, keys = [],
|
|
|
64
64
|
const frameValue = frameValueArray[i];
|
|
65
65
|
if (frameValue) {
|
|
66
66
|
const salt = yield saltGenerator();
|
|
67
|
-
const disclosure = yield new disclosures_1.Disclosure(salt, payloadValue).withCalculateDigest(
|
|
67
|
+
const disclosure = yield new disclosures_1.Disclosure(salt, payloadValue).withCalculateDigest(hasherAndAlgorithm);
|
|
68
68
|
disclosures.push(disclosure);
|
|
69
69
|
newPayloadArray.push({ '...': disclosure.digest });
|
|
70
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disclosureFrame.js","sourceRoot":"","sources":["../../src/sdJwt/disclosureFrame.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"disclosureFrame.js","sourceRoot":"","sources":["../../src/sdJwt/disclosureFrame.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AsyncHasher, Hasher } from '@sd-jwt/types';
|
|
2
|
+
import { DisclosureItem, HasherAndAlgorithm } from '../types';
|
|
3
|
+
import { DisclosureWithDigest as DisclosureWithDigestJson, Disclosure as DisclosureJson } from '@sd-jwt/types';
|
|
2
4
|
export type DisclosureWithDigest = Disclosure & {
|
|
3
5
|
digest: string;
|
|
4
6
|
};
|
|
@@ -20,10 +22,12 @@ export declare class Disclosure {
|
|
|
20
22
|
* If you want to calculate the digest, use the `withCalculateDigest` method instead.
|
|
21
23
|
*/
|
|
22
24
|
withDigest(digest: string): DisclosureWithDigest;
|
|
23
|
-
withCalculateDigest<HasherImplementation extends Hasher>(
|
|
25
|
+
withCalculateDigest<HasherImplementation extends Hasher | AsyncHasher>(hasherAndAlgorithm: HasherAndAlgorithm<HasherImplementation>, { recalculate }?: {
|
|
24
26
|
recalculate?: boolean;
|
|
25
27
|
}): WithCalculateDigestReturnType<HasherImplementation>;
|
|
26
28
|
toString(): string;
|
|
29
|
+
asJson(): this extends DisclosureWithDigest ? DisclosureWithDigestJson : DisclosureJson;
|
|
30
|
+
static fromJson<D extends DisclosureJson | DisclosureWithDigestJson>(disclosureJson: D): D extends DisclosureWithDigestJson ? DisclosureWithDigest : Disclosure;
|
|
27
31
|
}
|
|
28
|
-
export type WithCalculateDigestReturnType<HasherImplementation extends Hasher> = ReturnType<HasherImplementation> extends Promise<any> ? Promise<DisclosureWithDigest> : DisclosureWithDigest;
|
|
32
|
+
export type WithCalculateDigestReturnType<HasherImplementation extends Hasher | AsyncHasher> = ReturnType<HasherImplementation> extends Promise<any> ? Promise<DisclosureWithDigest> : DisclosureWithDigest;
|
|
29
33
|
export declare function isDisclosureWithDigest(disclosure: Disclosure): disclosure is DisclosureWithDigest;
|
|
@@ -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 decode_1 = require("@sd-jwt/decode");
|
|
16
17
|
const utils_1 = require("@sd-jwt/utils");
|
|
17
18
|
const error_1 = require("./error");
|
|
18
|
-
const utils_2 = require("../utils");
|
|
19
19
|
class Disclosure {
|
|
20
20
|
constructor(salt, value, key) {
|
|
21
21
|
_Disclosure_digest.set(this, void 0);
|
|
@@ -59,7 +59,7 @@ class Disclosure {
|
|
|
59
59
|
__classPrivateFieldSet(this, _Disclosure_digest, digest, "f");
|
|
60
60
|
return this;
|
|
61
61
|
}
|
|
62
|
-
withCalculateDigest(
|
|
62
|
+
withCalculateDigest(hasherAndAlgorithm,
|
|
63
63
|
// Whether to recalculate the digest, even if it is already set
|
|
64
64
|
{ recalculate = false } = {}) {
|
|
65
65
|
// NOTE: the implementation of this method seems overly complex, but it allows
|
|
@@ -69,18 +69,18 @@ class Disclosure {
|
|
|
69
69
|
if (!recalculate && isDisclosureWithDigest(this)) {
|
|
70
70
|
return this;
|
|
71
71
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if ((0,
|
|
76
|
-
return
|
|
77
|
-
__classPrivateFieldSet(this, _Disclosure_digest,
|
|
72
|
+
const digestResult = (0, decode_1.disclosureCalculateDigest)(this.asJson(),
|
|
73
|
+
// TODO: string vs HasherAlgorithm
|
|
74
|
+
hasherAndAlgorithm.algorithm, hasherAndAlgorithm.hasher);
|
|
75
|
+
if ((0, utils_1.isPromise)(digestResult)) {
|
|
76
|
+
return digestResult.then((digest) => {
|
|
77
|
+
__classPrivateFieldSet(this, _Disclosure_digest, digest, "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, digestResult, "f");
|
|
84
84
|
// We know for sure that digest is defined now
|
|
85
85
|
return this;
|
|
86
86
|
}
|
|
@@ -88,6 +88,22 @@ class Disclosure {
|
|
|
88
88
|
toString() {
|
|
89
89
|
return this.encoded;
|
|
90
90
|
}
|
|
91
|
+
asJson() {
|
|
92
|
+
return {
|
|
93
|
+
encoded: this.encoded,
|
|
94
|
+
salt: this.salt,
|
|
95
|
+
value: this.value,
|
|
96
|
+
key: this.key,
|
|
97
|
+
digest: this.digest
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
static fromJson(disclosureJson) {
|
|
101
|
+
const disclosure = new Disclosure(disclosureJson.salt, disclosureJson.value, disclosureJson.key);
|
|
102
|
+
if ('digest' in disclosureJson) {
|
|
103
|
+
disclosure.withDigest(disclosureJson.digest);
|
|
104
|
+
}
|
|
105
|
+
return disclosure;
|
|
106
|
+
}
|
|
91
107
|
}
|
|
92
108
|
exports.Disclosure = Disclosure;
|
|
93
109
|
_Disclosure_digest = new WeakMap();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disclosures.js","sourceRoot":"","sources":["../../src/sdJwt/disclosures.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
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
|
@@ -20,5 +20,4 @@ __exportStar(require("./disclosures"), exports);
|
|
|
20
20
|
__exportStar(require("./decoys"), exports);
|
|
21
21
|
__exportStar(require("./disclosureFrame"), exports);
|
|
22
22
|
__exportStar(require("./types"), exports);
|
|
23
|
-
__exportStar(require("./presentationFrame"), exports);
|
|
24
23
|
//# 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,0CAAuB
|
|
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"}
|
package/build/sdJwt/sdJwt.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PresentationFrame } from '@sd-jwt/present';
|
|
2
|
+
import { HasherAlgorithm } from '@sd-jwt/utils';
|
|
2
3
|
import { Jwt, JwtAdditionalOptions, JwtVerificationResult } from '../jwt/jwt';
|
|
3
4
|
import { KeyBinding } from '../keyBinding';
|
|
4
|
-
import {
|
|
5
|
+
import { DisclosureFrame, HasherAndAlgorithm, SaltGenerator, Verifier } from '../types';
|
|
5
6
|
import { Disclosure, DisclosureWithDigest } from './disclosures';
|
|
6
|
-
import {
|
|
7
|
-
import { HasherAlgorithm } from '@sd-jwt/utils';
|
|
7
|
+
import { ReturnSdJwtWithHeaderAndPayload, ReturnSdJwtWithKeyBinding, ReturnSdJwtWithPayload } from './types';
|
|
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,16 +10,14 @@ 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 decode_1 = require("@sd-jwt/decode");
|
|
14
|
+
const present_1 = require("@sd-jwt/present");
|
|
13
15
|
const utils_1 = require("@sd-jwt/utils");
|
|
14
|
-
const error_1 = require("./error");
|
|
15
16
|
const jwt_1 = require("../jwt/jwt");
|
|
16
17
|
const keyBinding_1 = require("../keyBinding");
|
|
17
|
-
const disclosures_1 = require("./disclosures");
|
|
18
18
|
const disclosureFrame_1 = require("./disclosureFrame");
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const presentationFrame_1 = require("./presentationFrame");
|
|
22
|
-
const decode_1 = require("@sd-jwt/decode");
|
|
19
|
+
const disclosures_1 = require("./disclosures");
|
|
20
|
+
const error_1 = require("./error");
|
|
23
21
|
class SdJwt extends jwt_1.Jwt {
|
|
24
22
|
constructor(options, additionalOptions) {
|
|
25
23
|
super(options, additionalOptions);
|
|
@@ -167,7 +165,7 @@ class SdJwt extends jwt_1.Jwt {
|
|
|
167
165
|
!this.signer) {
|
|
168
166
|
throw new error_1.SdJwtError('Signature is already set by the user when selectively disclosable items still have to be removed. This will invalidate the signature. Try to provide a signer on SdJwt.withSigner and SdJwt.toCompact will call it at the correct time.');
|
|
169
167
|
}
|
|
170
|
-
const { payload: framedPayload, disclosures } = yield (0, disclosureFrame_1.applyDisclosureFrame)(this.saltGenerator, this.hasherAndAlgorithm
|
|
168
|
+
const { payload: framedPayload, disclosures } = yield (0, disclosureFrame_1.applyDisclosureFrame)(this.saltGenerator, this.hasherAndAlgorithm, this.addHasherAlgorithmToPayload().payload, this.disclosureFrame);
|
|
171
169
|
this.disclosures = disclosures;
|
|
172
170
|
this.payload = framedPayload;
|
|
173
171
|
});
|
|
@@ -180,7 +178,7 @@ class SdJwt extends jwt_1.Jwt {
|
|
|
180
178
|
}
|
|
181
179
|
if (!this.disclosures)
|
|
182
180
|
return undefined;
|
|
183
|
-
return Promise.all(this.disclosures.map((d) => d.withCalculateDigest(this.hasherAndAlgorithm
|
|
181
|
+
return Promise.all(this.disclosures.map((d) => d.withCalculateDigest(this.hasherAndAlgorithm)));
|
|
184
182
|
});
|
|
185
183
|
}
|
|
186
184
|
/**
|
|
@@ -222,7 +220,7 @@ class SdJwt extends jwt_1.Jwt {
|
|
|
222
220
|
*/
|
|
223
221
|
assertClaimInDisclosureFrame(claimKey) {
|
|
224
222
|
this.assertDisclosureFrame();
|
|
225
|
-
const value = (0,
|
|
223
|
+
const value = (0, utils_1.getValueByKeyAnyLevel)(this.disclosureFrame, claimKey);
|
|
226
224
|
if (!value) {
|
|
227
225
|
throw new error_1.SdJwtError(`Claim key '${claimKey}' not found in any level of the disclosureFrame`);
|
|
228
226
|
}
|
|
@@ -274,8 +272,8 @@ class SdJwt extends jwt_1.Jwt {
|
|
|
274
272
|
}
|
|
275
273
|
// Calculate the digests for all disclosures
|
|
276
274
|
const disclosuresWithDigest = yield this.disclosuresWithDigest();
|
|
277
|
-
const requiredDisclosures = (0,
|
|
278
|
-
return yield this.__toCompact(requiredDisclosures, false);
|
|
275
|
+
const requiredDisclosures = (0, present_1.getDisclosuresForPresentationFrame)(this.payload, presentationFrame, yield this.getPrettyClaims(), disclosuresWithDigest === null || disclosuresWithDigest === void 0 ? void 0 : disclosuresWithDigest.map((d) => d.asJson()));
|
|
276
|
+
return yield this.__toCompact(requiredDisclosures.map((d) => disclosures_1.Disclosure.fromJson(d)), false);
|
|
279
277
|
});
|
|
280
278
|
}
|
|
281
279
|
/**
|
|
@@ -301,7 +299,7 @@ class SdJwt extends jwt_1.Jwt {
|
|
|
301
299
|
const { isValid } = yield this.keyBinding.verify(verifier, [], publicKeyJwk);
|
|
302
300
|
jwtVerificationResult.isKeyBindingValid = isValid;
|
|
303
301
|
}
|
|
304
|
-
const claimKeys = (0,
|
|
302
|
+
const claimKeys = (0, utils_1.getAllKeys)(this.payload).concat(((_a = this.disclosures) !== null && _a !== void 0 ? _a : []).map((d) => d.decoded[1]));
|
|
305
303
|
if (requiredClaimKeys) {
|
|
306
304
|
jwtVerificationResult.areRequiredClaimsIncluded =
|
|
307
305
|
requiredClaimKeys.every((key) => claimKeys.includes(key));
|
|
@@ -353,11 +351,12 @@ class SdJwt extends jwt_1.Jwt {
|
|
|
353
351
|
*
|
|
354
352
|
*/
|
|
355
353
|
getPrettyClaims() {
|
|
354
|
+
var _a;
|
|
356
355
|
return __awaiter(this, void 0, void 0, function* () {
|
|
357
356
|
this.assertPayload();
|
|
358
357
|
this.assertHashAndAlgorithm();
|
|
359
358
|
const disclosuresWithDigest = yield this.disclosuresWithDigest();
|
|
360
|
-
const newPayload = (0,
|
|
359
|
+
const newPayload = (0, decode_1.decodeDisclosuresInPayload)(this.payload, (_a = disclosuresWithDigest === null || disclosuresWithDigest === void 0 ? void 0 : disclosuresWithDigest.map((d) => d.asJson())) !== null && _a !== void 0 ? _a : []);
|
|
361
360
|
return newPayload;
|
|
362
361
|
});
|
|
363
362
|
}
|
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":";;;;;;;;;;;;AAAA,2CAA6E;AAC7E,6CAGwB;AACxB,yCAKsB;AACtB,oCAA6E;AAC7E,8CAA0C;AAO1C,uDAAwD;AACxD,+CAAgE;AAChE,mCAAoC;AAoCpC,MAAa,KAGX,SAAQ,SAAoB;IAQ1B,YACI,OAAuC,EACvC,iBAAmD;QAEnD,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;QACjC,IAAI,CAAC,MAAM,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA;QAC/B,IAAI,CAAC,SAAS,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAA;QACnC,IAAI,CAAC,WAAW,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA;QACvC,IAAI,CAAC,UAAU,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAA;QAErC,IAAI,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,kBAAkB,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAA;QACzD,CAAC;QAED,IAAI,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,aAAa,EAAE,CAAC;YACnC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAC3D,CAAC;QAED,IAAI,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAC7C,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAU,WAAW,CAGhC,OAAe;QACb,MAAM,EACF,WAAW,EAAE,CAAC,EACd,UAAU,EAAE,EAAE,EACd,SAAS,EACT,OAAO,EACP,MAAM,EACT,GAAG,IAAA,yBAAgB,EAAkB,OAAO,CAAC,CAAA;QAE9C,MAAM,WAAW,GAAG,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,GAAG,CACtB,CAAC,UAAU,EAAE,EAAE,CACX,IAAI,wBAAU,CACV,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,GAAG,CACjB,CACR,CAAA;QAED,MAAM,UAAU,GAAG,EAAE;YACjB,CAAC,CAAC,IAAI,uBAAU,EAAE;iBACX,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC;iBACrB,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;iBACvB,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC;YAClC,CAAC,CAAC,SAAS,CAAA;QAEf,MAAM,KAAK,GAAG,IAAI,KAAK,CAAkB;YACrC,MAAM;YACN,OAAO;YACP,SAAS;YACT,WAAW;YACX,UAAU;SACb,CAAC,CAAA;QAEF,OAAO,KAIN,CAAA;IACL,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACI,iBAAiB,CAAC,aAA4B;QACjD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;;;;;;;;;OAUG;IACI,UAAU,CAAC,kBAAsC;QACpD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAE5C,OAAO,IAAqD,CAAA;IAChE,CAAC;IAED;;;;;;;;OAQG;IACI,2BAA2B,CAC9B,kBAAuC;QAEvC,IAAI,kBAAkB;YAAE,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;QAC3D,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAE7B,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAmB,CAAC,SAAS,CAAC,CAAA;QAEnE,OAAO,IAAqD,CAAA;IAChE,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CACjB,UAAqC;QAErC,MAAM,EAAE,GACJ,OAAO,UAAU,KAAK,QAAQ;YAC1B,CAAC,CAAC,uBAAU,CAAC,WAAW,CAAC,UAAU,CAAC;YACpC,CAAC,CAAC,UAAU,YAAY,uBAAU;gBAChC,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,uBAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAE1C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,OAAO,IAAwD,CAAA;IACnE,CAAC;IAED;;;;OAIG;IACI,mBAAmB,CAAC,eAAyC;QAChE,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,OAAO,IAAI,CAAA;IACf,CAAC;IAED;;;;;;;;;;;;;OAaG;IACU,oBAAoB;;YAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAA;YAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAA;YAC7B,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,qBAAqB,EAAE,CAAA;YAE5B,IACI,IAAI,CAAC,WAAW;gBAChB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAC3B,IAAI,CAAC,SAAS;gBACd,CAAC,IAAI,CAAC,MAAM,EACd,CAAC;gBACC,MAAM,IAAI,kBAAU,CAChB,yOAAyO,CAC5O,CAAA;YACL,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,GACzC,MAAM,IAAA,sCAAoB,EACtB,IAAI,CAAC,aAAc,EACnB,IAAI,CAAC,kBAAmB,EACxB,IAAI,CAAC,2BAA2B,EAAE,CAAC,OAAQ,EAC3C,IAAI,CAAC,eAAgB,CACxB,CAAA;YAEL,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;YAC9B,IAAI,CAAC,OAAO,GAAG,aAAwB,CAAA;QAC3C,CAAC;KAAA;IAEY,qBAAqB;;YAG9B,IAAI,CAAC,sBAAsB,EAAE,CAAA;YAE7B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAA;YACrC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,OAAO,SAAS,CAAA;YAEvC,OAAO,OAAO,CAAC,GAAG,CACd,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAmB,CAAC,CAClD,CACJ,CAAA;QACL,CAAC;KAAA;IAED;;;;OAIG;IACI,qBAAqB;QACxB,IAAI,IAAI,CAAC,eAAe;YAAE,OAAM;QAEhC,MAAM,IAAI,kBAAU,CAAC,iCAAiC,CAAC,CAAA;IAC3D,CAAC;IAED;;;;OAIG;IACK,mBAAmB;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,MAAM,IAAI,kBAAU,CAChB,mGAAmG,CACtG,CAAA;QACL,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,sBAAsB;QAC1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3B,MAAM,IAAI,kBAAU,CAChB,uHAAuH,CAC1H,CAAA;QACL,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,4BAA4B,CAAC,QAAgB;QAChD,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAE5B,MAAM,KAAK,GAAG,IAAA,6BAAqB,EAAC,IAAI,CAAC,eAAgB,EAAE,QAAQ,CAAC,CAAA;QAEpE,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,kBAAU,CAChB,cAAc,QAAQ,iDAAiD,CAC1E,CAAA;QACL,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACU,OAAO,CAAC,iBAA8C;;;YAC/D,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAA;YACrC,CAAC;YAED,mFAAmF;YACnF,IAAI,CAAC,sBAAsB,EAAE,CAAA;YAC7B,IAAI,CAAC,aAAa,EAAE,CAAA;YAEpB,oEAAoE;YACpE,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACrB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YAC1D,CAAC;YAED,IACI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;gBAChE,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,MAAK,CAAC,EAChC,CAAC;gBACC,MAAM,IAAI,kBAAU,CAChB,sFAAsF,CACzF,CAAA;YACL,CAAC;YAED,4CAA4C;YAC5C,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;YAEhE,MAAM,mBAAmB,GAAG,IAAA,4CAAkC,EAC1D,IAAI,CAAC,OAAQ,EACb,iBAAiB,EACjB,MAAM,IAAI,CAAC,eAAe,EAAE,EAC5B,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAChD,CAAA;YAED,OAAO,MAAM,IAAI,CAAC,WAAW,CACzB,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,wBAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EACtD,KAAK,CACR,CAAA;;KACJ;IAED;;;;;;;;;;OAUG;IACU,MAAM,CACf,QAA0B,EAC1B,iBAAiD,EACjD,YAAsC;;;;;;YAEtC,IAAI,CAAC,eAAe,EAAE,CAAA;YAEtB,MAAM,qBAAqB,GAAG,CAAC,MAAM,OAAM,MAAM,YAC7C,QAAQ,EACR,iBAAiB,CACpB,CAA4B,CAAA;YAE7B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAC5C,QAAoB,EACpB,EAAE,EACF,YAAY,CACf,CAAA;gBAED,qBAAqB,CAAC,iBAAiB,GAAG,OAAO,CAAA;YACrD,CAAC;YAED,MAAM,SAAS,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,OAAQ,CAAC,CAAC,MAAM,CAC9C,CAAC,MAAA,IAAI,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAW,CAAC,CAC9D,CAAA;YAED,IAAI,iBAAiB,EAAE,CAAC;gBACpB,qBAAqB,CAAC,yBAAyB;oBAC3C,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAC5B,SAAS,CAAC,QAAQ,CAAC,GAAa,CAAC,CACpC,CAAA;YACT,CAAC;YAED,uCACO,qBAAqB,KACxB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC;qBACzC,MAAM,CACH,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACb,OAAO,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,CACtD;qBACA,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IACrC;;KACJ;IAED;;;;OAIG;IACI,WAAW,CAAC,cAAwC;QACvD,IAAI,CAAC;YACD,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC/D,OAAO,IAAI,CAAA;QACf,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAChB,OAAO,KAAK,CAAA;QAChB,CAAC;IACL,CAAC;IAEM,oCAAoC,CAAC,QAAgB;QACxD,IAAI,CAAC;YACD,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAA;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,oFAAoF;YACpF,IAAI,KAAK,YAAY,kBAAU;gBAAE,OAAM;QAC3C,CAAC;QACD,MAAM,IAAI,kBAAU,CAChB,cAAc,QAAQ,4FAA4F,CACrH,CAAA;IACL,CAAC;IAEM,qCAAqC;QACxC,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAM;QAEjC,+DAA+D;QAC/D,8BAA8B;QAC9B,KAAK,MAAM,QAAQ,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,oCAAoC,CAAC,QAAQ,CAAC,CAAA;QACvD,CAAC;IACL,CAAC;IAED;;;;OAIG;IACU,eAAe;;;YAGxB,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,sBAAsB,EAAE,CAAA;YAE7B,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;YAChE,MAAM,UAAU,GAAG,IAAA,mCAA0B,EACzC,IAAI,CAAC,OAAQ,EACb,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,mCAAI,EAAE,CACtD,CAAA;YAED,OAAO,UAAoB,CAAA;;KAC9B;IAED;;;;;;;;;;;OAWG;IACU,SAAS;;YAClB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;QAC7B,CAAC;KAAA;IAEa,WAAW,CACrB,cAA6C,IAAI,CAAC,WAAW,EAC7D,mBAA4B,IAAI;;;YAEhC,IAAI,CAAC,YAAY,EAAE,CAAA;YACnB,IAAI,CAAC,aAAa,EAAE,CAAA;YAEpB,MAAM,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,wBAAwB,EAAE,CAAA,CAAA;YAEjD,IAAI,IAAI,CAAC,eAAe,IAAI,gBAAgB,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAA;YACrC,CAAC;YAED,WAAW,aAAX,WAAW,cAAX,WAAW,IAAX,WAAW,GAAK,IAAI,CAAC,WAAW,EAAA;YAEhC,MAAM,aAAa,GAAG,iBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;YACnE,MAAM,cAAc,GAAG,iBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;YAErE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS;gBAC7B,CAAC,CAAC,iBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBAClC,CAAC,CAAC,iBAAS,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,SAAU,CAAC,CAAA;YAE5D,MAAM,YAAY,GACd,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;gBACjC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;gBAC9B,CAAC,CAAC,GAAG,CAAA;YAEb,MAAM,EAAE,GAAG,MAAA,CAAC,MAAM,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,SAAS,EAAE,CAAA,CAAC,mCAAI,EAAE,CAAA;YACrD,OAAO,GAAG,aAAa,IAAI,cAAc,IAAI,UAAU,GAAG,YAAY,GAAG,EAAE,EAAE,CAAA;;KAChF;CACJ;AAxgBD,sBAwgBC"}
|
package/build/types/hasher.d.ts
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import { HasherAlgorithm } from '@sd-jwt/utils';
|
|
2
|
-
import {
|
|
3
|
-
/**
|
|
4
|
-
* A simple hash function that takes the base64url encoded variant of the disclosure and returns the digest as a byte array
|
|
5
|
-
*/
|
|
6
|
-
export type Hasher = (input: string) => OrPromise<Uint8Array>;
|
|
2
|
+
import { Hasher, AsyncHasher } from '@sd-jwt/types';
|
|
7
3
|
/**
|
|
8
4
|
* hasher: A simple hash function that takes the base64url encoded variant of the disclosure and returns the digest as a byte array
|
|
9
5
|
* algorithm: IANA defined string for the hashing algorithm used
|
|
10
6
|
*/
|
|
11
|
-
export type HasherAndAlgorithm = {
|
|
12
|
-
hasher:
|
|
13
|
-
algorithm:
|
|
7
|
+
export type HasherAndAlgorithm<HasherImplementation extends Hasher | AsyncHasher = Hasher | AsyncHasher> = {
|
|
8
|
+
hasher: HasherImplementation;
|
|
9
|
+
algorithm: HasherAlgorithm | string;
|
|
14
10
|
};
|
package/build/types/index.d.ts
CHANGED
package/build/types/index.js
CHANGED
|
@@ -20,5 +20,4 @@ __exportStar(require("./signer"), exports);
|
|
|
20
20
|
__exportStar(require("./verifier"), exports);
|
|
21
21
|
__exportStar(require("./disclosure"), exports);
|
|
22
22
|
__exportStar(require("./saltGenerator"), exports);
|
|
23
|
-
__exportStar(require("./present"), exports);
|
|
24
23
|
//# sourceMappingURL=index.js.map
|
package/build/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,2CAAwB;AACxB,2CAAwB;AACxB,6CAA0B;AAC1B,+CAA4B;AAC5B,kDAA+B
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,2CAAwB;AACxB,2CAAwB;AACxB,6CAA0B;AAC1B,+CAA4B;AAC5B,kDAA+B"}
|
package/build/types/utils.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sd-jwt/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
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>",
|
|
@@ -37,14 +37,15 @@
|
|
|
37
37
|
"test": "node --require ts-node/register --test ./tests/*.test.ts"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@sd-jwt/decode": "0.
|
|
41
|
-
"@sd-jwt/
|
|
42
|
-
"@sd-jwt/
|
|
40
|
+
"@sd-jwt/decode": "0.2.0",
|
|
41
|
+
"@sd-jwt/present": "0.2.0",
|
|
42
|
+
"@sd-jwt/types": "0.2.0",
|
|
43
|
+
"@sd-jwt/utils": "0.2.0"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
45
46
|
"@types/node": "*",
|
|
46
47
|
"ts-node": "*",
|
|
47
48
|
"typescript": "*"
|
|
48
49
|
},
|
|
49
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "8fb68d5a23b2bf157949346a6603dc40b1594195"
|
|
50
51
|
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { DisclosureWithDigest } from './disclosures';
|
|
2
|
-
/**
|
|
3
|
-
* Mapping from a digest to the corresponding disclosure and its parent disclosures.
|
|
4
|
-
*/
|
|
5
|
-
export type DisclosureMap = {
|
|
6
|
-
[digest: string]: {
|
|
7
|
-
disclosure: DisclosureWithDigest;
|
|
8
|
-
parentDisclosures: DisclosureWithDigest[];
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Get a mapping in the structure of the pretty payload, to indicate which digests should be disclosed for a
|
|
13
|
-
* given entry.
|
|
14
|
-
*
|
|
15
|
-
* For example if you call this method with the following payload:
|
|
16
|
-
* ```ts
|
|
17
|
-
* {
|
|
18
|
-
* _sd: ['iss_digest', 'nested_field_digest'],
|
|
19
|
-
* }
|
|
20
|
-
* ```
|
|
21
|
-
*
|
|
22
|
-
* It can return the following mapping:
|
|
23
|
-
* ```ts
|
|
24
|
-
* {
|
|
25
|
-
* iss: 'iss_digest',
|
|
26
|
-
* nested_field: {
|
|
27
|
-
* __digest: 'nested_field_digest',
|
|
28
|
-
* more_nested_field: {
|
|
29
|
-
* // index 1 is null, as it's always in the payload, so doesn't need to be disclosed
|
|
30
|
-
* // separately
|
|
31
|
-
* a: ['a_0_digest', null, 'a_2_digest'],
|
|
32
|
-
* }
|
|
33
|
-
* }
|
|
34
|
-
* }
|
|
35
|
-
* ```
|
|
36
|
-
*
|
|
37
|
-
* This method will recursively call itself and `getArrayPayloadDisclosureMapping` if the value of a property is an object or array.
|
|
38
|
-
*/
|
|
39
|
-
export declare function getPayloadDisclosureMapping(payload: any, map: DisclosureMap): any[] | Record<string, unknown> | null;
|
|
40
|
-
/**
|
|
41
|
-
* Get a mapping from a digest to the corresponding disclosure and its parent disclosures.
|
|
42
|
-
*/
|
|
43
|
-
export declare const getDisclosureMap: (disclosures: DisclosureWithDigest[]) => DisclosureMap;
|