@interop/wallet-request 0.4.1 → 0.5.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 +1 -1
- package/dist/appKey.d.ts.map +1 -1
- package/dist/appKey.js +1 -1
- package/dist/appKey.js.map +1 -1
- package/dist/capabilityRequest.d.ts +65 -15
- package/dist/capabilityRequest.d.ts.map +1 -1
- package/dist/capabilityRequest.js +196 -3
- package/dist/capabilityRequest.js.map +1 -1
- package/dist/classify.d.ts +4 -3
- package/dist/classify.d.ts.map +1 -1
- package/dist/classify.js +4 -3
- package/dist/classify.js.map +1 -1
- package/dist/composeVp.d.ts +6 -14
- package/dist/composeVp.d.ts.map +1 -1
- package/dist/composeVp.js +18 -31
- package/dist/composeVp.js.map +1 -1
- package/dist/documentLoader.d.ts +8 -0
- package/dist/documentLoader.d.ts.map +1 -0
- package/dist/documentLoader.js +25 -0
- package/dist/documentLoader.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/processRequest.d.ts +10 -1
- package/dist/processRequest.d.ts.map +1 -1
- package/dist/processRequest.js +27 -3
- package/dist/processRequest.js.map +1 -1
- package/dist/types.d.ts +9 -8
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -46,7 +46,7 @@ Request exchange: everything between "the user scanned or pasted something" and
|
|
|
46
46
|
`interactionUrl.ts` / `interactionRequest.ts` (VCALM interaction URLs),
|
|
47
47
|
`ephemeralExchange.ts` (the requester's side of a WAS server's ephemeral
|
|
48
48
|
exchange), and `capabilityRequest.ts` (the zcap-only VPR a requester stores on
|
|
49
|
-
one).
|
|
49
|
+
one, plus the signing and verification of a connection request's proof).
|
|
50
50
|
- **`processRequest.ts`** -- the pure request-to-response pipeline; consent and
|
|
51
51
|
the response channel stay with the caller.
|
|
52
52
|
|
package/dist/appKey.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appKey.d.ts","sourceRoot":"","sources":["../src/appKey.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,8BAA8B,CAAA;AAMrC,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAShD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAAY,CAAA;AAIzC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,qBAAqB,CAAA;AAEzD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAG9C,CAAA;AAEF;;;;;;GAMG;AACH,OAAO,EAAE,uBAAuB,EAAE,CAAA;AAOlC;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAE3E;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;;CAQ5C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAI5E;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED;;;;;;GAMG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;;CAQlD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,IAAI,CAAC,CAOf;AAgDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,MAAM,EACN,MAAM,EACP,EAAE;IACD,WAAW,EAAE,qBAAqB,EAAE,CAAA;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,qBAAqB,EAAE,CAU1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,WAAW,EACX,MAAM,EACN,MAAM,EACP,EAAE;IACD,WAAW,EAAE,qBAAqB,EAAE,CAAA;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAU7C;AAaD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,cAAc,EAAE,MAAuB,EACxC,EAAE;IACD,SAAS,EAAE,UAAU,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,eAAe,CAAA;CACjC,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,qBAAqB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CA4BrE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,GAAG,EACH,MAAM,EACP,EAAE;IACD,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,qBAAqB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAQrE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,qBAAqB,GAChC,MAAM,GAAG,SAAS,CAEpB;
|
|
1
|
+
{"version":3,"file":"appKey.d.ts","sourceRoot":"","sources":["../src/appKey.ts"],"names":[],"mappings":"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"}
|
package/dist/appKey.js
CHANGED
|
@@ -30,7 +30,7 @@ import { CapabilityAgent } from '@interop/capability-agent';
|
|
|
30
30
|
import { Ed25519Signature2020 } from '@interop/ed25519-signature';
|
|
31
31
|
import { issuerId, subjectId, typeArray } from '@interop/data-integrity-core/guards';
|
|
32
32
|
import { CONTEXT_URL_V1 as APP_CONNECT_CONTEXT_URL } from 'byoe-context';
|
|
33
|
-
import { documentLoader } from './
|
|
33
|
+
import { documentLoader } from './documentLoader.js';
|
|
34
34
|
/**
|
|
35
35
|
* The semantic `handle` mixed into seed derivation. It identifies the agent
|
|
36
36
|
* but does not affect the derived key (only the seed bytes and the key name
|
package/dist/appKey.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appKey.js","sourceRoot":"","sources":["../src/appKey.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAKjE,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACV,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"appKey.js","sourceRoot":"","sources":["../src/appKey.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*/
|
|
1
|
+
import type { IDocumentLoader, IProofDescription, ISigner } from '@interop/data-integrity-core';
|
|
2
|
+
import type { ICapabilityQueryDetail, IVPRDetails } from './types.js';
|
|
4
3
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* from the wallet is delegated capabilities on the user's Space. One
|
|
8
|
-
* `AuthorizationCapabilityQuery` (the canonical VCALM type string; the wallet
|
|
9
|
-
* side's `zcapQueriesOf` reads it back) carrying the requested capability
|
|
10
|
-
* details verbatim. Deliberately no `DIDAuthentication` query and no
|
|
11
|
-
* `domain`: the requester is asking for authority, not proving who it is to a
|
|
12
|
-
* verifier, and a requester without an attested origin (a CLI) has no domain
|
|
13
|
-
* a wallet could check.
|
|
4
|
+
* A capability request carrying the requester's `eddsa-jcs-2022`
|
|
5
|
+
* authentication proof. Signing adds the Data Integrity v2 `@context`.
|
|
14
6
|
*/
|
|
15
|
-
|
|
7
|
+
export type ISignedCapabilityRequest = IVPRDetails & {
|
|
8
|
+
'@context': string[];
|
|
9
|
+
proof: IProofDescription;
|
|
10
|
+
};
|
|
16
11
|
/**
|
|
17
12
|
* REQUESTER: builds the zcap-only VPR details for a set of capability
|
|
18
13
|
* requests. Each detail must name its `controller` (the grantee DID) and its
|
|
@@ -23,10 +18,11 @@ import type { ICapabilityQueryDetail, IVPRDetails } from './types.js';
|
|
|
23
18
|
* @param options {object}
|
|
24
19
|
* @param options.capabilityQueries {ICapabilityQueryDetail[]}
|
|
25
20
|
* @param [options.challenge] {string} a requester-chosen nonce the wallet
|
|
26
|
-
* echoes in its response presentation
|
|
21
|
+
* echoes in its response presentation. It is placed at the VPR root (where
|
|
22
|
+
* the wallet reads it) and inside the `AuthorizationCapabilityQuery`.
|
|
27
23
|
* @param [options.agent] {{ name: string }} the requester's self-declared
|
|
28
24
|
* display name, carried as the VPR's root `agent` member; shown at consent
|
|
29
|
-
* as what the
|
|
25
|
+
* as what the requester calls itself, not as verified identity. Validated by
|
|
30
26
|
* `normalizeAgentName` (trimmed, 1 to 64 characters, no control
|
|
31
27
|
* characters), so a name the wallet would refuse fails here first.
|
|
32
28
|
* @returns {IVPRDetails}
|
|
@@ -38,4 +34,58 @@ export declare function composeCapabilityRequest({ capabilityQueries, challenge,
|
|
|
38
34
|
name: string;
|
|
39
35
|
};
|
|
40
36
|
}): IVPRDetails;
|
|
37
|
+
/**
|
|
38
|
+
* REQUESTER: signs a capability request with the key of the `controller` its
|
|
39
|
+
* capability queries name. The proof is `eddsa-jcs-2022` with purpose
|
|
40
|
+
* `authentication`. Its `challenge` is the VPR-root `challenge`, and it
|
|
41
|
+
* carries no `domain`. The input request is left unchanged; a signed copy is
|
|
42
|
+
* returned.
|
|
43
|
+
*
|
|
44
|
+
* Throws when the request has no root `challenge`, when its capability
|
|
45
|
+
* queries do not all name one did:key `controller`, or when the signer's key
|
|
46
|
+
* id does not belong to that controller.
|
|
47
|
+
*
|
|
48
|
+
* @param options {object}
|
|
49
|
+
* @param options.request {IVPRDetails} the request, as built by
|
|
50
|
+
* `composeCapabilityRequest` with a `challenge`.
|
|
51
|
+
* @param options.signer {ISigner} the controller's signer; its `id` must be
|
|
52
|
+
* a verification method of the controller (`<controller>#<fragment>`).
|
|
53
|
+
* @returns {Promise<ISignedCapabilityRequest>}
|
|
54
|
+
*/
|
|
55
|
+
export declare function signCapabilityRequest({ request, signer }: {
|
|
56
|
+
request: IVPRDetails;
|
|
57
|
+
signer: ISigner;
|
|
58
|
+
}): Promise<ISignedCapabilityRequest>;
|
|
59
|
+
/**
|
|
60
|
+
* WALLET: verifies a signed capability request against the `controller` its
|
|
61
|
+
* capability queries name. The request arrives over the wire, so it is
|
|
62
|
+
* treated as untrusted input. Resolves with that controller on success.
|
|
63
|
+
*
|
|
64
|
+
* Throws a plain `Error` saying why when any check fails:
|
|
65
|
+
* - the request is not an object, is not plain JSON, or has no single `proof`
|
|
66
|
+
* object;
|
|
67
|
+
* - the proof is not a `DataIntegrityProof` with cryptosuite
|
|
68
|
+
* `eddsa-jcs-2022` and purpose `authentication`;
|
|
69
|
+
* - the proof carries a `domain`;
|
|
70
|
+
* - the root `challenge` is missing, or the proof's `challenge` differs;
|
|
71
|
+
* - the capability queries do not all name one did:key `controller`;
|
|
72
|
+
* - the proof's `verificationMethod` does not belong to that controller;
|
|
73
|
+
* - the signature does not verify (the verifier's error rides as `cause`).
|
|
74
|
+
*
|
|
75
|
+
* Every check above the signature runs before the document loader is called,
|
|
76
|
+
* so an unsigned or malformed request never causes a fetch.
|
|
77
|
+
*
|
|
78
|
+
* @param options {object}
|
|
79
|
+
* @param options.request {unknown} the signed request as received.
|
|
80
|
+
* @param [options.documentLoader] {IDocumentLoader} resolves the
|
|
81
|
+
* controller's did:key verification method; defaults to the shared
|
|
82
|
+
* security loader.
|
|
83
|
+
* @returns {Promise<{ controller: string }>}
|
|
84
|
+
*/
|
|
85
|
+
export declare function verifyCapabilityRequest({ request, documentLoader }: {
|
|
86
|
+
request: unknown;
|
|
87
|
+
documentLoader?: IDocumentLoader;
|
|
88
|
+
}): Promise<{
|
|
89
|
+
controller: string;
|
|
90
|
+
}>;
|
|
41
91
|
//# sourceMappingURL=capabilityRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilityRequest.d.ts","sourceRoot":"","sources":["../src/capabilityRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"capabilityRequest.d.ts","sourceRoot":"","sources":["../src/capabilityRequest.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,OAAO,EACR,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EAGZ,MAAM,YAAY,CAAA;AAOnB;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAAG;IACnD,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,EAAE,iBAAiB,CAAA;CACzB,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,iBAAiB,EACjB,SAAS,EACT,KAAK,EACN,EAAE;IACD,iBAAiB,EAAE,sBAAsB,EAAE,CAAA;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CACzB,GAAG,WAAW,CA4Bd;AAgED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,OAAO,EACP,MAAM,EACP,EAAE;IACD,OAAO,EAAE,WAAW,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;CAChB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAepC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,uBAAuB,CAAC,EAC5C,OAAO,EACP,cAAsC,EACvC,EAAE;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,CAAC,EAAE,eAAe,CAAA;CACjC,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAoElC"}
|
|
@@ -1,4 +1,36 @@
|
|
|
1
|
-
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* The zcap-only Verifiable Presentation Request: the request a requester (an
|
|
6
|
+
* app, service, or agent) stores on an ephemeral exchange (`ephemeralExchange.ts`) when all it wants
|
|
7
|
+
* from the wallet is delegated capabilities on the user's Space. One
|
|
8
|
+
* `AuthorizationCapabilityQuery` (the canonical VCALM type string; the wallet
|
|
9
|
+
* side's `zcapQueriesOf` reads it back) carrying the requested capability
|
|
10
|
+
* details verbatim. Deliberately no `DIDAuthentication` query and no
|
|
11
|
+
* `domain`: the requester is asking for authority, not proving who it is to a
|
|
12
|
+
* verifier, and a requester without an attested origin (a CLI) has no domain
|
|
13
|
+
* a wallet could check.
|
|
14
|
+
*
|
|
15
|
+
* A requester may also sign the request. The signed connection request
|
|
16
|
+
* carries one `eddsa-jcs-2022` proof made with the key of the `controller`
|
|
17
|
+
* the capability queries name. That controller is a did:key, so verifying
|
|
18
|
+
* the proof resolves the key locally and performs no network fetch on an
|
|
19
|
+
* untrusted request. The proof purpose is `authentication`. Its
|
|
20
|
+
* `challenge` equals the VPR-root `challenge`, and it has no `domain`. JCS
|
|
21
|
+
* covers the whole request, so a change to any member after signing breaks
|
|
22
|
+
* the proof. The wallet side runs `verifyCapabilityRequest` before acting on
|
|
23
|
+
* a signed request. It checks the proof shape, checks that the proof's key
|
|
24
|
+
* belongs to the named `controller`, and then checks the signature. This way
|
|
25
|
+
* a wallet does not mint a key toward a party that never asked.
|
|
26
|
+
*/
|
|
27
|
+
import { purposes, sign, verify } from '@interop/jsonld-signatures';
|
|
28
|
+
import { DataIntegrityProof } from '@interop/data-integrity-proof';
|
|
29
|
+
import { createVerifyCryptosuite, EddsaJcs2022 } from '@interop/ed25519-signature/eddsa-jcs-2022';
|
|
30
|
+
import { normalizeAgentName, queriesOf, zcapQueriesOf } from './classify.js';
|
|
31
|
+
import { documentLoader as defaultDocumentLoader } from './documentLoader.js';
|
|
32
|
+
// The purpose classes are reachable at runtime only through `purposes`.
|
|
33
|
+
const { AuthenticationProofPurpose } = purposes;
|
|
2
34
|
/**
|
|
3
35
|
* REQUESTER: builds the zcap-only VPR details for a set of capability
|
|
4
36
|
* requests. Each detail must name its `controller` (the grantee DID) and its
|
|
@@ -9,10 +41,11 @@ import { normalizeAgentName } from './classify.js';
|
|
|
9
41
|
* @param options {object}
|
|
10
42
|
* @param options.capabilityQueries {ICapabilityQueryDetail[]}
|
|
11
43
|
* @param [options.challenge] {string} a requester-chosen nonce the wallet
|
|
12
|
-
* echoes in its response presentation
|
|
44
|
+
* echoes in its response presentation. It is placed at the VPR root (where
|
|
45
|
+
* the wallet reads it) and inside the `AuthorizationCapabilityQuery`.
|
|
13
46
|
* @param [options.agent] {{ name: string }} the requester's self-declared
|
|
14
47
|
* display name, carried as the VPR's root `agent` member; shown at consent
|
|
15
|
-
* as what the
|
|
48
|
+
* as what the requester calls itself, not as verified identity. Validated by
|
|
16
49
|
* `normalizeAgentName` (trimmed, 1 to 64 characters, no control
|
|
17
50
|
* characters), so a name the wallet would refuse fails here first.
|
|
18
51
|
* @returns {IVPRDetails}
|
|
@@ -38,9 +71,169 @@ export function composeCapabilityRequest({ capabilityQueries, challenge, agent }
|
|
|
38
71
|
};
|
|
39
72
|
return {
|
|
40
73
|
query: [query],
|
|
74
|
+
...(challenge !== undefined && { challenge }),
|
|
41
75
|
...(agent !== undefined && {
|
|
42
76
|
agent: { name: normalizeAgentName({ name: agent.name }) }
|
|
43
77
|
})
|
|
44
78
|
};
|
|
45
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Reads what a signed capability request binds: the root `challenge` and the
|
|
82
|
+
* one did:key `controller` every capability query names. Signer and verifier
|
|
83
|
+
* both read the binding here, so the two sides cannot disagree on it.
|
|
84
|
+
*
|
|
85
|
+
* Throws when the challenge is missing or not a non-empty string, when the
|
|
86
|
+
* request has no capability query, when the queries name different
|
|
87
|
+
* controllers, or when the controller is not a did:key. The did:key rule is
|
|
88
|
+
* what keeps verification local: any other method would send the verifier's
|
|
89
|
+
* document loader to a URL the untrusted request chose.
|
|
90
|
+
*
|
|
91
|
+
* @param request {IVPRDetails}
|
|
92
|
+
* @returns {{ challenge: string, controller: string }}
|
|
93
|
+
*/
|
|
94
|
+
function bindingOf(request) {
|
|
95
|
+
const { challenge } = request;
|
|
96
|
+
if (typeof challenge !== 'string' || challenge === '') {
|
|
97
|
+
throw new Error('A signed capability request requires a root "challenge".');
|
|
98
|
+
}
|
|
99
|
+
const details = zcapQueriesOf(queriesOf(request));
|
|
100
|
+
if (details.length === 0) {
|
|
101
|
+
throw new Error('A capability request must carry a capability query.');
|
|
102
|
+
}
|
|
103
|
+
const controllers = new Set(details.map(detail => detail.controller));
|
|
104
|
+
if (controllers.size !== 1) {
|
|
105
|
+
throw new Error('Every capability query in a signed request must name the same ' +
|
|
106
|
+
'"controller".');
|
|
107
|
+
}
|
|
108
|
+
const [controller] = controllers;
|
|
109
|
+
if (typeof controller !== 'string' || !controller.startsWith('did:key:')) {
|
|
110
|
+
throw new Error('A signed capability request must name a did:key "controller".');
|
|
111
|
+
}
|
|
112
|
+
return { challenge, controller };
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Whether a key id is a verification method of the controller
|
|
116
|
+
* (`<controller>#<fragment>`). The `#` keeps a DID that merely extends the
|
|
117
|
+
* controller's string from passing.
|
|
118
|
+
*
|
|
119
|
+
* @param options {object}
|
|
120
|
+
* @param options.controller {string}
|
|
121
|
+
* @param options.keyId {unknown}
|
|
122
|
+
* @returns {boolean}
|
|
123
|
+
*/
|
|
124
|
+
function keyBelongsTo({ controller, keyId }) {
|
|
125
|
+
return typeof keyId === 'string' && keyId.startsWith(`${controller}#`);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* REQUESTER: signs a capability request with the key of the `controller` its
|
|
129
|
+
* capability queries name. The proof is `eddsa-jcs-2022` with purpose
|
|
130
|
+
* `authentication`. Its `challenge` is the VPR-root `challenge`, and it
|
|
131
|
+
* carries no `domain`. The input request is left unchanged; a signed copy is
|
|
132
|
+
* returned.
|
|
133
|
+
*
|
|
134
|
+
* Throws when the request has no root `challenge`, when its capability
|
|
135
|
+
* queries do not all name one did:key `controller`, or when the signer's key
|
|
136
|
+
* id does not belong to that controller.
|
|
137
|
+
*
|
|
138
|
+
* @param options {object}
|
|
139
|
+
* @param options.request {IVPRDetails} the request, as built by
|
|
140
|
+
* `composeCapabilityRequest` with a `challenge`.
|
|
141
|
+
* @param options.signer {ISigner} the controller's signer; its `id` must be
|
|
142
|
+
* a verification method of the controller (`<controller>#<fragment>`).
|
|
143
|
+
* @returns {Promise<ISignedCapabilityRequest>}
|
|
144
|
+
*/
|
|
145
|
+
export async function signCapabilityRequest({ request, signer }) {
|
|
146
|
+
const { challenge, controller } = bindingOf(request);
|
|
147
|
+
if (!keyBelongsTo({ controller, keyId: signer.id })) {
|
|
148
|
+
throw new Error(`The signer's key "${signer.id}" does not belong to the request's ` +
|
|
149
|
+
`controller "${controller}".`);
|
|
150
|
+
}
|
|
151
|
+
// jsigs adds its proof (and the suite context) to the document it is given.
|
|
152
|
+
const copy = structuredClone(request);
|
|
153
|
+
return (await sign(copy, {
|
|
154
|
+
suite: new EddsaJcs2022({ signer }),
|
|
155
|
+
purpose: new AuthenticationProofPurpose({ challenge }),
|
|
156
|
+
documentLoader: defaultDocumentLoader
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* WALLET: verifies a signed capability request against the `controller` its
|
|
161
|
+
* capability queries name. The request arrives over the wire, so it is
|
|
162
|
+
* treated as untrusted input. Resolves with that controller on success.
|
|
163
|
+
*
|
|
164
|
+
* Throws a plain `Error` saying why when any check fails:
|
|
165
|
+
* - the request is not an object, is not plain JSON, or has no single `proof`
|
|
166
|
+
* object;
|
|
167
|
+
* - the proof is not a `DataIntegrityProof` with cryptosuite
|
|
168
|
+
* `eddsa-jcs-2022` and purpose `authentication`;
|
|
169
|
+
* - the proof carries a `domain`;
|
|
170
|
+
* - the root `challenge` is missing, or the proof's `challenge` differs;
|
|
171
|
+
* - the capability queries do not all name one did:key `controller`;
|
|
172
|
+
* - the proof's `verificationMethod` does not belong to that controller;
|
|
173
|
+
* - the signature does not verify (the verifier's error rides as `cause`).
|
|
174
|
+
*
|
|
175
|
+
* Every check above the signature runs before the document loader is called,
|
|
176
|
+
* so an unsigned or malformed request never causes a fetch.
|
|
177
|
+
*
|
|
178
|
+
* @param options {object}
|
|
179
|
+
* @param options.request {unknown} the signed request as received.
|
|
180
|
+
* @param [options.documentLoader] {IDocumentLoader} resolves the
|
|
181
|
+
* controller's did:key verification method; defaults to the shared
|
|
182
|
+
* security loader.
|
|
183
|
+
* @returns {Promise<{ controller: string }>}
|
|
184
|
+
*/
|
|
185
|
+
export async function verifyCapabilityRequest({ request, documentLoader = defaultDocumentLoader }) {
|
|
186
|
+
if (!request || typeof request !== 'object' || Array.isArray(request)) {
|
|
187
|
+
throw new Error('A capability request must be an object.');
|
|
188
|
+
}
|
|
189
|
+
// The request is wire JSON. A JSON round trip drops anything a deserializer
|
|
190
|
+
// attached (prototypes, functions) and leaves the verifier a plain copy.
|
|
191
|
+
let copy;
|
|
192
|
+
try {
|
|
193
|
+
copy = JSON.parse(JSON.stringify(request));
|
|
194
|
+
}
|
|
195
|
+
catch (err) {
|
|
196
|
+
throw new Error('A capability request must be plain JSON.', { cause: err });
|
|
197
|
+
}
|
|
198
|
+
const { proof } = copy;
|
|
199
|
+
if (!proof || typeof proof !== 'object') {
|
|
200
|
+
throw new Error('The capability request carries no proof.');
|
|
201
|
+
}
|
|
202
|
+
if (Array.isArray(proof)) {
|
|
203
|
+
throw new Error('The capability request must carry exactly one proof.');
|
|
204
|
+
}
|
|
205
|
+
const { type, cryptosuite, proofPurpose, domain, challenge: proofChallenge, verificationMethod } = proof;
|
|
206
|
+
if (type !== 'DataIntegrityProof') {
|
|
207
|
+
throw new Error(`Unsupported request proof type "${String(type)}".`);
|
|
208
|
+
}
|
|
209
|
+
if (cryptosuite !== 'eddsa-jcs-2022') {
|
|
210
|
+
throw new Error(`Unsupported request proof cryptosuite "${String(cryptosuite)}".`);
|
|
211
|
+
}
|
|
212
|
+
if (proofPurpose !== 'authentication') {
|
|
213
|
+
throw new Error(`The request proof purpose must be "authentication", ` +
|
|
214
|
+
`not "${String(proofPurpose)}".`);
|
|
215
|
+
}
|
|
216
|
+
if (domain !== undefined) {
|
|
217
|
+
throw new Error('The request proof must not carry a "domain".');
|
|
218
|
+
}
|
|
219
|
+
const { challenge, controller } = bindingOf(copy);
|
|
220
|
+
if (proofChallenge !== challenge) {
|
|
221
|
+
throw new Error('The request proof "challenge" does not match the root "challenge".');
|
|
222
|
+
}
|
|
223
|
+
if (!keyBelongsTo({ controller, keyId: verificationMethod })) {
|
|
224
|
+
throw new Error("The request proof was not made with a key of the request's " +
|
|
225
|
+
`controller "${controller}".`);
|
|
226
|
+
}
|
|
227
|
+
const result = await verify(copy, {
|
|
228
|
+
suite: new DataIntegrityProof({ cryptosuite: createVerifyCryptosuite() }),
|
|
229
|
+
purpose: new AuthenticationProofPurpose({ challenge }),
|
|
230
|
+
documentLoader
|
|
231
|
+
});
|
|
232
|
+
if (!result.verified) {
|
|
233
|
+
throw new Error('The capability request signature did not verify.', {
|
|
234
|
+
cause: result.error
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
return { controller };
|
|
238
|
+
}
|
|
46
239
|
//# sourceMappingURL=capabilityRequest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilityRequest.js","sourceRoot":"","sources":["../src/capabilityRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"capabilityRequest.js","sourceRoot":"","sources":["../src/capabilityRequest.ts"],"names":[],"mappings":"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"}
|
package/dist/classify.d.ts
CHANGED
|
@@ -151,12 +151,13 @@ export declare function appConnectRequestOf({ queries, origin }: {
|
|
|
151
151
|
origin: string;
|
|
152
152
|
}): IAppConnectRequest | null;
|
|
153
153
|
/**
|
|
154
|
-
* The longest self-declared
|
|
154
|
+
* The longest self-declared name (the VPR's `agent.name`) the requester (an
|
|
155
|
+
* app, service, or agent) may send, after trimming.
|
|
155
156
|
*/
|
|
156
157
|
export declare const AGENT_NAME_MAX_LENGTH = 64;
|
|
157
158
|
/**
|
|
158
|
-
* Normalizes a self-declared
|
|
159
|
-
* the Login activity carry: trimmed, 1 to {@link AGENT_NAME_MAX_LENGTH}
|
|
159
|
+
* Normalizes a requester's self-declared name to the form the consent surface
|
|
160
|
+
* and the Login activity carry: trimmed, 1 to {@link AGENT_NAME_MAX_LENGTH}
|
|
160
161
|
* characters, with no control characters (C0 or C1, line breaks included).
|
|
161
162
|
* Any Unicode letter is fine -- names are not ASCII-only -- but a name that
|
|
162
163
|
* could spoof layout or sneak past a one-line render is refused. Both the
|
package/dist/classify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../src/classify.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EACV,eAAe,EAGf,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAEhB,eAAe,EACf,QAAQ,EACR,UAAU,EACV,WAAW,EACX,SAAS,EACT,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,EAEL,WAAW,EAIZ,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,WAAW,EAAE,CAAA;AAmBtB;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,qBAAqB,EAAE,GACnC,MAAM,CAKR;AA0DD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,uBAAuB,GACpC,qBAAqB,EAAE,CAEzB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,UAAU,CAYtE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,QAAQ,CAKxE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACR,EAAE;IACD,OAAO,EAAE,SAAS,EAAE,CAAA;CACrB,GAAG,OAAO,CAEV;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,EAAE,CAO3D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,eAAe,GACrB,gBAAgB,EAAE,CAEpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,sBAAsB,EAAE,CAiB5E;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,MAAM,EACP,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,MAAM,CA4BT;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,MAAM,EACP,EAAE;IACD,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,kBAAkB,GAAG,IAAI,CA6B5B;AAED
|
|
1
|
+
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../src/classify.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EACV,eAAe,EAGf,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAEhB,eAAe,EACf,QAAQ,EACR,UAAU,EACV,WAAW,EACX,SAAS,EACT,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,EAEL,WAAW,EAIZ,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,WAAW,EAAE,CAAA;AAmBtB;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,qBAAqB,EAAE,GACnC,MAAM,CAKR;AA0DD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,uBAAuB,GACpC,qBAAqB,EAAE,CAEzB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,UAAU,CAYtE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,QAAQ,CAKxE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACR,EAAE;IACD,OAAO,EAAE,SAAS,EAAE,CAAA;CACrB,GAAG,OAAO,CAEV;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,EAAE,CAO3D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,eAAe,GACrB,gBAAgB,EAAE,CAEpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,sBAAsB,EAAE,CAiB5E;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,MAAM,EACP,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,MAAM,CA4BT;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,MAAM,EACP,EAAE;IACD,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,kBAAkB,GAAG,IAAI,CA6B5B;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAEvC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAoBtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAS9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,oBAAoB,CAW1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAMpE;AAED;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,kBAAmB,CAAA;AAE/D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,SAAS,EAAE,EACpB,kBAAkB,GAAE,SAAS,MAAM,EAAoC,GACtE,OAAO,CAWT"}
|
package/dist/classify.js
CHANGED
|
@@ -276,12 +276,13 @@ export function appConnectRequestOf({ queries, origin }) {
|
|
|
276
276
|
return { app: { name: app.name, appUrl }, capabilityQueries };
|
|
277
277
|
}
|
|
278
278
|
/**
|
|
279
|
-
* The longest self-declared
|
|
279
|
+
* The longest self-declared name (the VPR's `agent.name`) the requester (an
|
|
280
|
+
* app, service, or agent) may send, after trimming.
|
|
280
281
|
*/
|
|
281
282
|
export const AGENT_NAME_MAX_LENGTH = 64;
|
|
282
283
|
/**
|
|
283
|
-
* Normalizes a self-declared
|
|
284
|
-
* the Login activity carry: trimmed, 1 to {@link AGENT_NAME_MAX_LENGTH}
|
|
284
|
+
* Normalizes a requester's self-declared name to the form the consent surface
|
|
285
|
+
* and the Login activity carry: trimmed, 1 to {@link AGENT_NAME_MAX_LENGTH}
|
|
285
286
|
* characters, with no control characters (C0 or C1, line breaks included).
|
|
286
287
|
* Any Unicode letter is fine -- names are not ASCII-only -- but a name that
|
|
287
288
|
* could spoof layout or sneak past a one-line render is refused. Both the
|
package/dist/classify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify.js","sourceRoot":"","sources":["../src/classify.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"classify.js","sourceRoot":"","sources":["../src/classify.ts"],"names":[],"mappings":"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"}
|
package/dist/composeVp.d.ts
CHANGED
|
@@ -1,26 +1,18 @@
|
|
|
1
1
|
import type { IDocumentLoader } from '@interop/data-integrity-core';
|
|
2
2
|
import type { IVerifiablePresentation, IVerifiableCredential, IZcap, PresentationSigner } from './types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Shared JSON-LD document loader for presentation and credential signing: the
|
|
5
|
-
* standard security contexts plus the hosted App Connect context, resolved
|
|
6
|
-
* from the bundled `byoe-context` document so neither signing nor verification
|
|
7
|
-
* fetches it. Exported so single-VC issuance paths reuse the same context
|
|
8
|
-
* resolution the VP compose path uses.
|
|
9
|
-
*/
|
|
10
|
-
export declare const documentLoader: IDocumentLoader;
|
|
11
3
|
/**
|
|
12
4
|
* Creates a Verifiable Presentation for the requester.
|
|
13
5
|
*
|
|
14
6
|
* @param options {object}
|
|
15
7
|
* @param [options.presentationSigner] {PresentationSigner} - The authentication
|
|
16
|
-
* signer and the holder DID to name on a signed VP. Required when
|
|
17
|
-
*
|
|
8
|
+
* signer and the holder DID to name on a signed VP. Required when `sign`
|
|
9
|
+
* is true; an unsigned (or zcap-only) VP needs none.
|
|
18
10
|
* @param [options.selectedVcs] {IVerifiableCredential[]} - VCs the user chose to
|
|
19
11
|
* share (empty for a DID-Auth-only or zcap-only response).
|
|
20
|
-
* @param [options.challenge] {string} - Required when
|
|
12
|
+
* @param [options.challenge] {string} - Required when `sign` is true.
|
|
21
13
|
* @param [options.domain] {string} - Signed into the proof when present;
|
|
22
14
|
* optional per the VPR spec.
|
|
23
|
-
* @param options.
|
|
15
|
+
* @param options.sign {boolean} - Whether to sign the VP.
|
|
24
16
|
* @param [options.cryptosuite] {string} - Negotiated cryptosuite; falls back to
|
|
25
17
|
* the wallet default (Ed25519Signature2020) when absent.
|
|
26
18
|
* @param [options.zcaps] {IZcap[]} - Delegated capabilities to embed as the
|
|
@@ -31,12 +23,12 @@ export declare const documentLoader: IDocumentLoader;
|
|
|
31
23
|
* to the shared security loader.
|
|
32
24
|
* @returns {Promise<IVerifiablePresentation>}
|
|
33
25
|
*/
|
|
34
|
-
export declare function composeVp({ presentationSigner, selectedVcs, challenge, domain,
|
|
26
|
+
export declare function composeVp({ presentationSigner, selectedVcs, challenge, domain, sign, cryptosuite, zcaps, appConnect, documentLoader: loader }: {
|
|
35
27
|
presentationSigner?: PresentationSigner;
|
|
36
28
|
selectedVcs?: IVerifiableCredential[];
|
|
37
29
|
challenge?: string;
|
|
38
30
|
domain?: string;
|
|
39
|
-
|
|
31
|
+
sign: boolean;
|
|
40
32
|
cryptosuite?: string;
|
|
41
33
|
zcaps?: IZcap[];
|
|
42
34
|
appConnect?: {
|
package/dist/composeVp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeVp.d.ts","sourceRoot":"","sources":["../src/composeVp.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"composeVp.d.ts","sourceRoot":"","sources":["../src/composeVp.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAKnE,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,EACL,kBAAkB,EACnB,MAAM,YAAY,CAAA;AAuFnB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,SAAS,CAAC,EAC9B,kBAAkB,EAClB,WAAgB,EAChB,SAAS,EACT,MAAM,EACN,IAAI,EACJ,WAAW,EACX,KAAU,EACV,UAAU,EACV,cAAc,EAAE,MAAuB,EACxC,EAAE;IACD,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAA;IACrC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAA;IAClC,cAAc,CAAC,EAAE,eAAe,CAAA;CACjC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAuDnC"}
|
package/dist/composeVp.js
CHANGED
|
@@ -3,39 +3,26 @@
|
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* Composes a Verifiable Presentation to send back to a requester. The VP is
|
|
6
|
-
* signed when
|
|
7
|
-
* DID over the request's `challenge`, and `domain` when
|
|
8
|
-
*
|
|
6
|
+
* signed when the caller asks for a signature (proving control of the holder's
|
|
7
|
+
* DID over the request's `challenge`, and `domain` when given one), and
|
|
8
|
+
* unsigned otherwise. The caller decides when to sign: under a DID
|
|
9
|
+
* Authentication query, or for a response the wallet signs on its own terms.
|
|
9
10
|
*
|
|
10
11
|
* Merged from DCW's `app/lib/composeVp.ts` and Freewallet's
|
|
11
12
|
* `src/lib/walletRequest/composeVP.ts`. The signer and holder DID are injected
|
|
12
13
|
* as a {@link PresentationSigner} -- each app resolves them from its own key
|
|
13
14
|
* material -- and the optional zcap / appConnect embedding (grants ride inside
|
|
14
15
|
* the VP, added before signing so a DIDAuth proof covers them) is carried over
|
|
15
|
-
* from Freewallet. The
|
|
16
|
+
* from Freewallet. The signing guard follows DCW: `challenge` is required,
|
|
16
17
|
* `domain` is optional (a wallet that needs the stricter "domain always
|
|
17
18
|
* present" invariant enforces it in its own wrapper before calling here).
|
|
18
19
|
*/
|
|
19
20
|
import * as vc from '@interop/vc';
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
21
|
+
import { CONTEXT_URL_V1 } from 'byoe-context';
|
|
22
|
+
import { documentLoader } from './documentLoader.js';
|
|
22
23
|
import { presentationSuiteFor } from './presentationSuite.js';
|
|
23
24
|
import { presentationVersionFor } from './classify.js';
|
|
24
25
|
import { toArray } from './queryPredicates.js';
|
|
25
|
-
/**
|
|
26
|
-
* Shared JSON-LD document loader for presentation and credential signing: the
|
|
27
|
-
* standard security contexts plus the hosted App Connect context, resolved
|
|
28
|
-
* from the bundled `byoe-context` document so neither signing nor verification
|
|
29
|
-
* fetches it. Exported so single-VC issuance paths reuse the same context
|
|
30
|
-
* resolution the VP compose path uses.
|
|
31
|
-
*/
|
|
32
|
-
export const documentLoader = (() => {
|
|
33
|
-
const loader = securityLoader({ fetchRemoteContexts: true });
|
|
34
|
-
for (const [url, context] of byoeContexts) {
|
|
35
|
-
loader.addStatic(url, context);
|
|
36
|
-
}
|
|
37
|
-
return loader.build();
|
|
38
|
-
})();
|
|
39
26
|
/**
|
|
40
27
|
* The hosted App Connect context URL appended to the VP `@context` when grants
|
|
41
28
|
* or the App Connect response marker are embedded. The context document
|
|
@@ -102,14 +89,14 @@ function embedAppConnect(presentation, appConnect) {
|
|
|
102
89
|
*
|
|
103
90
|
* @param options {object}
|
|
104
91
|
* @param [options.presentationSigner] {PresentationSigner} - The authentication
|
|
105
|
-
* signer and the holder DID to name on a signed VP. Required when
|
|
106
|
-
*
|
|
92
|
+
* signer and the holder DID to name on a signed VP. Required when `sign`
|
|
93
|
+
* is true; an unsigned (or zcap-only) VP needs none.
|
|
107
94
|
* @param [options.selectedVcs] {IVerifiableCredential[]} - VCs the user chose to
|
|
108
95
|
* share (empty for a DID-Auth-only or zcap-only response).
|
|
109
|
-
* @param [options.challenge] {string} - Required when
|
|
96
|
+
* @param [options.challenge] {string} - Required when `sign` is true.
|
|
110
97
|
* @param [options.domain] {string} - Signed into the proof when present;
|
|
111
98
|
* optional per the VPR spec.
|
|
112
|
-
* @param options.
|
|
99
|
+
* @param options.sign {boolean} - Whether to sign the VP.
|
|
113
100
|
* @param [options.cryptosuite] {string} - Negotiated cryptosuite; falls back to
|
|
114
101
|
* the wallet default (Ed25519Signature2020) when absent.
|
|
115
102
|
* @param [options.zcaps] {IZcap[]} - Delegated capabilities to embed as the
|
|
@@ -120,14 +107,14 @@ function embedAppConnect(presentation, appConnect) {
|
|
|
120
107
|
* to the shared security loader.
|
|
121
108
|
* @returns {Promise<IVerifiablePresentation>}
|
|
122
109
|
*/
|
|
123
|
-
export async function composeVp({ presentationSigner, selectedVcs = [], challenge, domain,
|
|
124
|
-
if (!
|
|
125
|
-
throw new Error('A VP requires credentials, capabilities, or a
|
|
110
|
+
export async function composeVp({ presentationSigner, selectedVcs = [], challenge, domain, sign, cryptosuite, zcaps = [], appConnect, documentLoader: loader = documentLoader }) {
|
|
111
|
+
if (!sign && selectedVcs.length === 0 && zcaps.length === 0) {
|
|
112
|
+
throw new Error('A VP requires credentials, capabilities, or a signature.');
|
|
126
113
|
}
|
|
127
|
-
if (
|
|
128
|
-
throw new Error('A "challenge" is required
|
|
114
|
+
if (sign && !challenge) {
|
|
115
|
+
throw new Error('A "challenge" is required to sign a VP.');
|
|
129
116
|
}
|
|
130
|
-
if (!
|
|
117
|
+
if (!sign) {
|
|
131
118
|
// Return an unsigned VP. verify: false skips per-VC validation (including
|
|
132
119
|
// expiration checks). A zcap-only response rides here: the grants are
|
|
133
120
|
// individually signed and controller-bound, so they need no VP proof.
|
|
@@ -143,7 +130,7 @@ export async function composeVp({ presentationSigner, selectedVcs = [], challeng
|
|
|
143
130
|
return presentation;
|
|
144
131
|
}
|
|
145
132
|
if (!presentationSigner) {
|
|
146
|
-
throw new Error('A "presentationSigner" is required
|
|
133
|
+
throw new Error('A "presentationSigner" is required to sign a VP.');
|
|
147
134
|
}
|
|
148
135
|
const { signer, holder } = presentationSigner;
|
|
149
136
|
// Sign with the cryptosuite the verifier requested (via VCALM
|
package/dist/composeVp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeVp.js","sourceRoot":"","sources":["../src/composeVp.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"composeVp.js","sourceRoot":"","sources":["../src/composeVp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IDocumentLoader } from '@interop/data-integrity-core';
|
|
2
|
+
/**
|
|
3
|
+
* Shared JSON-LD document loader for presentation, credential, and request
|
|
4
|
+
* signing and verification. Exported so an app can hand the same context
|
|
5
|
+
* resolution to its own signing paths.
|
|
6
|
+
*/
|
|
7
|
+
export declare const documentLoader: IDocumentLoader;
|
|
8
|
+
//# sourceMappingURL=documentLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentLoader.d.ts","sourceRoot":"","sources":["../src/documentLoader.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAEnE;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,eAMzB,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* The shared JSON-LD document loader every signing and verifying path in the
|
|
6
|
+
* package uses: the standard security contexts plus the hosted App Connect
|
|
7
|
+
* context, resolved from the bundled `byoe-context` document so neither
|
|
8
|
+
* signing nor verification fetches it. Built once at module load. A context
|
|
9
|
+
* URL that is not bundled is fetched over HTTPS through the global `fetch`.
|
|
10
|
+
*/
|
|
11
|
+
import { securityLoader } from '@interop/security-document-loader';
|
|
12
|
+
import { contexts as byoeContexts } from 'byoe-context';
|
|
13
|
+
/**
|
|
14
|
+
* Shared JSON-LD document loader for presentation, credential, and request
|
|
15
|
+
* signing and verification. Exported so an app can hand the same context
|
|
16
|
+
* resolution to its own signing paths.
|
|
17
|
+
*/
|
|
18
|
+
export const documentLoader = (() => {
|
|
19
|
+
const loader = securityLoader({ fetchRemoteContexts: true });
|
|
20
|
+
for (const [url, context] of byoeContexts) {
|
|
21
|
+
loader.addStatic(url, context);
|
|
22
|
+
}
|
|
23
|
+
return loader.build();
|
|
24
|
+
})();
|
|
25
|
+
//# sourceMappingURL=documentLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentLoader.js","sourceRoot":"","sources":["../src/documentLoader.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAGvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB,CAAC,GAAG,EAAE;IACnD,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5D,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;QAC1C,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAChC,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,EAAE,CAAA;AACvB,CAAC,CAAC,EAAE,CAAA"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA"}
|
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;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA"}
|
package/dist/processRequest.d.ts
CHANGED
|
@@ -46,15 +46,24 @@ export declare class ExclusiveQueryUnsupportedError extends Error {
|
|
|
46
46
|
* App Connect processors.
|
|
47
47
|
* @param [options.cryptosuite] {string} - Cryptosuite override; when absent it
|
|
48
48
|
* is negotiated from the request's `acceptedCryptosuites`.
|
|
49
|
+
* @param [options.signWithoutDidAuth] {boolean} - Sign the response VP with
|
|
50
|
+
* `presentationSigner` even when the request has no DIDAuthentication
|
|
51
|
+
* query. The proof covers the VPR-root `challenge` (required; its absence
|
|
52
|
+
* throws) and names no `domain`, even when the request carries one. The
|
|
53
|
+
* domain-binding check still runs first. Defaults to false, which signs
|
|
54
|
+
* only under DID Auth. A request with nothing to send still returns `{}`.
|
|
55
|
+
* Not consulted on the App Connect branch, whose `processAppConnect`
|
|
56
|
+
* processor composes and signs its own response.
|
|
49
57
|
* @returns {Promise<WalletResponse>} The response VP (and any granted zcaps), or
|
|
50
58
|
* `{}` when there is nothing to send.
|
|
51
59
|
*/
|
|
52
|
-
export declare function processRequest({ request, presentationSigner, selectedVCs, credentialRequestOrigin, processors, cryptosuite }: {
|
|
60
|
+
export declare function processRequest({ request, presentationSigner, selectedVCs, credentialRequestOrigin, processors, cryptosuite, signWithoutDidAuth }: {
|
|
53
61
|
request: IVPRDetails;
|
|
54
62
|
presentationSigner: PresentationSigner;
|
|
55
63
|
selectedVCs?: IVerifiableCredential[];
|
|
56
64
|
credentialRequestOrigin?: string;
|
|
57
65
|
processors?: RequestProcessors;
|
|
58
66
|
cryptosuite?: string;
|
|
67
|
+
signWithoutDidAuth?: boolean;
|
|
59
68
|
}): Promise<WalletResponse>;
|
|
60
69
|
//# sourceMappingURL=processRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processRequest.d.ts","sourceRoot":"","sources":["../src/processRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processRequest.d.ts","sourceRoot":"","sources":["../src/processRequest.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EAEX,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAA;AAkBnB;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,MAAM,EACP,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,OAAO,CAOV;AAED;;;;;;;GAOG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAA;gBAE1B,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,kBAAkB,CAAA;KAAE;CAQ7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,cAAc,CAAC,EACnC,OAAO,EACP,kBAAkB,EAClB,WAAgB,EAChB,uBAAuB,EACvB,UAAU,EACV,WAAW,EACX,kBAA0B,EAC3B,EAAE;IACD,OAAO,EAAE,WAAW,CAAA;IACpB,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAA;IACrC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,GAAG,OAAO,CAAC,cAAc,CAAC,CAoG1B"}
|
package/dist/processRequest.js
CHANGED
|
@@ -14,6 +14,12 @@
|
|
|
14
14
|
* Connect branch -- are injected as {@link RequestProcessors} rather than
|
|
15
15
|
* imported, so this layer carries no session / grant-resolution machinery. The
|
|
16
16
|
* signer and holder DID are injected as a {@link PresentationSigner}.
|
|
17
|
+
*
|
|
18
|
+
* The response VP is signed when the request carries a DIDAuthentication
|
|
19
|
+
* query. A caller may also set `signWithoutDidAuth` to sign a response to a
|
|
20
|
+
* request with no such query. That proof covers the VPR-root `challenge` and
|
|
21
|
+
* names no `domain`. The App Connect branch is outside the switch: its
|
|
22
|
+
* processor owns that response, including whether and how it is signed.
|
|
17
23
|
*/
|
|
18
24
|
import { log } from './log.js';
|
|
19
25
|
import { appConnectRequestOf, classifyRequest, queriesOf } from './classify.js';
|
|
@@ -89,10 +95,18 @@ export class ExclusiveQueryUnsupportedError extends Error {
|
|
|
89
95
|
* App Connect processors.
|
|
90
96
|
* @param [options.cryptosuite] {string} - Cryptosuite override; when absent it
|
|
91
97
|
* is negotiated from the request's `acceptedCryptosuites`.
|
|
98
|
+
* @param [options.signWithoutDidAuth] {boolean} - Sign the response VP with
|
|
99
|
+
* `presentationSigner` even when the request has no DIDAuthentication
|
|
100
|
+
* query. The proof covers the VPR-root `challenge` (required; its absence
|
|
101
|
+
* throws) and names no `domain`, even when the request carries one. The
|
|
102
|
+
* domain-binding check still runs first. Defaults to false, which signs
|
|
103
|
+
* only under DID Auth. A request with nothing to send still returns `{}`.
|
|
104
|
+
* Not consulted on the App Connect branch, whose `processAppConnect`
|
|
105
|
+
* processor composes and signs its own response.
|
|
92
106
|
* @returns {Promise<WalletResponse>} The response VP (and any granted zcaps), or
|
|
93
107
|
* `{}` when there is nothing to send.
|
|
94
108
|
*/
|
|
95
|
-
export async function processRequest({ request, presentationSigner, selectedVCs = [], credentialRequestOrigin, processors, cryptosuite }) {
|
|
109
|
+
export async function processRequest({ request, presentationSigner, selectedVCs = [], credentialRequestOrigin, processors, cryptosuite, signWithoutDidAuth = false }) {
|
|
96
110
|
const { didAuth, zcapRequests } = classifyRequest(request);
|
|
97
111
|
const queries = queriesOf(request);
|
|
98
112
|
const { challenge, domain } = request;
|
|
@@ -147,6 +161,16 @@ export async function processRequest({ request, presentationSigner, selectedVCs
|
|
|
147
161
|
cryptosuite: negotiatedCryptosuite
|
|
148
162
|
});
|
|
149
163
|
}
|
|
164
|
+
// The response is signed under a DID Auth query, or when the caller asks
|
|
165
|
+
// for it. A proof made without a DID Auth query binds only the VPR-root
|
|
166
|
+
// `challenge` and names no `domain`, whatever the request carries. The
|
|
167
|
+
// challenge guard mirrors composeVp's and runs before any capability is
|
|
168
|
+
// delegated, so a refused request mints nothing.
|
|
169
|
+
const sign = didAuth || signWithoutDidAuth;
|
|
170
|
+
const proofDomain = didAuth ? domain : undefined;
|
|
171
|
+
if (sign && !challenge) {
|
|
172
|
+
throw new Error('A "challenge" is required to sign a VP.');
|
|
173
|
+
}
|
|
150
174
|
// Delegate the approved capabilities first, then embed them in the VP.
|
|
151
175
|
const zcaps = zcapRequests.length > 0 && processors?.processZcaps
|
|
152
176
|
? await processors.processZcaps({ zcapRequests })
|
|
@@ -159,8 +183,8 @@ export async function processRequest({ request, presentationSigner, selectedVCs
|
|
|
159
183
|
presentationSigner,
|
|
160
184
|
selectedVcs: selectedVCs,
|
|
161
185
|
challenge,
|
|
162
|
-
domain,
|
|
163
|
-
|
|
186
|
+
domain: proofDomain,
|
|
187
|
+
sign,
|
|
164
188
|
cryptosuite: negotiatedCryptosuite,
|
|
165
189
|
zcaps
|
|
166
190
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processRequest.js","sourceRoot":"","sources":["../src/processRequest.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"processRequest.js","sourceRoot":"","sources":["../src/processRequest.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -40,12 +40,13 @@ export interface CHAPIProtocols {
|
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
42
|
* The body of a Verifiable Presentation Request, widened from the spec
|
|
43
|
-
* vocabulary with the wallet-layer `agent` member
|
|
44
|
-
* self-declared display name
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
* like App Connect's
|
|
43
|
+
* vocabulary with the wallet-layer `agent` member. It carries the
|
|
44
|
+
* self-declared display name of the requester (an app, service, or agent) on
|
|
45
|
+
* a standalone capability request. Such a requester asks for grants through
|
|
46
|
+
* an interaction URL, where no attested origin names it. The member sits at
|
|
47
|
+
* the VPR root rather than on each query, since one requester sends the whole
|
|
48
|
+
* request. It is display only and attacker-controlled, like App Connect's
|
|
49
|
+
* `app.name`. `requestingAgentOf` validates it.
|
|
49
50
|
*/
|
|
50
51
|
export type IVPRDetails = ISpecVPRDetails & {
|
|
51
52
|
agent?: {
|
|
@@ -111,8 +112,8 @@ export interface VCAPIExchangeResponse {
|
|
|
111
112
|
* A VP Request classified on independent axes: whether DID Authentication is
|
|
112
113
|
* requested, what credentials are asked for (`vcQueries`), and what capability
|
|
113
114
|
* delegations are asked for (`zcapRequests`). Any combination is valid,
|
|
114
|
-
* including zcap-only.
|
|
115
|
-
* Freewallet's App Connect) extends this shape with its own field.
|
|
115
|
+
* including zcap-only. A wallet that layers additional query kinds on top
|
|
116
|
+
* (e.g. Freewallet's App Connect) extends this shape with its own field.
|
|
116
117
|
*/
|
|
117
118
|
export interface WalletRequestProfile {
|
|
118
119
|
didAuth: boolean;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,EACN,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,WAAW,IAAI,eAAe,EAC9B,cAAc,EACf,MAAM,kCAAkC,CAAA;AAKzC,YAAY,EACV,UAAU,EACV,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACf,MAAM,kCAAkC,CAAA;AACzC,YAAY,EACV,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,EACN,MAAM,8BAA8B,CAAA;AAErC;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interop/wallet-request",
|
|
3
3
|
"description": "Wallet-request and exchange protocol handling for Interop wallet apps: input classification, VPR parsing, QueryByExample matching, cryptosuite negotiation, VP composition, the App Connect app-key credential, and the VC-API / ephemeral-exchange clients.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.5.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "pnpm run clear && tsc",
|
|
@@ -45,10 +45,11 @@
|
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@interop/capability-agent": "^0.2.1",
|
|
47
47
|
"@interop/data-integrity-core": "^8.8.0",
|
|
48
|
-
"@interop/data-integrity-proof": "^3.4.
|
|
48
|
+
"@interop/data-integrity-proof": "^3.4.7",
|
|
49
49
|
"@interop/ed25519-signature": "^7.2.3",
|
|
50
|
-
"@interop/
|
|
51
|
-
"@interop/
|
|
50
|
+
"@interop/jsonld-signatures": "^11.8.7",
|
|
51
|
+
"@interop/security-document-loader": "^10.1.4",
|
|
52
|
+
"@interop/vc": "^11.0.12",
|
|
52
53
|
"@scure/base": "^2.3.0",
|
|
53
54
|
"byoe-context": "^0.5.0"
|
|
54
55
|
},
|