@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 +29 -8
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +64 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -3
- package/dist/types.js.map +1 -1
- package/dist/verifier.d.ts +31 -7
- package/dist/verifier.d.ts.map +1 -1
- package/dist/verifier.js +81 -20
- package/dist/verifier.js.map +1 -1
- package/package.json +8 -7
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
|
|
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
|
-
##
|
|
16
|
+
## Quick example
|
|
17
17
|
|
|
18
18
|
```ts
|
|
19
19
|
import { Verifier } from "@gramota/verifier";
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
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
|
-
|
|
27
|
-
|
|
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
|
|
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 {
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
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
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,
|
|
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 —
|
|
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 `
|
|
164
|
+
/** Throws `VerifierError` carrying this result. */
|
|
107
165
|
unwrap(): never;
|
|
108
166
|
}
|
|
109
|
-
export declare class
|
|
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;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,sBAAsB,EACtB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B;
|
|
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
|
-
|
|
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":"
|
|
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"}
|
package/dist/verifier.d.ts
CHANGED
|
@@ -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
|
package/dist/verifier.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../src/verifier.ts"],"names":[],"mappings":"
|
|
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,
|
|
2
|
-
import { verifyJws,
|
|
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 {
|
|
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:
|
|
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
|
|
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
|
-
/**
|
|
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
|
|
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
|
|
335
|
-
err instanceof
|
|
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;
|
package/dist/verifier.js.map
CHANGED
|
@@ -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.
|
|
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/
|
|
20
|
-
"@gramota/jose": "0.1
|
|
21
|
-
"@gramota/
|
|
22
|
-
"@gramota/sd-jwt": "0.1
|
|
23
|
-
"@gramota/
|
|
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
|
|
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",
|