@atlasauth/pca-sdjwt 0.2.0 → 0.4.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/README.md +16 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.js +213 -37
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -47,8 +47,23 @@ else console.error(res.reason);
|
|
|
47
47
|
|
|
48
48
|
## Status
|
|
49
49
|
|
|
50
|
-
Experimental. Verifying an SD-JWT checks the issuer's JWT signature, disclosure digests and key binding. It does not re-run the PCA verification of the embedded chain, plan and `sig`; do that with `@atlasauth/pca` on the recovered claims. The
|
|
50
|
+
Experimental. Verifying an SD-JWT checks the issuer's JWT signature, disclosure digests and key binding. It does not re-run the PCA verification of the embedded chain, plan and `sig`; do that with `@atlasauth/pca` on the recovered claims. The cryptography is unaudited.
|
|
51
|
+
|
|
52
|
+
What is validated:
|
|
53
|
+
|
|
54
|
+
- All eight SD-JWT and SD-JWT+KB strings printed in RFC 9901 (the main example with its Key Binding JWT, the structured and recursive examples, and the SD-JWT VC and W3C VC examples) verify under the RFC's published issuer key. The Processed SD-JWT Payload for the main presentation matches the RFC exactly.
|
|
55
|
+
- Verification follows RFC 9901 section 7.1: nested `_sd` digests and array-element disclosures are resolved recursively, decoy digests are ignored, and a presentation is rejected for a reused digest, an unreferenced disclosure, a reserved or colliding claim name, or a security-critical claim (`iss`, `aud`, `exp`, `nbf`, `cnf`, `status`) behind a disclosure. A missing `_sd_alg` is treated as `sha-256`.
|
|
56
|
+
- Key binding rejects a wrong `nonce`, wrong audience, a stale `iat` (with `kbMaxAgeSec`), a missing KB-JWT when required, and an `sd_hash` that does not cover the presented disclosures.
|
|
57
|
+
- Interoperates in both directions with `@sd-jwt/core` 0.22.0 and `@sd-jwt/crypto-nodejs` 0.19.0: credentials they issue (nested objects, arrays, KB-JWT) verify here, and presentations produced here verify there, including rejection of a wrong nonce.
|
|
58
|
+
|
|
59
|
+
`present()` accepts claim names; selecting a claim discloses it in full, including any disclosures nested inside it.
|
|
60
|
+
|
|
61
|
+
Not validated: only SHA-256 is supported for `_sd_alg`; the JWS JSON serialization (RFC 9901 section 8) is not implemented; the specification's SD-JWT VC type metadata and issuer-key discovery are out of scope.
|
|
51
62
|
|
|
52
63
|
## License
|
|
53
64
|
|
|
54
65
|
MIT - see LICENSE
|
|
66
|
+
|
|
67
|
+
## Canonical token spelling
|
|
68
|
+
|
|
69
|
+
Before any JOSE verification this package runs `assertCanonicalCompactJws` from `@atlasauth/pca` on the issuer JWT, the KB-JWT and every Disclosure segment: one accepted string form per token, so the token string (or its hash) is safe to use as a dedupe / replay / ledger key. Padded, `+` `/` alphabet, altered-trailing-bit, whitespace and duplicate-header-key re-encodings are rejected with a typed reason before the signature is even checked.
|
package/dist/index.d.ts
CHANGED
|
@@ -157,6 +157,11 @@ export interface VerifyOptions {
|
|
|
157
157
|
* issuer's `cnf` key equals this key (JWK, raw Ed25519 bytes, or a `KeyLike`).
|
|
158
158
|
*/
|
|
159
159
|
keyBindingKey?: KeyLike | JWK | Uint8Array;
|
|
160
|
+
/**
|
|
161
|
+
* When set, the KB-JWT `aud` MUST equal this, independent of the issuer JWT's `aud` (RFC 9901 §7.3 step 5f).
|
|
162
|
+
* Takes precedence over `expectedAudience` for the KB-JWT only.
|
|
163
|
+
*/
|
|
164
|
+
expectedKbAudience?: string;
|
|
160
165
|
/** When set, the KB-JWT `nonce` MUST equal this. */
|
|
161
166
|
expectedNonce?: string;
|
|
162
167
|
/** Require a KB-JWT even without `keyBindingKey` (default false). */
|
|
@@ -167,6 +172,8 @@ export interface VerifyOptions {
|
|
|
167
172
|
kbAlgorithms?: string[];
|
|
168
173
|
/** Verification clock (unix ms); defaults to the real clock. */
|
|
169
174
|
now?: number;
|
|
175
|
+
/** When set, the KB-JWT `iat` MUST be within this many seconds of `now` (RFC 9901 §7.3 step 5e). */
|
|
176
|
+
kbMaxAgeSec?: number;
|
|
170
177
|
/** Clock tolerance (seconds) passed through to jose. */
|
|
171
178
|
clockToleranceSec?: number;
|
|
172
179
|
}
|
|
@@ -174,6 +181,8 @@ export type VerifyResult = {
|
|
|
174
181
|
ok: true;
|
|
175
182
|
/** The issuer JWT payload (standard + any clear capability claims). */
|
|
176
183
|
payload: JWTPayload;
|
|
184
|
+
/** The Processed SD-JWT Payload (RFC 9901 §7.1): all presented disclosures resolved, `_sd`/`_sd_alg` removed. */
|
|
185
|
+
processed: Record<string, unknown>;
|
|
177
186
|
/** The issuer JWT protected header. */
|
|
178
187
|
protectedHeader: JWTHeaderParameters;
|
|
179
188
|
/** The capability claims recovered from the presented Disclosures. */
|
package/dist/index.js
CHANGED
|
@@ -65,6 +65,7 @@ exports.present = present;
|
|
|
65
65
|
exports.verifyPcaSdJwt = verifyPcaSdJwt;
|
|
66
66
|
const node_crypto_1 = require("node:crypto");
|
|
67
67
|
const jose_1 = require("jose");
|
|
68
|
+
const pca_1 = require("@atlasauth/pca");
|
|
68
69
|
// ===================================================================================================
|
|
69
70
|
// Constants
|
|
70
71
|
// ===================================================================================================
|
|
@@ -108,6 +109,8 @@ exports.PCA_CAPABILITY_CLAIMS = [
|
|
|
108
109
|
const STANDARD_MAPPED = new Set(['aud', 'iat', 'exp']);
|
|
109
110
|
/** Field carried in the clear as a discriminator (not disclosable). */
|
|
110
111
|
const CLEAR_DISCRIMINATOR = 'ver';
|
|
112
|
+
/** Claims RFC 9901 §9.7 treats as security-critical: never accepted behind a Disclosure. */
|
|
113
|
+
const CRITICAL_CLAIMS = new Set(['iss', 'aud', 'exp', 'nbf', 'cnf', 'status']);
|
|
111
114
|
/** Reserved top-level claim names that are never treated as recovered capability claims. */
|
|
112
115
|
const RESERVED_CLAIMS = new Set(['iss', 'sub', 'aud', 'iat', 'exp', '_sd', '_sd_alg', 'cnf']);
|
|
113
116
|
// ===================================================================================================
|
|
@@ -249,7 +252,14 @@ function parseSdJwt(sdjwt) {
|
|
|
249
252
|
if (jwt === undefined || jwt === '')
|
|
250
253
|
throw new Error('pca-sdjwt: empty issuer JWT');
|
|
251
254
|
const last = segments[segments.length - 1];
|
|
252
|
-
|
|
255
|
+
// Empty middle segments (`a~~b`) are an aliasing vector: reject rather than silently dropping them.
|
|
256
|
+
const disclosures = segments.slice(1, segments.length - 1);
|
|
257
|
+
if (disclosures.some((s) => s.length === 0))
|
|
258
|
+
throw new Error('pca-sdjwt: empty disclosure segment');
|
|
259
|
+
// Canonical-spelling gate BEFORE jose: one accepted string form per issuer JWT / KB-JWT.
|
|
260
|
+
(0, pca_1.assertCanonicalCompactJws)(jwt);
|
|
261
|
+
if (last !== undefined && last !== '')
|
|
262
|
+
(0, pca_1.assertCanonicalCompactJws)(last);
|
|
253
263
|
if (last === undefined || last === '') {
|
|
254
264
|
// No KB-JWT: the string ends with '~'. The whole string is the presentation head.
|
|
255
265
|
return { jwt, disclosures, presentationHead: sdjwt };
|
|
@@ -258,21 +268,44 @@ function parseSdJwt(sdjwt) {
|
|
|
258
268
|
const presentationHead = sdjwt.slice(0, sdjwt.length - last.length);
|
|
259
269
|
return { jwt, disclosures, kbJwt: last, presentationHead };
|
|
260
270
|
}
|
|
261
|
-
function
|
|
271
|
+
function decodeDisclosureParts(encoded) {
|
|
262
272
|
let parsed;
|
|
263
273
|
try {
|
|
264
|
-
parsed =
|
|
274
|
+
parsed = (0, pca_1.decodeCanonicalJsonSegment)(encoded);
|
|
265
275
|
}
|
|
266
276
|
catch {
|
|
267
|
-
throw new Error('pca-sdjwt: disclosure is not
|
|
277
|
+
throw new Error('pca-sdjwt: disclosure is not canonical base64url strict JSON');
|
|
268
278
|
}
|
|
269
|
-
if (!Array.isArray(parsed) || parsed.length !== 3)
|
|
270
|
-
throw new Error('pca-sdjwt: disclosure must be a [salt, name, value] triple');
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
279
|
+
if (!Array.isArray(parsed) || (parsed.length !== 2 && parsed.length !== 3)) {
|
|
280
|
+
throw new Error('pca-sdjwt: disclosure must be a [salt, name, value] triple or a [salt, value] pair');
|
|
281
|
+
}
|
|
282
|
+
if (typeof parsed[0] !== 'string')
|
|
283
|
+
throw new Error('pca-sdjwt: disclosure salt must be a string');
|
|
284
|
+
return { parts: parsed };
|
|
285
|
+
}
|
|
286
|
+
// ===================================================================================================
|
|
287
|
+
// Holder presentation
|
|
288
|
+
// ===================================================================================================
|
|
289
|
+
/** Every digest referenced by `_sd` arrays or `{"...": digest}` array entries anywhere inside `node`. */
|
|
290
|
+
function collectDigests(node) {
|
|
291
|
+
const out = [];
|
|
292
|
+
const visit = (n) => {
|
|
293
|
+
if (Array.isArray(n)) {
|
|
294
|
+
n.forEach(visit);
|
|
295
|
+
}
|
|
296
|
+
else if (isPlainObject(n)) {
|
|
297
|
+
for (const [k, v] of Object.entries(n)) {
|
|
298
|
+
if (k === '_sd' && Array.isArray(v))
|
|
299
|
+
out.push(...v.filter((x) => typeof x === 'string'));
|
|
300
|
+
else if (k === '...' && typeof v === 'string')
|
|
301
|
+
out.push(v);
|
|
302
|
+
else
|
|
303
|
+
visit(v);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
visit(node);
|
|
308
|
+
return out;
|
|
276
309
|
}
|
|
277
310
|
/**
|
|
278
311
|
* Produce a holder presentation of an issued SD-JWT that discloses ONLY `selectClaims` (by claim name) and
|
|
@@ -283,12 +316,48 @@ function decodeDisclosure(encoded) {
|
|
|
283
316
|
async function present(sdjwt, selectClaims, options) {
|
|
284
317
|
const parsed = parseSdJwt(sdjwt);
|
|
285
318
|
const keep = new Set(selectClaims);
|
|
286
|
-
const
|
|
287
|
-
for (const encoded of parsed.disclosures)
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
319
|
+
const byDigest = new Map();
|
|
320
|
+
for (const encoded of parsed.disclosures)
|
|
321
|
+
byDigest.set(sha256b64u(encoded), encoded);
|
|
322
|
+
// Selecting a claim discloses it in full: its Disclosure plus every Disclosure nested inside its value.
|
|
323
|
+
const keptDigests = new Set();
|
|
324
|
+
const include = (digest) => {
|
|
325
|
+
const encoded = byDigest.get(digest);
|
|
326
|
+
if (encoded === undefined || keptDigests.has(digest))
|
|
327
|
+
return;
|
|
328
|
+
keptDigests.add(digest);
|
|
329
|
+
const { parts } = decodeDisclosureParts(encoded);
|
|
330
|
+
for (const d of collectDigests(parts[parts.length - 1]))
|
|
331
|
+
include(d);
|
|
332
|
+
};
|
|
333
|
+
let payload;
|
|
334
|
+
try {
|
|
335
|
+
payload = JSON.parse(Buffer.from(parsed.jwt.split('.')[1] ?? '', 'base64url').toString('utf8'));
|
|
291
336
|
}
|
|
337
|
+
catch {
|
|
338
|
+
throw new Error('pca-sdjwt: issuer JWT payload is not valid base64url JSON');
|
|
339
|
+
}
|
|
340
|
+
if (isPlainObject(payload)) {
|
|
341
|
+
// Object-property Disclosures referenced from the top-level `_sd`, selected by claim name.
|
|
342
|
+
const sd = Array.isArray(payload._sd) ? payload._sd : [];
|
|
343
|
+
for (const digest of sd) {
|
|
344
|
+
if (typeof digest !== 'string')
|
|
345
|
+
continue;
|
|
346
|
+
const encoded = byDigest.get(digest);
|
|
347
|
+
if (encoded === undefined)
|
|
348
|
+
continue;
|
|
349
|
+
const { parts } = decodeDisclosureParts(encoded);
|
|
350
|
+
if (typeof parts[1] === 'string' && parts.length === 3 && keep.has(parts[1]))
|
|
351
|
+
include(digest);
|
|
352
|
+
}
|
|
353
|
+
// Clear claims that contain selectively-disclosable parts (e.g. an array with `...` entries).
|
|
354
|
+
for (const key of Object.keys(payload)) {
|
|
355
|
+
if (key !== '_sd' && keep.has(key))
|
|
356
|
+
for (const d of collectDigests(payload[key]))
|
|
357
|
+
include(d);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
const kept = parsed.disclosures.filter((e) => keptDigests.has(sha256b64u(e)));
|
|
292
361
|
const head = [parsed.jwt, ...kept].join('~') + '~';
|
|
293
362
|
if (!options?.keyBinding)
|
|
294
363
|
return head;
|
|
@@ -309,6 +378,96 @@ async function jwkThumbX(k) {
|
|
|
309
378
|
const j = await (0, jose_1.exportJWK)(k);
|
|
310
379
|
return typeof j.x === 'string' ? j.x : undefined;
|
|
311
380
|
}
|
|
381
|
+
class SdJwtProcessingError extends Error {
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* RFC 9901 §7.1 step 3-5 payload processing: resolve `_sd` digests in objects and `{"...": digest}`
|
|
385
|
+
* array elements recursively, rejecting reserved/colliding names, reused digests and unreferenced
|
|
386
|
+
* Disclosures. Returns the Processed SD-JWT Payload (without `_sd` / `_sd_alg`) and the names disclosed at
|
|
387
|
+
* the top level.
|
|
388
|
+
*/
|
|
389
|
+
function processDisclosures(payload, byDigest) {
|
|
390
|
+
const seen = new Set();
|
|
391
|
+
const claimDigest = (d) => {
|
|
392
|
+
if (seen.has(d))
|
|
393
|
+
throw new SdJwtProcessingError('a digest appears more than once in the payload');
|
|
394
|
+
seen.add(d);
|
|
395
|
+
return byDigest.get(d);
|
|
396
|
+
};
|
|
397
|
+
const disclosedTop = {};
|
|
398
|
+
const walk = (node, top) => {
|
|
399
|
+
if (Array.isArray(node)) {
|
|
400
|
+
const out = [];
|
|
401
|
+
for (const el of node) {
|
|
402
|
+
const keys = isPlainObject(el) ? Object.keys(el) : [];
|
|
403
|
+
if (isPlainObject(el) && keys.length === 1 && keys[0] === '...') {
|
|
404
|
+
const digest = el['...'];
|
|
405
|
+
if (typeof digest !== 'string')
|
|
406
|
+
throw new SdJwtProcessingError("an array '...' entry must reference a string digest");
|
|
407
|
+
const d = claimDigest(digest);
|
|
408
|
+
if (d === undefined)
|
|
409
|
+
continue; // undisclosed element or decoy: removed
|
|
410
|
+
if (d.parts.length !== 2)
|
|
411
|
+
throw new SdJwtProcessingError('an array-element disclosure must be [salt, value]');
|
|
412
|
+
d.used = true;
|
|
413
|
+
out.push(walk(d.parts[1], false));
|
|
414
|
+
}
|
|
415
|
+
else {
|
|
416
|
+
out.push(walk(el, false));
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
return out;
|
|
420
|
+
}
|
|
421
|
+
if (isPlainObject(node)) {
|
|
422
|
+
const out = {};
|
|
423
|
+
for (const key of Object.keys(node)) {
|
|
424
|
+
if (key === '_sd')
|
|
425
|
+
continue;
|
|
426
|
+
out[key] = walk(node[key], false);
|
|
427
|
+
}
|
|
428
|
+
const sd = node._sd;
|
|
429
|
+
if (sd !== undefined) {
|
|
430
|
+
if (!Array.isArray(sd) || !sd.every((x) => typeof x === 'string')) {
|
|
431
|
+
throw new SdJwtProcessingError('_sd must be an array of strings');
|
|
432
|
+
}
|
|
433
|
+
for (const digest of sd) {
|
|
434
|
+
const d = claimDigest(digest);
|
|
435
|
+
if (d === undefined)
|
|
436
|
+
continue; // decoy or undisclosed claim
|
|
437
|
+
if (d.parts.length !== 3)
|
|
438
|
+
throw new SdJwtProcessingError('an object-property disclosure must be [salt, name, value]');
|
|
439
|
+
const name = d.parts[1];
|
|
440
|
+
if (typeof name !== 'string')
|
|
441
|
+
throw new SdJwtProcessingError('disclosure claim name must be a string');
|
|
442
|
+
if (name === '_sd' || name === '...')
|
|
443
|
+
throw new SdJwtProcessingError(`disclosure claim name '${name}' is reserved`);
|
|
444
|
+
if (Object.prototype.hasOwnProperty.call(out, name)) {
|
|
445
|
+
throw new SdJwtProcessingError(`disclosure claim '${name}' collides with an existing claim`);
|
|
446
|
+
}
|
|
447
|
+
if (top && CRITICAL_CLAIMS.has(name)) {
|
|
448
|
+
throw new SdJwtProcessingError(`'${name}' is security-critical and must not be selectively disclosable`);
|
|
449
|
+
}
|
|
450
|
+
d.used = true;
|
|
451
|
+
const value = walk(d.parts[2], false);
|
|
452
|
+
out[name] = value;
|
|
453
|
+
if (top)
|
|
454
|
+
disclosedTop[name] = value;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
return out;
|
|
458
|
+
}
|
|
459
|
+
return node;
|
|
460
|
+
};
|
|
461
|
+
const processed = walk(payload, true);
|
|
462
|
+
if (!isPlainObject(processed))
|
|
463
|
+
throw new SdJwtProcessingError('payload is not an object');
|
|
464
|
+
delete processed._sd_alg;
|
|
465
|
+
for (const d of byDigest.values()) {
|
|
466
|
+
if (!d.used)
|
|
467
|
+
throw new SdJwtProcessingError('a presented disclosure is not referenced by any digest in the payload');
|
|
468
|
+
}
|
|
469
|
+
return { processed, disclosedTop };
|
|
470
|
+
}
|
|
312
471
|
/**
|
|
313
472
|
* Verify a PCA SD-JWT, FAIL-CLOSED: any bad signature, unknown `_sd_alg`, unmatched/forged Disclosure,
|
|
314
473
|
* audience/expiry violation, or key-binding failure returns `{ ok: false }`. On success it returns the
|
|
@@ -331,25 +490,32 @@ async function verifyPcaSdJwt(sdjwt, options) {
|
|
|
331
490
|
});
|
|
332
491
|
const payload = verified.payload;
|
|
333
492
|
const protectedHeader = verified.protectedHeader;
|
|
334
|
-
// _sd / Disclosure matching.
|
|
335
|
-
|
|
336
|
-
if (
|
|
493
|
+
// _sd / Disclosure matching (RFC 9901 §7.1), recursive over nested objects and arrays.
|
|
494
|
+
// `_sd_alg` defaults to sha-256 when absent; any other value is unsupported.
|
|
495
|
+
if (payload._sd_alg !== undefined && payload._sd_alg !== exports.SD_ALG) {
|
|
337
496
|
return { ok: false, reason: `unsupported _sd_alg (require "${exports.SD_ALG}")` };
|
|
338
497
|
}
|
|
339
|
-
const
|
|
340
|
-
const disclosed = {};
|
|
341
|
-
const seenDigests = new Set();
|
|
498
|
+
const byDigest = new Map();
|
|
342
499
|
for (const encoded of parsed.disclosures) {
|
|
343
500
|
const digest = sha256b64u(encoded);
|
|
344
|
-
if (
|
|
345
|
-
return { ok: false, reason: 'a presented disclosure does not match any _sd digest (tampered)' };
|
|
346
|
-
if (seenDigests.has(digest))
|
|
501
|
+
if (byDigest.has(digest))
|
|
347
502
|
return { ok: false, reason: 'duplicate disclosure' };
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
503
|
+
const { parts } = decodeDisclosureParts(encoded);
|
|
504
|
+
byDigest.set(digest, { encoded, parts, used: false });
|
|
505
|
+
}
|
|
506
|
+
let processedPayload;
|
|
507
|
+
let disclosed;
|
|
508
|
+
try {
|
|
509
|
+
const r = processDisclosures(payload, byDigest);
|
|
510
|
+
processedPayload = r.processed;
|
|
511
|
+
disclosed = r.disclosedTop;
|
|
512
|
+
}
|
|
513
|
+
catch (e) {
|
|
514
|
+
if (e instanceof SdJwtProcessingError) {
|
|
515
|
+
const unmatched = e.message.includes('not referenced');
|
|
516
|
+
return { ok: false, reason: unmatched ? 'a presented disclosure does not match any _sd digest (tampered)' : e.message };
|
|
517
|
+
}
|
|
518
|
+
throw e;
|
|
353
519
|
}
|
|
354
520
|
for (const required of options.requiredDisclosures ?? []) {
|
|
355
521
|
if (!Object.prototype.hasOwnProperty.call(disclosed, required)) {
|
|
@@ -373,9 +539,10 @@ async function verifyPcaSdJwt(sdjwt, options) {
|
|
|
373
539
|
const kbKey = await (0, jose_1.importJWK)(cnfJwk, kbAlgorithms[0] ?? exports.DEFAULT_SIGNING_ALG);
|
|
374
540
|
let kb;
|
|
375
541
|
try {
|
|
542
|
+
const kbAudience = options.expectedKbAudience ?? options.expectedAudience;
|
|
376
543
|
kb = await (0, jose_1.jwtVerify)(parsed.kbJwt, kbKey, {
|
|
377
544
|
algorithms: kbAlgorithms,
|
|
378
|
-
...(
|
|
545
|
+
...(kbAudience !== undefined ? { audience: kbAudience } : {}),
|
|
379
546
|
...(options.now !== undefined ? { currentDate: new Date(options.now) } : {}),
|
|
380
547
|
...(options.clockToleranceSec !== undefined ? { clockTolerance: options.clockToleranceSec } : {}),
|
|
381
548
|
});
|
|
@@ -385,6 +552,17 @@ async function verifyPcaSdJwt(sdjwt, options) {
|
|
|
385
552
|
}
|
|
386
553
|
if (kb.protectedHeader.typ !== exports.KB_JWT_TYP)
|
|
387
554
|
return { ok: false, reason: `KB-JWT typ must be "${exports.KB_JWT_TYP}"` };
|
|
555
|
+
if (typeof kb.payload.iat !== 'number')
|
|
556
|
+
return { ok: false, reason: 'KB-JWT iat is required' };
|
|
557
|
+
if (options.kbMaxAgeSec !== undefined) {
|
|
558
|
+
const nowSec = Math.floor((options.now ?? Date.now()) / 1000);
|
|
559
|
+
if (nowSec - kb.payload.iat > options.kbMaxAgeSec)
|
|
560
|
+
return { ok: false, reason: 'KB-JWT is older than the accepted window' };
|
|
561
|
+
if (kb.payload.iat - nowSec > (options.clockToleranceSec ?? 0))
|
|
562
|
+
return { ok: false, reason: 'KB-JWT iat is in the future' };
|
|
563
|
+
}
|
|
564
|
+
if (typeof kb.payload.aud !== 'string' && !Array.isArray(kb.payload.aud))
|
|
565
|
+
return { ok: false, reason: 'KB-JWT aud is required' };
|
|
388
566
|
if (kb.payload.sd_hash !== sha256b64u(parsed.presentationHead)) {
|
|
389
567
|
return { ok: false, reason: 'KB-JWT sd_hash does not cover this presentation' };
|
|
390
568
|
}
|
|
@@ -400,15 +578,13 @@ async function verifyPcaSdJwt(sdjwt, options) {
|
|
|
400
578
|
else if (options.keyBindingKey !== undefined || options.requireKeyBinding) {
|
|
401
579
|
return { ok: false, reason: 'key binding required but no KB-JWT was presented' };
|
|
402
580
|
}
|
|
403
|
-
// Recovered capability claims = clear (non-reserved) ∪ disclosed.
|
|
581
|
+
// Recovered capability claims = clear (non-reserved) ∪ disclosed, from the Processed SD-JWT Payload.
|
|
404
582
|
const claims = {};
|
|
405
|
-
for (const key of Object.keys(
|
|
583
|
+
for (const key of Object.keys(processedPayload)) {
|
|
406
584
|
if (!RESERVED_CLAIMS.has(key))
|
|
407
|
-
claims[key] =
|
|
585
|
+
claims[key] = processedPayload[key];
|
|
408
586
|
}
|
|
409
|
-
|
|
410
|
-
claims[key] = disclosed[key];
|
|
411
|
-
return { ok: true, payload, protectedHeader, disclosed, claims, keyBinding };
|
|
587
|
+
return { ok: true, payload, processed: processedPayload, protectedHeader, disclosed, claims, keyBinding };
|
|
412
588
|
}
|
|
413
589
|
catch (e) {
|
|
414
590
|
return { ok: false, reason: e.message };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlasauth/pca-sdjwt",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "SD-JWT serialization of a PCActn for PCA: emit/verify a PCActn (and its capability claims) as a selectively-disclosable SD-JWT so PCA proofs drop into existing JWT/SD-JWT verifiers and align with WIMSE / AP2 mandate shape.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sd-jwt",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"jose": "^5.9.6",
|
|
35
|
-
"@atlasauth/pca": "0.
|
|
35
|
+
"@atlasauth/pca": "0.4.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"typescript": "^5.6.3",
|