@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 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 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
 
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
- const disclosures = segments.slice(1, segments.length - 1).filter((s) => s.length > 0);
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 decodeDisclosure(encoded) {
271
+ function decodeDisclosureParts(encoded) {
262
272
  let parsed;
263
273
  try {
264
- parsed = JSON.parse(Buffer.from(encoded, 'base64url').toString('utf8'));
274
+ parsed = (0, pca_1.decodeCanonicalJsonSegment)(encoded);
265
275
  }
266
276
  catch {
267
- throw new Error('pca-sdjwt: disclosure is not valid base64url JSON');
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
- 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] };
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 kept = [];
287
- for (const encoded of parsed.disclosures) {
288
- const { name } = decodeDisclosure(encoded);
289
- if (keep.has(name))
290
- kept.push(encoded);
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
- const sdList = Array.isArray(payload._sd) ? payload._sd.filter((x) => typeof x === 'string') : [];
336
- if (sdList.length > 0 && payload._sd_alg !== exports.SD_ALG) {
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 sdSet = new Set(sdList);
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 (!sdSet.has(digest))
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
- 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;
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
- ...(options.expectedAudience !== undefined ? { audience: options.expectedAudience } : {}),
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(payload)) {
583
+ for (const key of Object.keys(processedPayload)) {
406
584
  if (!RESERVED_CLAIMS.has(key))
407
- claims[key] = payload[key];
585
+ claims[key] = processedPayload[key];
408
586
  }
409
- for (const key of Object.keys(disclosed))
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.2.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.2.0"
35
+ "@atlasauth/pca": "0.4.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "typescript": "^5.6.3",