@sd-jwt/core 0.1.1 → 0.1.2-alpha.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/README.md +97 -0
- package/build/index.d.ts +2 -2
- 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/disclosureFrame.d.ts +3 -3
- package/build/sdJwt/disclosureFrame.js +4 -6
- package/build/sdJwt/disclosureFrame.js.map +1 -1
- package/build/sdJwt/disclosureMapping.d.ts +4 -5
- package/build/sdJwt/disclosureMapping.js +9 -20
- package/build/sdJwt/disclosureMapping.js.map +1 -1
- package/build/sdJwt/disclosures.d.ts +17 -2
- package/build/sdJwt/disclosures.js +60 -21
- package/build/sdJwt/disclosures.js.map +1 -1
- package/build/sdJwt/index.d.ts +1 -1
- package/build/sdJwt/index.js +1 -1
- package/build/sdJwt/index.js.map +1 -1
- package/build/sdJwt/presentationFrame.d.ts +2 -3
- package/build/sdJwt/presentationFrame.js +4 -13
- package/build/sdJwt/presentationFrame.js.map +1 -1
- package/build/sdJwt/sdJwt.d.ts +3 -2
- package/build/sdJwt/sdJwt.js +34 -13
- package/build/sdJwt/sdJwt.js.map +1 -1
- package/build/sdJwt/swapClaim.d.ts +2 -3
- package/build/sdJwt/swapClaim.js +11 -22
- package/build/sdJwt/swapClaim.js.map +1 -1
- package/build/sdJwtVc/sdJwtVc.js +10 -2
- package/build/sdJwtVc/sdJwtVc.js.map +1 -1
- package/build/types/hasher.d.ts +1 -1
- package/build/types/index.d.ts +1 -0
- package/build/types/index.js +1 -0
- package/build/types/index.js.map +1 -1
- package/build/utils/utils.d.ts +1 -0
- package/build/utils/utils.js +10 -1
- package/build/utils/utils.js.map +1 -1
- package/package.json +6 -4
- 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/README.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Selective Disclosure JWT (SD-JWT) Draft 06 & Selective Disclosure JWT VC 01
|
|
2
|
+
|
|
3
|
+
## Compliant with
|
|
4
|
+
|
|
5
|
+
- [sd-jwt
|
|
6
|
+
06](https://datatracker.ietf.org/doc/draft-ietf-oauth-selective-disclosure-jwt/06/)
|
|
7
|
+
- [sd-jwt-vc
|
|
8
|
+
01](https://datatracker.ietf.org/doc/draft-ietf-oauth-sd-jwt-vc/01/)
|
|
9
|
+
|
|
10
|
+
## Design decisions
|
|
11
|
+
|
|
12
|
+
### Bring your own crypto
|
|
13
|
+
|
|
14
|
+
This library does not provide any of the cryptographic primitives required for
|
|
15
|
+
encryption, decryption, signing, verification and hashing. It is expected that
|
|
16
|
+
the user of this library provides this. The main reason for this is that most
|
|
17
|
+
libraries have their own library and KMS. Providing private keys to this
|
|
18
|
+
library adds another layer of insecurity which should be avoided. Hashing has
|
|
19
|
+
not been added for platform compatibility between node,js, browser and React
|
|
20
|
+
Native. In the future a platform-independent sha2-256 may be provided.
|
|
21
|
+
|
|
22
|
+
### Specification backwards compatibility
|
|
23
|
+
|
|
24
|
+
Since these specifications are in early drafts, no time will be spend in
|
|
25
|
+
supporting earlier versions of the specifications. This library may work for
|
|
26
|
+
older versions, e.g. the addition of selectively disclosable items in an array
|
|
27
|
+
does not break previous implementations. Once a non-draft specification is
|
|
28
|
+
released it will stay up-to-date with that version.
|
|
29
|
+
|
|
30
|
+
### Dependencies
|
|
31
|
+
|
|
32
|
+
This library only has one dependency on `buffer` which makes sure this library
|
|
33
|
+
works in Node.js, the browser and React Native. Buffer is used internally for
|
|
34
|
+
`base64-url-no-pad` encoding.
|
|
35
|
+
|
|
36
|
+
### Usage
|
|
37
|
+
|
|
38
|
+
I'd highly recommend to check out the [examples folder](example) to see how
|
|
39
|
+
this library can be leveraged.
|
|
40
|
+
|
|
41
|
+
### Issuance API
|
|
42
|
+
|
|
43
|
+
The issuance API takes an object called a `disclosureFrame`. This
|
|
44
|
+
`disclosureFrame` is a Boolean Map of the payload which allows you to specify
|
|
45
|
+
which attributes of the payload may be selectively disclosed. If an attribute is not provided in the `disclosureFrame`, it will be included in the clear-text payload. For example:
|
|
46
|
+
|
|
47
|
+
```jsonc
|
|
48
|
+
// The payload
|
|
49
|
+
{
|
|
50
|
+
"iss": "https://example.org/issuer",
|
|
51
|
+
"is_age_over_21": true,
|
|
52
|
+
"is_age_over_24": true,
|
|
53
|
+
"is_age_over_65": false,
|
|
54
|
+
"date_of_birth": "1990-01-01",
|
|
55
|
+
"address": {
|
|
56
|
+
"street": "some street",
|
|
57
|
+
"house_number": 200,
|
|
58
|
+
"zipcode": "2344GH"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
```jsonc
|
|
64
|
+
// The disclosure frame
|
|
65
|
+
{
|
|
66
|
+
"is_age_over_21": true,
|
|
67
|
+
"is_age_over_24": true,
|
|
68
|
+
"is_age_over_65": true,
|
|
69
|
+
"date_of_birth": true,
|
|
70
|
+
"address": {
|
|
71
|
+
"street": true,
|
|
72
|
+
"house_number": true,
|
|
73
|
+
"zipcode": true
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// or to only disclose the address as a group
|
|
78
|
+
{
|
|
79
|
+
"is_age_over_21": true,
|
|
80
|
+
"is_age_over_24": true,
|
|
81
|
+
"is_age_over_65": true,
|
|
82
|
+
"date_of_birth": true,
|
|
83
|
+
"address": true
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Presentation and verification API
|
|
88
|
+
|
|
89
|
+
Since there is officially standardized way to request and present a
|
|
90
|
+
presentation, [High Assurance Interoperability
|
|
91
|
+
Profile](https://vcstuff.github.io/oid4vc-haip-sd-jwt-vc/draft-oid4vc-haip-sd-jwt-vc.html)
|
|
92
|
+
may be used, the API is defined in a way which works in a primitive manner for
|
|
93
|
+
now. For example, to present you can provide a list of indices of the
|
|
94
|
+
disclosures which will be included. Examples of this can be found in the
|
|
95
|
+
[examples folder](example). For verification a list of keys or required
|
|
96
|
+
claims can be provided. It does not matter whether these are selectively
|
|
97
|
+
disclosable claims, or if they are included inside the payload.
|
package/build/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
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 { Hasher, Signer, Verifier, VerifyOptions, SaltGenerator, DisclosureItem, DisclosureFrame, HasherAndAlgorithm } from './types';
|
|
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":";;;
|
|
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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DisclosureFrame } from '../types';
|
|
2
|
-
import {
|
|
2
|
+
import { DisclosureWithDigest } from './disclosures';
|
|
3
3
|
import { SaltGenerator, Hasher } from '../types';
|
|
4
|
-
export declare const applyDisclosureFrame: <Payload extends Record<string, unknown> = Record<string, unknown>>(saltGenerator: SaltGenerator, hasher: Hasher, payload: Payload, frame: DisclosureFrame<Payload>, keys?: Array<string>, cleanup?: Array<Array<string>>, disclosures?: Array<
|
|
4
|
+
export declare const applyDisclosureFrame: <Payload extends Record<string, unknown> = Record<string, unknown>>(saltGenerator: SaltGenerator, hasher: Hasher, payload: Payload, frame: DisclosureFrame<Payload>, keys?: Array<string>, cleanup?: Array<Array<string>>, disclosures?: Array<DisclosureWithDigest>) => Promise<{
|
|
5
5
|
payload: Record<string, unknown>;
|
|
6
|
-
disclosures: Array<
|
|
6
|
+
disclosures: Array<DisclosureWithDigest>;
|
|
7
7
|
}>;
|
|
@@ -31,11 +31,10 @@ 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 = new disclosures_1.Disclosure(salt, payload[key], key);
|
|
34
|
+
const disclosure = yield new disclosures_1.Disclosure(salt, payload[key], key).withCalculateDigest(hasher);
|
|
35
35
|
disclosures.push(disclosure);
|
|
36
|
-
const digest = yield disclosure.digest(hasher);
|
|
37
36
|
const sd = Array.from((_b = payload._sd) !== null && _b !== void 0 ? _b : []);
|
|
38
|
-
sd.push(digest);
|
|
37
|
+
sd.push(disclosure.digest);
|
|
39
38
|
//@ts-ignore
|
|
40
39
|
payload._sd = sd.sort();
|
|
41
40
|
cleanup.push(newKeys);
|
|
@@ -65,10 +64,9 @@ const applyDisclosureFrame = (saltGenerator, hasher, payload, frame, keys = [],
|
|
|
65
64
|
const frameValue = frameValueArray[i];
|
|
66
65
|
if (frameValue) {
|
|
67
66
|
const salt = yield saltGenerator();
|
|
68
|
-
const disclosure = new disclosures_1.Disclosure(salt, payloadValue);
|
|
67
|
+
const disclosure = yield new disclosures_1.Disclosure(salt, payloadValue).withCalculateDigest(hasher);
|
|
69
68
|
disclosures.push(disclosure);
|
|
70
|
-
|
|
71
|
-
newPayloadArray.push({ '...': digest });
|
|
69
|
+
newPayloadArray.push({ '...': disclosure.digest });
|
|
72
70
|
}
|
|
73
71
|
else {
|
|
74
72
|
newPayloadArray.push(payloadValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disclosureFrame.js","sourceRoot":"","sources":["../../src/sdJwt/disclosureFrame.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oCAAuC;AACvC,qCAAuC;AACvC,+
|
|
1
|
+
{"version":3,"file":"disclosureFrame.js","sourceRoot":"","sources":["../../src/sdJwt/disclosureFrame.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Disclosure } from './disclosures';
|
|
1
|
+
import { DisclosureWithDigest } from './disclosures';
|
|
3
2
|
/**
|
|
4
3
|
* Mapping from a digest to the corresponding disclosure and its parent disclosures.
|
|
5
4
|
*/
|
|
6
5
|
export type DisclosureMap = {
|
|
7
6
|
[digest: string]: {
|
|
8
|
-
disclosure:
|
|
9
|
-
parentDisclosures:
|
|
7
|
+
disclosure: DisclosureWithDigest;
|
|
8
|
+
parentDisclosures: DisclosureWithDigest[];
|
|
10
9
|
};
|
|
11
10
|
};
|
|
12
11
|
/**
|
|
@@ -41,4 +40,4 @@ export declare function getPayloadDisclosureMapping(payload: any, map: Disclosur
|
|
|
41
40
|
/**
|
|
42
41
|
* Get a mapping from a digest to the corresponding disclosure and its parent disclosures.
|
|
43
42
|
*/
|
|
44
|
-
export declare const getDisclosureMap: (disclosures:
|
|
43
|
+
export declare const getDisclosureMap: (disclosures: DisclosureWithDigest[]) => DisclosureMap;
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// This file contains helpers functions for mapping between disclosures entries and the payload of an SD-JWT.
|
|
3
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
4
|
exports.getDisclosureMap = exports.getPayloadDisclosureMapping = void 0;
|
|
14
5
|
const utils_1 = require("../utils");
|
|
@@ -234,22 +225,20 @@ function getPayloadDisclosureMapping(payload, map) {
|
|
|
234
225
|
return payloadDisclosureMapping;
|
|
235
226
|
}
|
|
236
227
|
exports.getPayloadDisclosureMapping = getPayloadDisclosureMapping;
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
const getParentDisclosure = (disclosure, digestMap, hasher) => __awaiter(void 0, void 0, void 0, function* () {
|
|
240
|
-
const parent = digestMap[yield disclosure.digest(hasher)];
|
|
228
|
+
const getParentDisclosure = (disclosure, digestMap) => {
|
|
229
|
+
const parent = digestMap[disclosure.digest];
|
|
241
230
|
if (!parent) {
|
|
242
231
|
return [];
|
|
243
232
|
}
|
|
244
|
-
if (digestMap[
|
|
245
|
-
return [parent].concat(
|
|
233
|
+
if (digestMap[disclosure.digest]) {
|
|
234
|
+
return [parent].concat(getParentDisclosure(parent, digestMap));
|
|
246
235
|
}
|
|
247
236
|
return [parent];
|
|
248
|
-
}
|
|
237
|
+
};
|
|
249
238
|
/**
|
|
250
239
|
* Get a mapping from a digest to the corresponding disclosure and its parent disclosures.
|
|
251
240
|
*/
|
|
252
|
-
const getDisclosureMap = (disclosures
|
|
241
|
+
const getDisclosureMap = (disclosures) => {
|
|
253
242
|
const map = {};
|
|
254
243
|
const parentMap = {};
|
|
255
244
|
for (const disclosure of disclosures) {
|
|
@@ -277,13 +266,13 @@ const getDisclosureMap = (disclosures, hasher) => __awaiter(void 0, void 0, void
|
|
|
277
266
|
});
|
|
278
267
|
}
|
|
279
268
|
for (const disclosure of disclosures) {
|
|
280
|
-
const parent =
|
|
281
|
-
map[
|
|
269
|
+
const parent = getParentDisclosure(disclosure, parentMap);
|
|
270
|
+
map[disclosure.digest] = {
|
|
282
271
|
disclosure,
|
|
283
272
|
parentDisclosures: parent
|
|
284
273
|
};
|
|
285
274
|
}
|
|
286
275
|
return map;
|
|
287
|
-
}
|
|
276
|
+
};
|
|
288
277
|
exports.getDisclosureMap = getDisclosureMap;
|
|
289
278
|
//# sourceMappingURL=disclosureMapping.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disclosureMapping.js","sourceRoot":"","sources":["../../src/sdJwt/disclosureMapping.ts"],"names":[],"mappings":";AAAA,6GAA6G
|
|
1
|
+
{"version":3,"file":"disclosureMapping.js","sourceRoot":"","sources":["../../src/sdJwt/disclosureMapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
import { DisclosureItem, Hasher } from '../types';
|
|
2
|
+
export type DisclosureWithDigest = Disclosure & {
|
|
3
|
+
digest: string;
|
|
4
|
+
};
|
|
2
5
|
export declare class Disclosure {
|
|
6
|
+
#private;
|
|
3
7
|
private salt;
|
|
4
8
|
private key?;
|
|
5
9
|
private value;
|
|
6
|
-
private _digest;
|
|
7
10
|
constructor(salt: string, value: unknown, key?: string);
|
|
8
11
|
static fromString(s: string): Disclosure;
|
|
9
12
|
static fromArray(item: DisclosureItem): Disclosure;
|
|
10
13
|
get encoded(): string;
|
|
11
14
|
get decoded(): DisclosureItem;
|
|
12
|
-
digest(
|
|
15
|
+
get digest(): string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Set the digest of the disclosure.
|
|
18
|
+
*
|
|
19
|
+
* NOTE: this method statically sets the digest, and does not verify whether the digest is correct.
|
|
20
|
+
* If you want to calculate the digest, use the `withCalculateDigest` method instead.
|
|
21
|
+
*/
|
|
22
|
+
withDigest(digest: string): DisclosureWithDigest;
|
|
23
|
+
withCalculateDigest<HasherImplementation extends Hasher>(hasher: HasherImplementation, { recalculate }?: {
|
|
24
|
+
recalculate?: boolean;
|
|
25
|
+
}): WithCalculateDigestReturnType<HasherImplementation>;
|
|
13
26
|
toString(): string;
|
|
14
27
|
}
|
|
28
|
+
export type WithCalculateDigestReturnType<HasherImplementation extends Hasher> = ReturnType<HasherImplementation> extends Promise<any> ? Promise<DisclosureWithDigest> : DisclosureWithDigest;
|
|
29
|
+
export declare function isDisclosureWithDigest(disclosure: Disclosure): disclosure is DisclosureWithDigest;
|