@gramota/verifier 0.1.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
@@ -1,6 +1,6 @@
1
1
  # @gramota/verifier
2
2
 
3
- > Relying-party verifier for the EU Digital Identity Wallet. One client, one method, full IETF SD-JWT-VC + KB-JWT spec compliance.
3
+ > Relying-party verifier for the EU Digital Identity Wallet. One class, one method (`verify`), 12 named security checks, IETF SD-JWT-VC + KB-JWT + OID4VP-compliant. Discriminated `VerifyResult` so you destructure success vs failure cleanly.
4
4
 
5
5
  Part of [Gramota](https://github.com/gramota-org/gramota) — the TypeScript
6
6
  SDK for the EU Digital Identity Wallet (EUDIW).
@@ -13,18 +13,39 @@ pnpm add @gramota/verifier
13
13
  # or: yarn add @gramota/verifier
14
14
  ```
15
15
 
16
- ## Usage
16
+ ## Quick example
17
17
 
18
18
  ```ts
19
19
  import { Verifier } from "@gramota/verifier";
20
-
21
- const verifier = new Verifier({ audience, trustResolver });
22
- const result = await verifier.verify(presentationToken, { nonce });
23
- if (result.ok) console.log(result.claims);
20
+ import { StaticTrustResolver } from "@gramota/trust";
21
+
22
+ const verifier = new Verifier({
23
+ audience: "https://verifier.example",
24
+ trust: new StaticTrustResolver([issuerJwk]),
25
+ });
26
+
27
+ const result = await verifier.verify(vpToken, { nonce: "n-12345" });
28
+
29
+ if (result.ok) {
30
+ console.log(result.claims); // { given_name: "Greta", ... }
31
+ console.log(result.metadata); // { issuer, audience, issuedAt, expiresAt, ... }
32
+ } else {
33
+ console.log(result.failedCheck); // e.g. "kb-jwt.audience"
34
+ console.log(result.reason);
35
+ }
24
36
  ```
25
37
 
26
- For full docs, examples, and the high-level Verifier/Issuer/Holder API,
27
- see the [main repo](https://github.com/gramota-org/gramota).
38
+ ## What's inside
39
+
40
+ - `Verifier` — single class, configured once with `{ audience, trust, ... }`
41
+ - `Verifier.verify(token, { nonce })` → `VerifyResult` (success ∪ failure)
42
+ - 12 named security checks run in order (parse → trust → issuer signature → hash binding → KB-JWT presence/cnf/sig/aud/nonce/time/transcript → status). Result reports which one failed.
43
+ - `additionalAudiences` config — accepts both the SD-JWT-VC `aud=URL` form and the OID4VP `aud=x509_san_dns:host` form (production EU wallets send the latter)
44
+ - `inspect(token)` — peek at the parsed structure without verification (debugging)
45
+ - `VerifierError` carries the full failure record for logs / dashboards
46
+
47
+ For the high-level wallet + issuer counterparts, see the
48
+ [main repo](https://github.com/gramota-org/gramota).
28
49
 
29
50
  ## License
30
51
 
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { Verifier, verify } from "./verifier.js";
1
+ export { Verifier } from "./verifier.js";
2
2
  export type { PresentationRequestOptions, PresentationRequest, VerifyResponseOptions, VerifyResponseResult, } from "./verifier.js";
3
3
  export { inspect } from "./inspect.js";
4
- export { VerificationError } from "./types.js";
5
- export type { VerifierConfig, VerifyOptions, VerifyResult, SuccessResult, FailureResult, SecurityCheck, SecurityCheckName, VerificationMetadata, } from "./types.js";
4
+ export { VerifierError } from "./types.js";
5
+ export type { VerifierConfig, VerifyOptions, VerifyResult, SuccessResult, FailureResult, SecurityCheck, SecurityCheckName, VerificationMetadata, RequireInput, RequireResult, } from "./types.js";
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Verifier, verify } from "./verifier.js";
1
+ export { Verifier } from "./verifier.js";
2
2
  export { inspect } from "./inspect.js";
3
- export { VerificationError } from "./types.js";
3
+ export { VerifierError } from "./types.js";
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAOjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,11 +1,19 @@
1
+ import { GramotaError } from "@gramota/core";
1
2
  import type { JsonWebKey, SupportedAlg } from "@gramota/jose";
2
3
  import type { TrustResolver } from "@gramota/trust";
3
4
  import type { CredentialStatusResult, StatusResolver } from "@gramota/status-list";
4
5
  /** Configuration for a Verifier instance. */
5
6
  export interface VerifierConfig {
6
- /** The verifier's identifier. The KB-JWT's `aud` claim MUST equal this.
7
- * Cross-verifier replay protection — pick a stable, app-specific URL. */
7
+ /** The verifier's identifier. The KB-JWT's `aud` claim MUST equal this
8
+ * (or any of `additionalAudiences`). Cross-verifier replay protection —
9
+ * pick a stable, app-specific URL. */
8
10
  audience: string;
11
+ /** Additional accepted `aud` values. Useful when wallets in the wild
12
+ * disagree about what the KB-JWT audience should be. The OID4VP
13
+ * `x509_san_dns:<host>` client_id is a common alternate form some
14
+ * wallets (the EU reference wallet's eudi-app-android-wallet-ui) put
15
+ * in `aud` instead of the verifier audience URL. */
16
+ additionalAudiences?: readonly string[];
9
17
  /** Exactly one of `issuerKey` (shorthand) OR `trust` (full resolver) is
10
18
  * required. */
11
19
  issuerKey?: JsonWebKey;
@@ -34,8 +42,26 @@ export interface VerifierConfig {
34
42
  * Default 30. */
35
43
  maxClockSkewSeconds?: number;
36
44
  }
45
+ /** Input passed to {@link VerifyOptions.require} predicates. */
46
+ export interface RequireInput<TClaims = Record<string, unknown>> {
47
+ /** The disclosed claims — same shape as `result.claims` on success. */
48
+ readonly claims: TClaims;
49
+ /** Protocol metadata — same shape as `result.metadata` on success. */
50
+ readonly metadata: VerificationMetadata;
51
+ }
52
+ /**
53
+ * Return shape for {@link VerifyOptions.require} when the caller wants
54
+ * to attach a human-readable reason. Plain `boolean` is also accepted
55
+ * for the common case.
56
+ */
57
+ export interface RequireResult {
58
+ readonly passed: boolean;
59
+ /** Shown in `result.reason` and the audit trail when `passed: false`.
60
+ * Default: `"require predicate returned false"`. */
61
+ readonly reason?: string;
62
+ }
37
63
  /** Per-call options for `verifier.verify(...)`. */
38
- export interface VerifyOptions {
64
+ export interface VerifyOptions<TClaims = Record<string, unknown>> {
39
65
  /** The challenge the verifier sent to the wallet. The KB-JWT's `nonce`
40
66
  * claim MUST equal this. Within-verifier replay protection. */
41
67
  nonce: string;
@@ -54,6 +80,33 @@ export interface VerifyOptions {
54
80
  * Has no effect when no `statusResolver` is configured on the Verifier.
55
81
  */
56
82
  requireStatus?: boolean;
83
+ /**
84
+ * Application-level predicate. Runs AFTER all crypto + status checks
85
+ * pass; receives the disclosed claims + protocol metadata; returns
86
+ * a boolean (or `{ passed, reason }` for a custom failure reason).
87
+ *
88
+ * If the predicate returns `false` (or `{ passed: false }`), the
89
+ * verification fails with `failedCheck: "require.predicate"` and the
90
+ * predicate's `reason` (or a default) becomes `result.reason`. The
91
+ * `require.predicate` entry is appended to `result.checks` either
92
+ * way, so audit dashboards see the same shape as for any other check.
93
+ *
94
+ * If the predicate throws, the throw propagates — the verifier does
95
+ * NOT silently treat exceptions as "passed: false". This is so
96
+ * caller bugs surface as crashes during dev, not as accepted
97
+ * presentations in production.
98
+ *
99
+ * @example
100
+ * ```ts
101
+ * await verifier.verify(token, {
102
+ * nonce,
103
+ * require: ({ claims }) =>
104
+ * claims.age_over_18 === true &&
105
+ * EU_COUNTRIES.has(claims.nationality as string),
106
+ * });
107
+ * ```
108
+ */
109
+ require?: (input: RequireInput<TClaims>) => boolean | RequireResult | Promise<boolean | RequireResult>;
57
110
  }
58
111
  /** A single security check, recorded for observability. Every check is
59
112
  * present in the result regardless of pass/fail, so customers can build
@@ -66,7 +119,12 @@ export interface SecurityCheck {
66
119
  message?: string;
67
120
  }
68
121
  /** Stable identifiers for the security checks we run, in execution order. */
69
- export type SecurityCheckName = "structure.parse" | "trust.resolution" | "issuer.signature" | "hash-binding.disclosures" | "kb-jwt.present" | "kb-jwt.cnf-binding" | "kb-jwt.signature" | "kb-jwt.audience" | "kb-jwt.nonce" | "kb-jwt.time" | "kb-jwt.transcript" | "status.check";
122
+ export type SecurityCheckName = "structure.parse" | "trust.resolution" | "issuer.signature" | "hash-binding.disclosures" | "kb-jwt.present" | "kb-jwt.cnf-binding" | "kb-jwt.signature" | "kb-jwt.audience" | "kb-jwt.nonce" | "kb-jwt.time" | "kb-jwt.transcript" | "status.check"
123
+ /** Application-level predicate from {@link VerifyOptions.require}.
124
+ * Runs last; not part of the cryptographic protocol — semantically
125
+ * a customer business rule that determines whether the (already
126
+ * crypto-valid) presentation is acceptable for THIS endpoint. */
127
+ | "require.predicate";
70
128
  /** Protocol metadata extracted alongside the user-facing claims. */
71
129
  export interface VerificationMetadata {
72
130
  issuer: string;
@@ -103,13 +161,12 @@ export interface FailureResult {
103
161
  failedCheck: SecurityCheckName;
104
162
  /** Every check up to and including the one that failed. */
105
163
  checks: readonly SecurityCheck[];
106
- /** Throws `VerificationError` carrying this result. */
164
+ /** Throws `VerifierError` carrying this result. */
107
165
  unwrap(): never;
108
166
  }
109
- export declare class VerificationError extends Error {
167
+ export declare class VerifierError extends GramotaError {
110
168
  /** The full failure record — stable for logging. */
111
169
  readonly result: FailureResult;
112
- readonly name = "VerificationError";
113
170
  /** Equal to `result.failedCheck` — stable identifier for log filters,
114
171
  * alerts, and dashboards. Same shape as the codes used by other packages. */
115
172
  readonly code: SecurityCheckName;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,14 +1,15 @@
1
- export class VerificationError extends Error {
1
+ import { GramotaError } from "@gramota/core";
2
+ export class VerifierError extends GramotaError {
2
3
  result;
3
- name = "VerificationError";
4
4
  /** Equal to `result.failedCheck` — stable identifier for log filters,
5
5
  * alerts, and dashboards. Same shape as the codes used by other packages. */
6
6
  code;
7
7
  constructor(message,
8
8
  /** The full failure record — stable for logging. */
9
9
  result) {
10
- super(message);
10
+ super(message, result.failedCheck);
11
11
  this.result = result;
12
+ this.name = "VerifierError";
12
13
  this.code = result.failedCheck;
13
14
  }
14
15
  }
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA8IA,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAQ/B;IAPO,IAAI,GAAG,mBAAmB,CAAC;IAC7C;iFAC6E;IACpE,IAAI,CAAoB;IACjC,YACE,OAAe;IACf,oDAAoD;IAC3C,MAAqB;QAE9B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,WAAM,GAAN,MAAM,CAAe;QAG9B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AA8M7C,MAAM,OAAO,aAAc,SAAQ,YAAY;IAQlC;IAPX;iFAC6E;IAC3D,IAAI,CAAoB;IAE1C,YACE,OAAe;IACf,oDAAoD;IAC3C,MAAqB;QAE9B,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAF1B,WAAM,GAAN,MAAM,CAAe;QAG9B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;IACjC,CAAC;CACF"}
@@ -2,29 +2,53 @@ import { type AuthorizationRequest, type AuthorizationResponse } from "@gramota/
2
2
  import { type VerifierConfig, type VerifyOptions, type VerifyResult } from "./types.js";
3
3
  export declare class Verifier {
4
4
  private readonly audience;
5
+ private readonly additionalAudiences;
5
6
  private readonly trust;
6
7
  private readonly statusResolver;
7
8
  private readonly algorithms;
8
9
  private readonly maxKbJwtAgeSeconds;
9
10
  private readonly maxClockSkewSeconds;
10
11
  constructor(config: VerifierConfig);
12
+ /** Verify a presentation token. Stripe-shaped surface. */
13
+ readonly presentations: {
14
+ verify<TClaims = Record<string, unknown>>(presentationToken: string, options: VerifyOptions<TClaims>): Promise<VerifyResult<TClaims>>;
15
+ };
16
+ /** Verify an OID4VP authorization response body. Stripe-shaped surface. */
17
+ readonly responses: {
18
+ verify<TClaims = Record<string, unknown>>(rawBody: string | URLSearchParams | Record<string, string>, options: VerifyResponseOptions<TClaims>): Promise<VerifyResponseResult<TClaims>>;
19
+ };
20
+ /** Build a signed presentation request for the wallet. Stripe-shaped surface. */
21
+ readonly requests: {
22
+ create(options: PresentationRequestOptions): PresentationRequest;
23
+ };
11
24
  /**
12
25
  * Verify an SD-JWT-VC presentation token end-to-end.
13
26
  *
14
27
  * Runs 9 security checks in order; stops at the first failure and reports
15
28
  * which check failed. On success, returns the disclosed claims plus
16
29
  * protocol metadata plus the full audit trail of checks performed.
30
+ *
31
+ * @deprecated Use `verifier.presentations.verify(token, opts)` instead.
32
+ * Removed in 1.0. The flat shape predates Gramota's Stripe-style
33
+ * namespacing — the namespaced version is the supported surface.
34
+ */
35
+ verify<TClaims = Record<string, unknown>>(presentationToken: string, options: VerifyOptions<TClaims>): Promise<VerifyResult<TClaims>>;
36
+ /**
37
+ * Build an OID4VP Authorization Request URL to share with the wallet.
38
+ *
39
+ * @deprecated Use `verifier.requests.create(opts)` instead. Removed in 1.0.
17
40
  */
18
- verify<TClaims = Record<string, unknown>>(presentationToken: string, options: VerifyOptions): Promise<VerifyResult<TClaims>>;
19
- /** Build an OID4VP Authorization Request URL to share with the wallet. */
20
41
  request(options: PresentationRequestOptions): PresentationRequest;
21
42
  /**
22
43
  * Process an OID4VP Authorization Response body end-to-end:
23
44
  * parse the form body, enforce CSRF state matching, and verify the
24
45
  * vp_token cryptographically. Returns the same result shape as `verify()`
25
46
  * plus the parsed transport envelope.
47
+ *
48
+ * @deprecated Use `verifier.responses.verify(rawBody, opts)` instead.
49
+ * Removed in 1.0.
26
50
  */
27
- response<TClaims = Record<string, unknown>>(rawBody: string | URLSearchParams | Record<string, string>, options: VerifyResponseOptions): Promise<VerifyResponseResult<TClaims>>;
51
+ response<TClaims = Record<string, unknown>>(rawBody: string | URLSearchParams | Record<string, string>, options: VerifyResponseOptions<TClaims>): Promise<VerifyResponseResult<TClaims>>;
28
52
  }
29
53
  /** Result of `verifier.responses.verify()` — same shape as `VerifyResult`
30
54
  * plus the parsed OID4VP transport envelope. */
@@ -65,7 +89,7 @@ export interface PresentationRequest {
65
89
  state: string | undefined;
66
90
  }
67
91
  /** Options for `verifier.response()`. */
68
- export interface VerifyResponseOptions {
92
+ export interface VerifyResponseOptions<TClaims = Record<string, unknown>> {
69
93
  /** Required — the nonce used in the original request. */
70
94
  expectedNonce: string;
71
95
  /** Optional — when supplied, response.state MUST equal this. */
@@ -76,8 +100,8 @@ export interface VerifyResponseOptions {
76
100
  * status. Has effect only when the Verifier was constructed with a
77
101
  * `statusResolver`. */
78
102
  requireStatus?: boolean;
103
+ /** Forwarded to `verify()` — application-level predicate that runs
104
+ * after all crypto + status checks pass. See {@link VerifyOptions.require}. */
105
+ require?: VerifyOptions<TClaims>["require"];
79
106
  }
80
- /** Standalone one-off verification — same semantics as Verifier.verify, but
81
- * no instance to keep around. Pass everything inline. */
82
- export declare function verify<TClaims = Record<string, unknown>>(presentationToken: string, options: VerifyOptions & VerifierConfig): Promise<VerifyResult<TClaims>>;
83
107
  //# sourceMappingURL=verifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../src/verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../src/verifier.ts"],"names":[],"mappings":"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"}
package/dist/verifier.js CHANGED
@@ -1,12 +1,13 @@
1
- import { parseSdJwt, verifyHashBinding, verifyKeyBinding, SdJwtParseError, SdJwtVerificationError, SdJwtKeyBindingError, } from "@gramota/sd-jwt";
2
- import { verifyJws, JoseVerificationError, } from "@gramota/jose";
1
+ import { parseSdJwt, verifyHashBinding, verifyKeyBinding, SdJwtError, } from "@gramota/sd-jwt";
2
+ import { verifyJws, JoseError, } from "@gramota/jose";
3
3
  import { StaticTrustResolver, TrustResolutionError, } from "@gramota/trust";
4
4
  import { buildAuthorizationRequestUrl, parseAuthorizationResponseBody, } from "@gramota/oid4vp";
5
- import { VerificationError, } from "./types.js";
5
+ import { VerifierError, } from "./types.js";
6
6
  const DEFAULT_MAX_AGE_S = 60;
7
7
  const DEFAULT_CLOCK_SKEW_S = 30;
8
8
  export class Verifier {
9
9
  audience;
10
+ additionalAudiences;
10
11
  trust;
11
12
  statusResolver;
12
13
  algorithms;
@@ -27,6 +28,7 @@ export class Verifier {
27
28
  throw new TypeError("Verifier: one of issuerKey (shorthand) or trust (resolver) is required");
28
29
  }
29
30
  this.audience = config.audience;
31
+ this.additionalAudiences = config.additionalAudiences ?? [];
30
32
  this.trust = hasTrust
31
33
  ? config.trust
32
34
  : new StaticTrustResolver([config.issuerKey]);
@@ -36,13 +38,43 @@ export class Verifier {
36
38
  config.maxKbJwtAgeSeconds ?? DEFAULT_MAX_AGE_S;
37
39
  this.maxClockSkewSeconds =
38
40
  config.maxClockSkewSeconds ?? DEFAULT_CLOCK_SKEW_S;
41
+ // ────────────────────────────────────────────────────────────────
42
+ // Stripe-shaped resource namespaces.
43
+ //
44
+ // verifier.presentations.verify(token, opts)
45
+ // verifier.responses.verify(rawBody, opts)
46
+ // verifier.requests.create(opts)
47
+ //
48
+ // The flat methods on this class (`verify`, `response`, `request`)
49
+ // are kept for back-compat in 0.3.0 and marked `@deprecated`.
50
+ // Removed in 1.0 — migrate by adding the resource segment.
51
+ // ────────────────────────────────────────────────────────────────
52
+ this.presentations = {
53
+ verify: (token, opts) => this.verify(token, opts),
54
+ };
55
+ this.responses = {
56
+ verify: (rawBody, opts) => this.response(rawBody, opts),
57
+ };
58
+ this.requests = {
59
+ create: (opts) => this.request(opts),
60
+ };
39
61
  }
62
+ /** Verify a presentation token. Stripe-shaped surface. */
63
+ presentations;
64
+ /** Verify an OID4VP authorization response body. Stripe-shaped surface. */
65
+ responses;
66
+ /** Build a signed presentation request for the wallet. Stripe-shaped surface. */
67
+ requests;
40
68
  /**
41
69
  * Verify an SD-JWT-VC presentation token end-to-end.
42
70
  *
43
71
  * Runs 9 security checks in order; stops at the first failure and reports
44
72
  * which check failed. On success, returns the disclosed claims plus
45
73
  * protocol metadata plus the full audit trail of checks performed.
74
+ *
75
+ * @deprecated Use `verifier.presentations.verify(token, opts)` instead.
76
+ * Removed in 1.0. The flat shape predates Gramota's Stripe-style
77
+ * namespacing — the namespaced version is the supported surface.
46
78
  */
47
79
  async verify(presentationToken, options) {
48
80
  if (typeof options.nonce !== "string" || options.nonce.length === 0) {
@@ -121,8 +153,11 @@ export class Verifier {
121
153
  // 4-9. KB-JWT (presence, cnf, signature, aud, nonce, time, transcript)
122
154
  let verifiedKb;
123
155
  try {
156
+ const acceptedAud = this.additionalAudiences.length > 0
157
+ ? [this.audience, ...this.additionalAudiences]
158
+ : this.audience;
124
159
  const kbOpts = {
125
- expectedAudience: this.audience,
160
+ expectedAudience: acceptedAud,
126
161
  expectedNonce: options.nonce,
127
162
  maxAgeSeconds: this.maxKbJwtAgeSeconds,
128
163
  maxClockSkewSeconds: this.maxClockSkewSeconds,
@@ -174,9 +209,37 @@ export class Verifier {
174
209
  record(checks, "status.check", true);
175
210
  }
176
211
  }
177
- // All checks passed assemble the success result.
212
+ // All cryptographic checks passed. Extract the claims + metadata
213
+ // before running the optional application-level predicate so the
214
+ // predicate sees the same shape callers will see on success.
178
215
  const claims = stripMetadata(verifiedSdJwt.claims);
179
216
  const metadata = extractMetadata(parsed, verifiedSdJwt.claims, this.audience, verifiedKb.holderKey);
217
+ // 11. Application-level predicate (optional). Last gate, runs
218
+ // after every protocol check. Lets callers express business
219
+ // rules ("age ≥ 18", "EU resident", "credentialSubject.dob in
220
+ // a specific decade") without polluting the protocol layer.
221
+ if (options.require !== undefined) {
222
+ let predicateOutcome;
223
+ try {
224
+ predicateOutcome = await options.require({ claims, metadata });
225
+ }
226
+ catch (err) {
227
+ // Predicate threw — surface the throw verbatim. We don't
228
+ // silently treat it as failure: a buggy predicate is a
229
+ // caller bug, not a verification result.
230
+ throw err;
231
+ }
232
+ const passed = typeof predicateOutcome === "boolean"
233
+ ? predicateOutcome
234
+ : Boolean(predicateOutcome.passed);
235
+ if (!passed) {
236
+ const reason = typeof predicateOutcome === "boolean"
237
+ ? "require predicate returned false"
238
+ : (predicateOutcome.reason ?? "require predicate returned false");
239
+ return makeFailure(checks, "require.predicate", reason);
240
+ }
241
+ record(checks, "require.predicate", true);
242
+ }
180
243
  const success = {
181
244
  ok: true,
182
245
  claims,
@@ -188,7 +251,11 @@ export class Verifier {
188
251
  success.status = statusResult;
189
252
  return success;
190
253
  }
191
- /** Build an OID4VP Authorization Request URL to share with the wallet. */
254
+ /**
255
+ * Build an OID4VP Authorization Request URL to share with the wallet.
256
+ *
257
+ * @deprecated Use `verifier.requests.create(opts)` instead. Removed in 1.0.
258
+ */
192
259
  request(options) {
193
260
  if (typeof options.baseUrl !== "string" || options.baseUrl.length === 0) {
194
261
  throw new TypeError("verifier.request: baseUrl is required");
@@ -234,6 +301,9 @@ export class Verifier {
234
301
  * parse the form body, enforce CSRF state matching, and verify the
235
302
  * vp_token cryptographically. Returns the same result shape as `verify()`
236
303
  * plus the parsed transport envelope.
304
+ *
305
+ * @deprecated Use `verifier.responses.verify(rawBody, opts)` instead.
306
+ * Removed in 1.0.
237
307
  */
238
308
  async response(rawBody, options) {
239
309
  if (typeof options.expectedNonce !== "string" ||
@@ -270,21 +340,14 @@ export class Verifier {
270
340
  if (options.requireStatus !== undefined) {
271
341
  verifyOpts.requireStatus = options.requireStatus;
272
342
  }
343
+ if (options.require !== undefined)
344
+ verifyOpts.require = options.require;
273
345
  const baseResult = await this.verify(vpToken, verifyOpts);
274
346
  return Object.assign({}, baseResult, {
275
347
  response,
276
348
  });
277
349
  }
278
350
  }
279
- /** Standalone one-off verification — same semantics as Verifier.verify, but
280
- * no instance to keep around. Pass everything inline. */
281
- export async function verify(presentationToken, options) {
282
- const { nonce, ...config } = options;
283
- const verifyOpts = { nonce };
284
- if (options.now !== undefined)
285
- verifyOpts.now = options.now;
286
- return new Verifier(config).verify(presentationToken, verifyOpts);
287
- }
288
351
  // ---------------------------------------------------------------------------
289
352
  // helpers
290
353
  // ---------------------------------------------------------------------------
@@ -303,7 +366,7 @@ function makeFailure(checksSoFar, failedCheck, reason) {
303
366
  failedCheck,
304
367
  checks: Object.freeze(checks),
305
368
  unwrap: () => {
306
- throw new VerificationError(reason, failure);
369
+ throw new VerifierError(reason, failure);
307
370
  },
308
371
  };
309
372
  return failure;
@@ -331,10 +394,8 @@ function classifyKbFailure(err) {
331
394
  return "kb-jwt.signature";
332
395
  }
333
396
  function describe(err) {
334
- if (err instanceof SdJwtParseError ||
335
- err instanceof SdJwtVerificationError ||
336
- err instanceof SdJwtKeyBindingError ||
337
- err instanceof JoseVerificationError ||
397
+ if (err instanceof SdJwtError ||
398
+ err instanceof JoseError ||
338
399
  err instanceof TrustResolutionError ||
339
400
  err instanceof Error) {
340
401
  return err.message;
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../src/verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../src/verifier.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gramota/verifier",
3
- "version": "0.1.0",
3
+ "version": "0.4.0",
4
4
  "description": "Relying-party verifier for the EU Digital Identity Wallet. One client, one method, full IETF SD-JWT-VC + KB-JWT spec compliance.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -16,15 +16,16 @@
16
16
  "dist"
17
17
  ],
18
18
  "dependencies": {
19
- "@gramota/oid4vp": "0.1.0",
20
- "@gramota/jose": "0.1.0",
21
- "@gramota/status-list": "0.1.0",
22
- "@gramota/sd-jwt": "0.1.0",
23
- "@gramota/trust": "0.1.0"
19
+ "@gramota/core": "0.2.0",
20
+ "@gramota/jose": "0.2.1",
21
+ "@gramota/oid4vp": "0.2.1",
22
+ "@gramota/sd-jwt": "0.2.1",
23
+ "@gramota/status-list": "0.1.2",
24
+ "@gramota/trust": "0.1.2"
24
25
  },
25
26
  "devDependencies": {
26
27
  "jose": "^5.9.6",
27
- "@gramota/issuer": "0.1.0"
28
+ "@gramota/issuer": "0.3.1"
28
29
  },
29
30
  "author": "Petromil Pavlov <petromilpavlov@gmail.com>",
30
31
  "homepage": "https://github.com/gramota-org/gramota#readme",