@atlasauth/pca-sdjwt 0.2.0 → 0.3.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 CHANGED
@@ -47,7 +47,18 @@ 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 SD-JWT specification is still moving, and this package is unaudited.
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
 
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
@@ -108,6 +108,8 @@ exports.PCA_CAPABILITY_CLAIMS = [
108
108
  const STANDARD_MAPPED = new Set(['aud', 'iat', 'exp']);
109
109
  /** Field carried in the clear as a discriminator (not disclosable). */
110
110
  const CLEAR_DISCRIMINATOR = 'ver';
111
+ /** Claims RFC 9901 §9.7 treats as security-critical: never accepted behind a Disclosure. */
112
+ const CRITICAL_CLAIMS = new Set(['iss', 'aud', 'exp', 'nbf', 'cnf', 'status']);
111
113
  /** Reserved top-level claim names that are never treated as recovered capability claims. */
112
114
  const RESERVED_CLAIMS = new Set(['iss', 'sub', 'aud', 'iat', 'exp', '_sd', '_sd_alg', 'cnf']);
113
115
  // ===================================================================================================
@@ -258,7 +260,7 @@ function parseSdJwt(sdjwt) {
258
260
  const presentationHead = sdjwt.slice(0, sdjwt.length - last.length);
259
261
  return { jwt, disclosures, kbJwt: last, presentationHead };
260
262
  }
261
- function decodeDisclosure(encoded) {
263
+ function decodeDisclosureParts(encoded) {
262
264
  let parsed;
263
265
  try {
264
266
  parsed = JSON.parse(Buffer.from(encoded, 'base64url').toString('utf8'));
@@ -266,13 +268,36 @@ function decodeDisclosure(encoded) {
266
268
  catch {
267
269
  throw new Error('pca-sdjwt: disclosure is not valid base64url JSON');
268
270
  }
269
- if (!Array.isArray(parsed) || parsed.length !== 3)
270
- throw new Error('pca-sdjwt: disclosure must be a [salt, name, value] triple');
271
- const salt = parsed[0];
272
- const name = parsed[1];
273
- if (typeof salt !== 'string' || typeof name !== 'string')
274
- throw new Error('pca-sdjwt: disclosure salt and name must be strings');
275
- return { salt, name, value: parsed[2] };
271
+ if (!Array.isArray(parsed) || (parsed.length !== 2 && parsed.length !== 3)) {
272
+ throw new Error('pca-sdjwt: disclosure must be a [salt, name, value] triple or a [salt, value] pair');
273
+ }
274
+ if (typeof parsed[0] !== 'string')
275
+ throw new Error('pca-sdjwt: disclosure salt must be a string');
276
+ return { parts: parsed };
277
+ }
278
+ // ===================================================================================================
279
+ // Holder presentation
280
+ // ===================================================================================================
281
+ /** Every digest referenced by `_sd` arrays or `{"...": digest}` array entries anywhere inside `node`. */
282
+ function collectDigests(node) {
283
+ const out = [];
284
+ const visit = (n) => {
285
+ if (Array.isArray(n)) {
286
+ n.forEach(visit);
287
+ }
288
+ else if (isPlainObject(n)) {
289
+ for (const [k, v] of Object.entries(n)) {
290
+ if (k === '_sd' && Array.isArray(v))
291
+ out.push(...v.filter((x) => typeof x === 'string'));
292
+ else if (k === '...' && typeof v === 'string')
293
+ out.push(v);
294
+ else
295
+ visit(v);
296
+ }
297
+ }
298
+ };
299
+ visit(node);
300
+ return out;
276
301
  }
277
302
  /**
278
303
  * Produce a holder presentation of an issued SD-JWT that discloses ONLY `selectClaims` (by claim name) and
@@ -283,12 +308,48 @@ function decodeDisclosure(encoded) {
283
308
  async function present(sdjwt, selectClaims, options) {
284
309
  const parsed = parseSdJwt(sdjwt);
285
310
  const keep = new Set(selectClaims);
286
- const kept = [];
287
- for (const encoded of parsed.disclosures) {
288
- const { name } = decodeDisclosure(encoded);
289
- if (keep.has(name))
290
- kept.push(encoded);
311
+ const byDigest = new Map();
312
+ for (const encoded of parsed.disclosures)
313
+ byDigest.set(sha256b64u(encoded), encoded);
314
+ // Selecting a claim discloses it in full: its Disclosure plus every Disclosure nested inside its value.
315
+ const keptDigests = new Set();
316
+ const include = (digest) => {
317
+ const encoded = byDigest.get(digest);
318
+ if (encoded === undefined || keptDigests.has(digest))
319
+ return;
320
+ keptDigests.add(digest);
321
+ const { parts } = decodeDisclosureParts(encoded);
322
+ for (const d of collectDigests(parts[parts.length - 1]))
323
+ include(d);
324
+ };
325
+ let payload;
326
+ try {
327
+ payload = JSON.parse(Buffer.from(parsed.jwt.split('.')[1] ?? '', 'base64url').toString('utf8'));
291
328
  }
329
+ catch {
330
+ throw new Error('pca-sdjwt: issuer JWT payload is not valid base64url JSON');
331
+ }
332
+ if (isPlainObject(payload)) {
333
+ // Object-property Disclosures referenced from the top-level `_sd`, selected by claim name.
334
+ const sd = Array.isArray(payload._sd) ? payload._sd : [];
335
+ for (const digest of sd) {
336
+ if (typeof digest !== 'string')
337
+ continue;
338
+ const encoded = byDigest.get(digest);
339
+ if (encoded === undefined)
340
+ continue;
341
+ const { parts } = decodeDisclosureParts(encoded);
342
+ if (typeof parts[1] === 'string' && parts.length === 3 && keep.has(parts[1]))
343
+ include(digest);
344
+ }
345
+ // Clear claims that contain selectively-disclosable parts (e.g. an array with `...` entries).
346
+ for (const key of Object.keys(payload)) {
347
+ if (key !== '_sd' && keep.has(key))
348
+ for (const d of collectDigests(payload[key]))
349
+ include(d);
350
+ }
351
+ }
352
+ const kept = parsed.disclosures.filter((e) => keptDigests.has(sha256b64u(e)));
292
353
  const head = [parsed.jwt, ...kept].join('~') + '~';
293
354
  if (!options?.keyBinding)
294
355
  return head;
@@ -309,6 +370,96 @@ async function jwkThumbX(k) {
309
370
  const j = await (0, jose_1.exportJWK)(k);
310
371
  return typeof j.x === 'string' ? j.x : undefined;
311
372
  }
373
+ class SdJwtProcessingError extends Error {
374
+ }
375
+ /**
376
+ * RFC 9901 §7.1 step 3-5 payload processing: resolve `_sd` digests in objects and `{"...": digest}`
377
+ * array elements recursively, rejecting reserved/colliding names, reused digests and unreferenced
378
+ * Disclosures. Returns the Processed SD-JWT Payload (without `_sd` / `_sd_alg`) and the names disclosed at
379
+ * the top level.
380
+ */
381
+ function processDisclosures(payload, byDigest) {
382
+ const seen = new Set();
383
+ const claimDigest = (d) => {
384
+ if (seen.has(d))
385
+ throw new SdJwtProcessingError('a digest appears more than once in the payload');
386
+ seen.add(d);
387
+ return byDigest.get(d);
388
+ };
389
+ const disclosedTop = {};
390
+ const walk = (node, top) => {
391
+ if (Array.isArray(node)) {
392
+ const out = [];
393
+ for (const el of node) {
394
+ const keys = isPlainObject(el) ? Object.keys(el) : [];
395
+ if (isPlainObject(el) && keys.length === 1 && keys[0] === '...') {
396
+ const digest = el['...'];
397
+ if (typeof digest !== 'string')
398
+ throw new SdJwtProcessingError("an array '...' entry must reference a string digest");
399
+ const d = claimDigest(digest);
400
+ if (d === undefined)
401
+ continue; // undisclosed element or decoy: removed
402
+ if (d.parts.length !== 2)
403
+ throw new SdJwtProcessingError('an array-element disclosure must be [salt, value]');
404
+ d.used = true;
405
+ out.push(walk(d.parts[1], false));
406
+ }
407
+ else {
408
+ out.push(walk(el, false));
409
+ }
410
+ }
411
+ return out;
412
+ }
413
+ if (isPlainObject(node)) {
414
+ const out = {};
415
+ for (const key of Object.keys(node)) {
416
+ if (key === '_sd')
417
+ continue;
418
+ out[key] = walk(node[key], false);
419
+ }
420
+ const sd = node._sd;
421
+ if (sd !== undefined) {
422
+ if (!Array.isArray(sd) || !sd.every((x) => typeof x === 'string')) {
423
+ throw new SdJwtProcessingError('_sd must be an array of strings');
424
+ }
425
+ for (const digest of sd) {
426
+ const d = claimDigest(digest);
427
+ if (d === undefined)
428
+ continue; // decoy or undisclosed claim
429
+ if (d.parts.length !== 3)
430
+ throw new SdJwtProcessingError('an object-property disclosure must be [salt, name, value]');
431
+ const name = d.parts[1];
432
+ if (typeof name !== 'string')
433
+ throw new SdJwtProcessingError('disclosure claim name must be a string');
434
+ if (name === '_sd' || name === '...')
435
+ throw new SdJwtProcessingError(`disclosure claim name '${name}' is reserved`);
436
+ if (Object.prototype.hasOwnProperty.call(out, name)) {
437
+ throw new SdJwtProcessingError(`disclosure claim '${name}' collides with an existing claim`);
438
+ }
439
+ if (top && CRITICAL_CLAIMS.has(name)) {
440
+ throw new SdJwtProcessingError(`'${name}' is security-critical and must not be selectively disclosable`);
441
+ }
442
+ d.used = true;
443
+ const value = walk(d.parts[2], false);
444
+ out[name] = value;
445
+ if (top)
446
+ disclosedTop[name] = value;
447
+ }
448
+ }
449
+ return out;
450
+ }
451
+ return node;
452
+ };
453
+ const processed = walk(payload, true);
454
+ if (!isPlainObject(processed))
455
+ throw new SdJwtProcessingError('payload is not an object');
456
+ delete processed._sd_alg;
457
+ for (const d of byDigest.values()) {
458
+ if (!d.used)
459
+ throw new SdJwtProcessingError('a presented disclosure is not referenced by any digest in the payload');
460
+ }
461
+ return { processed, disclosedTop };
462
+ }
312
463
  /**
313
464
  * Verify a PCA SD-JWT, FAIL-CLOSED: any bad signature, unknown `_sd_alg`, unmatched/forged Disclosure,
314
465
  * audience/expiry violation, or key-binding failure returns `{ ok: false }`. On success it returns the
@@ -331,25 +482,32 @@ async function verifyPcaSdJwt(sdjwt, options) {
331
482
  });
332
483
  const payload = verified.payload;
333
484
  const protectedHeader = verified.protectedHeader;
334
- // _sd / Disclosure matching.
335
- const sdList = Array.isArray(payload._sd) ? payload._sd.filter((x) => typeof x === 'string') : [];
336
- if (sdList.length > 0 && payload._sd_alg !== exports.SD_ALG) {
485
+ // _sd / Disclosure matching (RFC 9901 §7.1), recursive over nested objects and arrays.
486
+ // `_sd_alg` defaults to sha-256 when absent; any other value is unsupported.
487
+ if (payload._sd_alg !== undefined && payload._sd_alg !== exports.SD_ALG) {
337
488
  return { ok: false, reason: `unsupported _sd_alg (require "${exports.SD_ALG}")` };
338
489
  }
339
- const sdSet = new Set(sdList);
340
- const disclosed = {};
341
- const seenDigests = new Set();
490
+ const byDigest = new Map();
342
491
  for (const encoded of parsed.disclosures) {
343
492
  const digest = sha256b64u(encoded);
344
- if (!sdSet.has(digest))
345
- return { ok: false, reason: 'a presented disclosure does not match any _sd digest (tampered)' };
346
- if (seenDigests.has(digest))
493
+ if (byDigest.has(digest))
347
494
  return { ok: false, reason: 'duplicate disclosure' };
348
- seenDigests.add(digest);
349
- const { name, value } = decodeDisclosure(encoded);
350
- if (Object.prototype.hasOwnProperty.call(disclosed, name))
351
- return { ok: false, reason: `disclosure claim '${name}' appears more than once` };
352
- disclosed[name] = value;
495
+ const { parts } = decodeDisclosureParts(encoded);
496
+ byDigest.set(digest, { encoded, parts, used: false });
497
+ }
498
+ let processedPayload;
499
+ let disclosed;
500
+ try {
501
+ const r = processDisclosures(payload, byDigest);
502
+ processedPayload = r.processed;
503
+ disclosed = r.disclosedTop;
504
+ }
505
+ catch (e) {
506
+ if (e instanceof SdJwtProcessingError) {
507
+ const unmatched = e.message.includes('not referenced');
508
+ return { ok: false, reason: unmatched ? 'a presented disclosure does not match any _sd digest (tampered)' : e.message };
509
+ }
510
+ throw e;
353
511
  }
354
512
  for (const required of options.requiredDisclosures ?? []) {
355
513
  if (!Object.prototype.hasOwnProperty.call(disclosed, required)) {
@@ -373,9 +531,10 @@ async function verifyPcaSdJwt(sdjwt, options) {
373
531
  const kbKey = await (0, jose_1.importJWK)(cnfJwk, kbAlgorithms[0] ?? exports.DEFAULT_SIGNING_ALG);
374
532
  let kb;
375
533
  try {
534
+ const kbAudience = options.expectedKbAudience ?? options.expectedAudience;
376
535
  kb = await (0, jose_1.jwtVerify)(parsed.kbJwt, kbKey, {
377
536
  algorithms: kbAlgorithms,
378
- ...(options.expectedAudience !== undefined ? { audience: options.expectedAudience } : {}),
537
+ ...(kbAudience !== undefined ? { audience: kbAudience } : {}),
379
538
  ...(options.now !== undefined ? { currentDate: new Date(options.now) } : {}),
380
539
  ...(options.clockToleranceSec !== undefined ? { clockTolerance: options.clockToleranceSec } : {}),
381
540
  });
@@ -385,6 +544,17 @@ async function verifyPcaSdJwt(sdjwt, options) {
385
544
  }
386
545
  if (kb.protectedHeader.typ !== exports.KB_JWT_TYP)
387
546
  return { ok: false, reason: `KB-JWT typ must be "${exports.KB_JWT_TYP}"` };
547
+ if (typeof kb.payload.iat !== 'number')
548
+ return { ok: false, reason: 'KB-JWT iat is required' };
549
+ if (options.kbMaxAgeSec !== undefined) {
550
+ const nowSec = Math.floor((options.now ?? Date.now()) / 1000);
551
+ if (nowSec - kb.payload.iat > options.kbMaxAgeSec)
552
+ return { ok: false, reason: 'KB-JWT is older than the accepted window' };
553
+ if (kb.payload.iat - nowSec > (options.clockToleranceSec ?? 0))
554
+ return { ok: false, reason: 'KB-JWT iat is in the future' };
555
+ }
556
+ if (typeof kb.payload.aud !== 'string' && !Array.isArray(kb.payload.aud))
557
+ return { ok: false, reason: 'KB-JWT aud is required' };
388
558
  if (kb.payload.sd_hash !== sha256b64u(parsed.presentationHead)) {
389
559
  return { ok: false, reason: 'KB-JWT sd_hash does not cover this presentation' };
390
560
  }
@@ -400,15 +570,13 @@ async function verifyPcaSdJwt(sdjwt, options) {
400
570
  else if (options.keyBindingKey !== undefined || options.requireKeyBinding) {
401
571
  return { ok: false, reason: 'key binding required but no KB-JWT was presented' };
402
572
  }
403
- // Recovered capability claims = clear (non-reserved) ∪ disclosed.
573
+ // Recovered capability claims = clear (non-reserved) ∪ disclosed, from the Processed SD-JWT Payload.
404
574
  const claims = {};
405
- for (const key of Object.keys(payload)) {
575
+ for (const key of Object.keys(processedPayload)) {
406
576
  if (!RESERVED_CLAIMS.has(key))
407
- claims[key] = payload[key];
577
+ claims[key] = processedPayload[key];
408
578
  }
409
- for (const key of Object.keys(disclosed))
410
- claims[key] = disclosed[key];
411
- return { ok: true, payload, protectedHeader, disclosed, claims, keyBinding };
579
+ return { ok: true, payload, processed: processedPayload, protectedHeader, disclosed, claims, keyBinding };
412
580
  }
413
581
  catch (e) {
414
582
  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.2.0",
3
+ "version": "0.3.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.2.0"
35
+ "@atlasauth/pca": "0.3.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "typescript": "^5.6.3",