@interop/was-client 0.26.0 → 0.27.2
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/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +27 -66
- package/dist/Collection.js.map +1 -1
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +28 -6
- package/dist/Resource.js.map +1 -1
- package/dist/Space.d.ts.map +1 -1
- package/dist/Space.js +10 -25
- package/dist/Space.js.map +1 -1
- package/dist/WasClient.d.ts.map +1 -1
- package/dist/WasClient.js +9 -19
- package/dist/WasClient.js.map +1 -1
- package/dist/codec.d.ts +31 -5
- package/dist/codec.d.ts.map +1 -1
- package/dist/edv/EdvCodec.d.ts +9 -14
- package/dist/edv/EdvCodec.d.ts.map +1 -1
- package/dist/edv/EdvCodec.js +147 -71
- package/dist/edv/EdvCodec.js.map +1 -1
- package/dist/edv/WasTransport.d.ts +1 -2
- package/dist/edv/WasTransport.d.ts.map +1 -1
- package/dist/edv/WasTransport.js +19 -28
- package/dist/edv/WasTransport.js.map +1 -1
- package/dist/edv/constants.d.ts +11 -0
- package/dist/edv/constants.d.ts.map +1 -1
- package/dist/edv/constants.js +16 -4
- package/dist/edv/constants.js.map +1 -1
- package/dist/edv/docCipher.d.ts +10 -26
- package/dist/edv/docCipher.d.ts.map +1 -1
- package/dist/edv/docCipher.js +62 -135
- package/dist/edv/docCipher.js.map +1 -1
- package/dist/edv/epochCrypto.d.ts +0 -4
- package/dist/edv/epochCrypto.d.ts.map +1 -1
- package/dist/edv/epochCrypto.js +4 -4
- package/dist/edv/epochCrypto.js.map +1 -1
- package/dist/edv/epochKeys.d.ts.map +1 -1
- package/dist/edv/epochKeys.js +2 -4
- package/dist/edv/epochKeys.js.map +1 -1
- package/dist/edv/epochMac.d.ts +24 -1
- package/dist/edv/epochMac.d.ts.map +1 -1
- package/dist/edv/epochMac.js +43 -13
- package/dist/edv/epochMac.js.map +1 -1
- package/dist/edv/index.d.ts +6 -4
- package/dist/edv/index.d.ts.map +1 -1
- package/dist/edv/index.js +4 -3
- package/dist/edv/index.js.map +1 -1
- package/dist/edv/recipients.d.ts +29 -17
- package/dist/edv/recipients.d.ts.map +1 -1
- package/dist/edv/recipients.js +177 -112
- package/dist/edv/recipients.js.map +1 -1
- package/dist/errors.d.ts +29 -12
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +37 -65
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/internal/codec.d.ts +15 -12
- package/dist/internal/codec.d.ts.map +1 -1
- package/dist/internal/codec.js +4 -6
- package/dist/internal/codec.js.map +1 -1
- package/dist/internal/conditional.d.ts +9 -4
- package/dist/internal/conditional.d.ts.map +1 -1
- package/dist/internal/conditional.js +9 -2
- package/dist/internal/conditional.js.map +1 -1
- package/dist/internal/content.d.ts +28 -24
- package/dist/internal/content.d.ts.map +1 -1
- package/dist/internal/content.js +28 -13
- package/dist/internal/content.js.map +1 -1
- package/dist/internal/describe.d.ts +15 -2
- package/dist/internal/describe.d.ts.map +1 -1
- package/dist/internal/describe.js +17 -0
- package/dist/internal/describe.js.map +1 -1
- package/dist/internal/pagination.d.ts +20 -1
- package/dist/internal/pagination.d.ts.map +1 -1
- package/dist/internal/pagination.js +22 -0
- package/dist/internal/pagination.js.map +1 -1
- package/dist/internal/paths.d.ts +0 -11
- package/dist/internal/paths.d.ts.map +1 -1
- package/dist/internal/paths.js +20 -33
- package/dist/internal/paths.js.map +1 -1
- package/dist/internal/policy.d.ts.map +1 -1
- package/dist/internal/policy.js +2 -9
- package/dist/internal/policy.js.map +1 -1
- package/dist/internal/write.d.ts +50 -4
- package/dist/internal/write.d.ts.map +1 -1
- package/dist/internal/write.js +45 -0
- package/dist/internal/write.js.map +1 -1
- package/dist/sync/cid.d.ts.map +1 -1
- package/dist/sync/cid.js +8 -2
- package/dist/sync/cid.js.map +1 -1
- package/dist/sync/port.d.ts +9 -8
- package/dist/sync/port.d.ts.map +1 -1
- package/dist/sync/port.js +74 -70
- package/dist/sync/port.js.map +1 -1
- package/dist/sync/provisioning.d.ts +4 -1
- package/dist/sync/provisioning.d.ts.map +1 -1
- package/dist/sync/provisioning.js +11 -2
- package/dist/sync/provisioning.js.map +1 -1
- package/dist/sync/types.d.ts +7 -10
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +14 -14
package/dist/edv/recipients.js
CHANGED
|
@@ -1,12 +1,122 @@
|
|
|
1
|
+
import { EDV_SCHEME_VERSION } from './constants.js';
|
|
1
2
|
import { PreconditionFailedError, ValidationError } from '../errors.js';
|
|
2
3
|
import { collectionDescriptorStore } from './descriptorStore.js';
|
|
3
4
|
import { didKeyResolver, mintEpoch, unwrapEpochSecret, wrapEpochSecret } from './epochCrypto.js';
|
|
4
|
-
import { computeEpochsMac } from './epochMac.js';
|
|
5
|
+
import { computeEpochsMac, epochsSigPayload } from './epochMac.js';
|
|
5
6
|
/**
|
|
6
7
|
* How many times a recipient CAS write retries a stale (`412`) description
|
|
7
8
|
* before surfacing {@link PreconditionFailedError}.
|
|
8
9
|
*/
|
|
9
10
|
const MAX_CAS_ATTEMPTS = 3;
|
|
11
|
+
/**
|
|
12
|
+
* Stamps the epoch-configuration authenticators onto a descriptor about to be
|
|
13
|
+
* written: the `epochsMac` under the current epoch's secret always, and the
|
|
14
|
+
* detached `epochsSig` when the caller supplied a signer. Without a signer any
|
|
15
|
+
* prior `epochsSig` is dropped rather than carried forward -- the epoch
|
|
16
|
+
* configuration just changed, so a stale signature over the old configuration
|
|
17
|
+
* would only ever fail verification.
|
|
18
|
+
*
|
|
19
|
+
* @param options {object}
|
|
20
|
+
* @param options.descriptor {CollectionEncryption} the exact descriptor
|
|
21
|
+
* state being written (epochs / currentEpoch already updated)
|
|
22
|
+
* @param options.epochSecret {Uint8Array} the current epoch's 32-byte secret
|
|
23
|
+
* @param [options.signEpochs] {EpochsSigner} the caller's epoch-config signer
|
|
24
|
+
* @returns {Promise<CollectionEncryption>} the descriptor with `epochsMac`
|
|
25
|
+
* (and `epochsSig`, when signed) stamped
|
|
26
|
+
*/
|
|
27
|
+
async function stampEpochsAuth({ descriptor, epochSecret, signEpochs }) {
|
|
28
|
+
const epochsMac = await computeEpochsMac({ descriptor, epochSecret });
|
|
29
|
+
const stamped = { ...descriptor, epochsMac };
|
|
30
|
+
if (signEpochs) {
|
|
31
|
+
stamped.epochsSig = await signEpochs({
|
|
32
|
+
payload: epochsSigPayload(stamped)
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
delete stamped.epochsSig;
|
|
37
|
+
}
|
|
38
|
+
return stamped;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Escrows a recipient into every epoch it is not already a recipient of: for
|
|
42
|
+
* each such epoch the caller unwraps the epoch key with its own key-agreement
|
|
43
|
+
* key and re-wraps it to the incoming reader. Shared by {@link addRecipient}
|
|
44
|
+
* (whose whole job this is) and {@link replaceRecipient} (which does it in the
|
|
45
|
+
* same write as its rotation), so the two cannot drift.
|
|
46
|
+
*
|
|
47
|
+
* Each epoch's unwrap + re-wrap is independent of the others', so they run
|
|
48
|
+
* concurrently (order-preserving), like `initRecipients` and `removeRecipient`
|
|
49
|
+
* wrap their recipients.
|
|
50
|
+
*
|
|
51
|
+
* @param options {object}
|
|
52
|
+
* @param options.epochs {CollectionEncryptionEpoch[]} the descriptor's epochs
|
|
53
|
+
* @param options.recipient {RecipientPublicKey} the reader being escrowed
|
|
54
|
+
* @param options.owner {object} the caller's own key material
|
|
55
|
+
* @param options.owner.keyAgreementKey {IKeyAgreementKey} unwraps each epoch
|
|
56
|
+
* key for re-wrapping
|
|
57
|
+
* @param options.operation {string} the calling operation's name, as the error
|
|
58
|
+
* messages name it (`addRecipient` / `replaceRecipient`)
|
|
59
|
+
* @param options.reader {string} how those messages name the incoming reader
|
|
60
|
+
* (`new` / `incoming`)
|
|
61
|
+
* @returns {Promise<{ epochs: CollectionEncryptionEpoch[], changed: boolean }>}
|
|
62
|
+
* the epochs with the escrow wraps applied, and whether any epoch changed
|
|
63
|
+
*/
|
|
64
|
+
async function escrowIntoEpochs({ epochs, recipient, owner, operation, reader }) {
|
|
65
|
+
let changed = false;
|
|
66
|
+
const escrowed = await Promise.all(epochs.map(async (epoch) => {
|
|
67
|
+
// Already a recipient of this epoch? Leave it untouched (idempotent).
|
|
68
|
+
if (epoch.recipients.some(entry => entry.header.kid === recipient.id)) {
|
|
69
|
+
return epoch;
|
|
70
|
+
}
|
|
71
|
+
const ownEntry = epoch.recipients.find(entry => entry.header.kid === owner.keyAgreementKey.id);
|
|
72
|
+
if (!ownEntry) {
|
|
73
|
+
throw new ValidationError(`Cannot ${operation}: the caller is not a recipient of epoch ` +
|
|
74
|
+
`"${epoch.id}", so it cannot unwrap that epoch key to escrow it ` +
|
|
75
|
+
`to the ${reader} reader.`);
|
|
76
|
+
}
|
|
77
|
+
const epochSecret = await unwrapEpochSecret({
|
|
78
|
+
entry: ownEntry,
|
|
79
|
+
keyAgreementKey: owner.keyAgreementKey
|
|
80
|
+
});
|
|
81
|
+
if (!epochSecret) {
|
|
82
|
+
throw new ValidationError(`Cannot ${operation}: unwrapping epoch "${epoch.id}" with the ` +
|
|
83
|
+
"caller's key-agreement key failed.");
|
|
84
|
+
}
|
|
85
|
+
changed = true;
|
|
86
|
+
return {
|
|
87
|
+
...epoch,
|
|
88
|
+
recipients: [
|
|
89
|
+
...epoch.recipients,
|
|
90
|
+
await wrapEpochSecret({ epochSecret, recipient })
|
|
91
|
+
]
|
|
92
|
+
};
|
|
93
|
+
}));
|
|
94
|
+
return { epochs: escrowed, changed };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Wraps a freshly minted epoch key to each remaining recipient kid, building the
|
|
98
|
+
* epoch to append. The resolver may signal drop-this-kid by resolving `null`
|
|
99
|
+
* (e.g. a roster entry whose key material is no longer resolvable), so the
|
|
100
|
+
* rotation excludes that entry instead of throwing; the caller applies its own
|
|
101
|
+
* rule to an epoch that ends up with no recipients at all.
|
|
102
|
+
*
|
|
103
|
+
* @param options {object}
|
|
104
|
+
* @param options.epochId {string} the fresh epoch's id (its `did:key`)
|
|
105
|
+
* @param options.secret {Uint8Array} the fresh epoch's 32-byte secret
|
|
106
|
+
* @param options.remaining {Set<string>} the surviving recipients' kids
|
|
107
|
+
* @param options.resolveRecipientKey {function} resolves a kid to its public
|
|
108
|
+
* key-agreement key, or `null` to drop it
|
|
109
|
+
* @returns {Promise<CollectionEncryptionEpoch>} the fresh epoch
|
|
110
|
+
*/
|
|
111
|
+
async function rotateEpoch({ epochId, secret, remaining, resolveRecipientKey }) {
|
|
112
|
+
const wrapped = await Promise.all([...remaining].map(async (kid) => {
|
|
113
|
+
const recipient = await resolveRecipientKey(kid);
|
|
114
|
+
return recipient === null
|
|
115
|
+
? null
|
|
116
|
+
: wrapEpochSecret({ epochSecret: secret, recipient });
|
|
117
|
+
}));
|
|
118
|
+
return { id: epochId, recipients: wrapped.filter(entry => entry !== null) };
|
|
119
|
+
}
|
|
10
120
|
/**
|
|
11
121
|
* Initializes the first key epoch on a descriptor that has no epochs yet: mints
|
|
12
122
|
* a fresh epoch key, wraps it to each initial recipient, and writes `epochs:
|
|
@@ -33,9 +143,12 @@ const MAX_CAS_ATTEMPTS = 3;
|
|
|
33
143
|
* whose epoch key already exists (e.g. a per-user key being enrolled into
|
|
34
144
|
* its wrap-set roster). The `epochId` must be the key's did:key and `secret`
|
|
35
145
|
* its raw 32-byte private key, exactly what {@link mintEpoch} returns.
|
|
146
|
+
* @param [options.signEpochs] {EpochsSigner} signs the epoch configuration
|
|
147
|
+
* being written, stamping the descriptor's `epochsSig` beside its
|
|
148
|
+
* `epochsMac`
|
|
36
149
|
* @returns {Promise<CollectionEncryption>} the new descriptor
|
|
37
150
|
*/
|
|
38
|
-
export async function initRecipients({ collection, store, recipients, epoch: premintedEpoch }) {
|
|
151
|
+
export async function initRecipients({ collection, store, recipients, epoch: premintedEpoch, signEpochs }) {
|
|
39
152
|
if (recipients.length === 0) {
|
|
40
153
|
throw new ValidationError('initRecipients needs at least one recipient to wrap the epoch key to.');
|
|
41
154
|
}
|
|
@@ -46,31 +159,32 @@ export async function initRecipients({ collection, store, recipients, epoch: pre
|
|
|
46
159
|
};
|
|
47
160
|
return casUpdateDescriptor({
|
|
48
161
|
store: descriptorStoreFor({ collection, store }),
|
|
49
|
-
// A store whose descriptor starts absent initializes from a
|
|
50
|
-
// descriptor (the create-if-absent branch); a Collection
|
|
51
|
-
// descriptor always exists, so its adapter never reaches
|
|
52
|
-
|
|
162
|
+
// A store whose descriptor starts absent initializes from a versioned
|
|
163
|
+
// `edv` descriptor (the create-if-absent branch); a Collection
|
|
164
|
+
// Description's descriptor always exists, so its adapter never reaches
|
|
165
|
+
// the seed.
|
|
166
|
+
seed: { scheme: 'edv', version: EDV_SCHEME_VERSION },
|
|
53
167
|
mutate: async (descriptor) => {
|
|
54
168
|
if (descriptor.epochs && descriptor.epochs.length > 0) {
|
|
55
169
|
throw new ValidationError('This collection already has key epochs; use addRecipient to add a ' +
|
|
56
170
|
'reader instead of initRecipients.');
|
|
57
171
|
}
|
|
58
|
-
// Declaring the first epochs, so stamp scheme version
|
|
172
|
+
// Declaring the first epochs, so stamp the scheme version when the
|
|
59
173
|
// descriptor does not already carry one, and authenticate the epoch
|
|
60
174
|
// configuration with a MAC keyed from this first epoch's secret (computed
|
|
61
175
|
// over the exact descriptor being written, since a CAS retry re-reads the
|
|
62
176
|
// descriptor).
|
|
63
177
|
const next = {
|
|
64
178
|
...descriptor,
|
|
65
|
-
version: descriptor.version ??
|
|
179
|
+
version: descriptor.version ?? EDV_SCHEME_VERSION,
|
|
66
180
|
epochs: [epoch],
|
|
67
181
|
currentEpoch: epochId
|
|
68
182
|
};
|
|
69
|
-
|
|
183
|
+
return stampEpochsAuth({
|
|
70
184
|
descriptor: next,
|
|
71
|
-
epochSecret: secret
|
|
185
|
+
epochSecret: secret,
|
|
186
|
+
signEpochs
|
|
72
187
|
});
|
|
73
|
-
return { ...next, epochsMac };
|
|
74
188
|
}
|
|
75
189
|
});
|
|
76
190
|
}
|
|
@@ -89,8 +203,9 @@ export async function initRecipients({ collection, store, recipients, epoch: pre
|
|
|
89
203
|
* hosts the descriptor; exactly one of `collection` / `store`
|
|
90
204
|
* @param [options.store] {EncryptionDescriptorStore} an explicit descriptor store
|
|
91
205
|
* @param options.recipient {RecipientPublicKey} the new reader's public KAK
|
|
92
|
-
* @param options.owner {
|
|
93
|
-
*
|
|
206
|
+
* @param options.owner {object} the caller's own key material
|
|
207
|
+
* @param options.owner.keyAgreementKey {IKeyAgreementKey} unwraps each epoch
|
|
208
|
+
* key for re-wrapping to the new reader
|
|
94
209
|
* @returns {Promise<CollectionEncryption>} the new descriptor
|
|
95
210
|
*/
|
|
96
211
|
export async function addRecipient({ collection, store, recipient, owner }) {
|
|
@@ -102,37 +217,13 @@ export async function addRecipient({ collection, store, recipient, owner }) {
|
|
|
102
217
|
throw new ValidationError('Cannot addRecipient: this collection has no key epochs. Call ' +
|
|
103
218
|
'initRecipients first.');
|
|
104
219
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
113
|
-
const ownEntry = epoch.recipients.find(entry => entry.header.kid === owner.keyAgreementKey.id);
|
|
114
|
-
if (!ownEntry) {
|
|
115
|
-
throw new ValidationError(`Cannot addRecipient: the caller is not a recipient of epoch ` +
|
|
116
|
-
`"${epoch.id}", so it cannot unwrap that epoch key to escrow ` +
|
|
117
|
-
'it to the new reader.');
|
|
118
|
-
}
|
|
119
|
-
const secret = await unwrapEpochSecret({
|
|
120
|
-
entry: ownEntry,
|
|
121
|
-
keyAgreementKey: owner.keyAgreementKey
|
|
122
|
-
});
|
|
123
|
-
if (!secret) {
|
|
124
|
-
throw new ValidationError(`Cannot addRecipient: unwrapping epoch "${epoch.id}" with the ` +
|
|
125
|
-
"caller's key-agreement key failed.");
|
|
126
|
-
}
|
|
127
|
-
const wrapped = await wrapEpochSecret({
|
|
128
|
-
epochSecret: secret,
|
|
129
|
-
recipient
|
|
130
|
-
});
|
|
131
|
-
return {
|
|
132
|
-
...epoch,
|
|
133
|
-
recipients: [...epoch.recipients, wrapped]
|
|
134
|
-
};
|
|
135
|
-
}));
|
|
220
|
+
const { epochs: nextEpochs } = await escrowIntoEpochs({
|
|
221
|
+
epochs,
|
|
222
|
+
recipient,
|
|
223
|
+
owner,
|
|
224
|
+
operation: 'addRecipient',
|
|
225
|
+
reader: 'new'
|
|
226
|
+
});
|
|
136
227
|
return { ...descriptor, epochs: nextEpochs };
|
|
137
228
|
}
|
|
138
229
|
});
|
|
@@ -190,9 +281,12 @@ export async function addRecipient({ collection, store, recipient, owner }) {
|
|
|
190
281
|
* self-describing `did:key`. May resolve `null` to signal drop-this-kid:
|
|
191
282
|
* the rotation then excludes that entry from the fresh epoch instead of
|
|
192
283
|
* throwing (subject to the no-recipients-remaining guard).
|
|
284
|
+
* @param [options.signEpochs] {EpochsSigner} signs the rotated epoch
|
|
285
|
+
* configuration, stamping the descriptor's `epochsSig` beside its
|
|
286
|
+
* `epochsMac`
|
|
193
287
|
* @returns {Promise<CollectionEncryption>} the new descriptor
|
|
194
288
|
*/
|
|
195
|
-
export async function removeRecipient({ collection, store, space, recipientId, revoke, pull, resolveRecipientKey = defaultResolveRecipientKey }) {
|
|
289
|
+
export async function removeRecipient({ collection, store, space, recipientId, revoke, pull, resolveRecipientKey = defaultResolveRecipientKey, signEpochs }) {
|
|
196
290
|
const descriptorStore = descriptorStoreFor({ collection, store });
|
|
197
291
|
// Resolve the pull axis up front, before any rotation, so a malformed call
|
|
198
292
|
// fails before the descriptor is mutated.
|
|
@@ -240,22 +334,17 @@ export async function removeRecipient({ collection, store, space, recipientId, r
|
|
|
240
334
|
// signal drop-this-kid by resolving `null` (e.g. a roster entry whose
|
|
241
335
|
// key material is no longer resolvable), so the rotation excludes that
|
|
242
336
|
// entry instead of throwing.
|
|
243
|
-
const
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
})
|
|
249
|
-
|
|
250
|
-
if (newRecipients.length === 0) {
|
|
337
|
+
const newEpoch = await rotateEpoch({
|
|
338
|
+
epochId,
|
|
339
|
+
secret,
|
|
340
|
+
remaining,
|
|
341
|
+
resolveRecipientKey
|
|
342
|
+
});
|
|
343
|
+
if (newEpoch.recipients.length === 0) {
|
|
251
344
|
throw new ValidationError('Cannot removeRecipient: no recipients would remain after the ' +
|
|
252
345
|
'removal (resolveRecipientKey dropped every remaining entry, ' +
|
|
253
346
|
'and a collection with no readers cannot be rotated to).');
|
|
254
347
|
}
|
|
255
|
-
const newEpoch = {
|
|
256
|
-
id: epochId,
|
|
257
|
-
recipients: newRecipients
|
|
258
|
-
};
|
|
259
348
|
// Re-authenticate the epoch configuration under the NEW epoch's secret
|
|
260
349
|
// (the rotating caller just minted it), computed over the exact descriptor
|
|
261
350
|
// being written so a CAS retry re-MACs the re-read descriptor state.
|
|
@@ -264,11 +353,11 @@ export async function removeRecipient({ collection, store, space, recipientId, r
|
|
|
264
353
|
epochs: [...epochs, newEpoch],
|
|
265
354
|
currentEpoch: epochId
|
|
266
355
|
};
|
|
267
|
-
|
|
356
|
+
return stampEpochsAuth({
|
|
268
357
|
descriptor: next,
|
|
269
|
-
epochSecret: secret
|
|
358
|
+
epochSecret: secret,
|
|
359
|
+
signEpochs
|
|
270
360
|
});
|
|
271
|
-
return { ...next, epochsMac };
|
|
272
361
|
}
|
|
273
362
|
});
|
|
274
363
|
// 2. Pull axis: withdraw the reader's server-side access AFTER the rotation
|
|
@@ -313,9 +402,10 @@ export async function removeRecipient({ collection, store, space, recipientId, r
|
|
|
313
402
|
* dropped from the fresh epoch's roster
|
|
314
403
|
* @param options.recipient {RecipientPublicKey} the incoming reader's public
|
|
315
404
|
* key-agreement key, escrowed into every epoch and wrapped into the fresh one
|
|
316
|
-
* @param options.owner {
|
|
317
|
-
*
|
|
318
|
-
*
|
|
405
|
+
* @param options.owner {object} the caller's own key material
|
|
406
|
+
* @param options.owner.keyAgreementKey {IKeyAgreementKey} unwraps each epoch
|
|
407
|
+
* key for the escrow -- it must be a recipient of every epoch (a retiring
|
|
408
|
+
* key that was escrowed everywhere qualifies)
|
|
319
409
|
* @param [options.revoke] {IDelegatedZcap | IDelegatedZcap[]} the default
|
|
320
410
|
* pull axis, with `space`
|
|
321
411
|
* @param [options.pull] {function} a caller-supplied pull action; mutually
|
|
@@ -324,9 +414,12 @@ export async function removeRecipient({ collection, store, space, recipientId, r
|
|
|
324
414
|
* recipient's kid for the fresh epoch, `null` to drop it -- the
|
|
325
415
|
* {@link removeRecipient} contract (the incoming recipient never routes
|
|
326
416
|
* through it)
|
|
417
|
+
* @param [options.signEpochs] {EpochsSigner} signs the rotated epoch
|
|
418
|
+
* configuration, stamping the descriptor's `epochsSig` beside its
|
|
419
|
+
* `epochsMac` (an escrow-only write leaves both untouched)
|
|
327
420
|
* @returns {Promise<CollectionEncryption>} the new descriptor
|
|
328
421
|
*/
|
|
329
|
-
export async function replaceRecipient({ collection, store, space, retire, recipient, owner, revoke, pull, resolveRecipientKey = defaultResolveRecipientKey }) {
|
|
422
|
+
export async function replaceRecipient({ collection, store, space, retire, recipient, owner, revoke, pull, resolveRecipientKey = defaultResolveRecipientKey, signEpochs }) {
|
|
330
423
|
const descriptorStore = descriptorStoreFor({ collection, store });
|
|
331
424
|
const pullAxis = resolvePullAxis({ space, revoke, pull });
|
|
332
425
|
const retiring = Array.isArray(retire) ? retire : [retire];
|
|
@@ -346,35 +439,14 @@ export async function replaceRecipient({ collection, store, space, retire, recip
|
|
|
346
439
|
throw new ValidationError('Cannot replaceRecipient: this collection has no key epochs.');
|
|
347
440
|
}
|
|
348
441
|
// Escrow the incoming recipient into every epoch it is missing from
|
|
349
|
-
// (addRecipient's
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
throw new ValidationError(`Cannot replaceRecipient: the caller is not a recipient of ` +
|
|
358
|
-
`epoch "${epoch.id}", so it cannot unwrap that epoch key to ` +
|
|
359
|
-
'escrow it to the incoming reader.');
|
|
360
|
-
}
|
|
361
|
-
const epochSecret = await unwrapEpochSecret({
|
|
362
|
-
entry: ownEntry,
|
|
363
|
-
keyAgreementKey: owner.keyAgreementKey
|
|
364
|
-
});
|
|
365
|
-
if (!epochSecret) {
|
|
366
|
-
throw new ValidationError(`Cannot replaceRecipient: unwrapping epoch "${epoch.id}" with ` +
|
|
367
|
-
"the caller's key-agreement key failed.");
|
|
368
|
-
}
|
|
369
|
-
escrowChanged = true;
|
|
370
|
-
return {
|
|
371
|
-
...epoch,
|
|
372
|
-
recipients: [
|
|
373
|
-
...epoch.recipients,
|
|
374
|
-
await wrapEpochSecret({ epochSecret, recipient })
|
|
375
|
-
]
|
|
376
|
-
};
|
|
377
|
-
}));
|
|
442
|
+
// (addRecipient's escrow, so the whole replacement is one write).
|
|
443
|
+
const { epochs: escrowed, changed: escrowChanged } = await escrowIntoEpochs({
|
|
444
|
+
epochs,
|
|
445
|
+
recipient,
|
|
446
|
+
owner,
|
|
447
|
+
operation: 'replaceRecipient',
|
|
448
|
+
reader: 'incoming'
|
|
449
|
+
});
|
|
378
450
|
// Rotate only when a retiring kid is still current (the removeRecipient
|
|
379
451
|
// no-op rule, so a naive re-run appends zero redundant epochs).
|
|
380
452
|
const currentEpoch = escrowed.find(epoch => epoch.id === descriptor.currentEpoch) ??
|
|
@@ -390,32 +462,25 @@ export async function replaceRecipient({ collection, store, space, retire, recip
|
|
|
390
462
|
}
|
|
391
463
|
}
|
|
392
464
|
// The escrow above already placed the incoming recipient in the current
|
|
393
|
-
// epoch, so it is in `remaining`;
|
|
394
|
-
// hand) and route only the other survivors through the
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
: wrapEpochSecret({ epochSecret: secret, recipient: resolved });
|
|
403
|
-
}));
|
|
404
|
-
const newRecipients = wrapped.filter(entry => entry !== null);
|
|
405
|
-
const newEpoch = {
|
|
406
|
-
id: epochId,
|
|
407
|
-
recipients: newRecipients
|
|
408
|
-
};
|
|
465
|
+
// epoch, so it is in `remaining`; short-circuit the resolver for it (its
|
|
466
|
+
// public key is in hand) and route only the other survivors through the
|
|
467
|
+
// caller's resolver.
|
|
468
|
+
const newEpoch = await rotateEpoch({
|
|
469
|
+
epochId,
|
|
470
|
+
secret,
|
|
471
|
+
remaining,
|
|
472
|
+
resolveRecipientKey: async (kid) => kid === recipient.id ? recipient : resolveRecipientKey(kid)
|
|
473
|
+
});
|
|
409
474
|
const next = {
|
|
410
475
|
...descriptor,
|
|
411
476
|
epochs: [...escrowed, newEpoch],
|
|
412
477
|
currentEpoch: epochId
|
|
413
478
|
};
|
|
414
|
-
|
|
479
|
+
return stampEpochsAuth({
|
|
415
480
|
descriptor: next,
|
|
416
|
-
epochSecret: secret
|
|
481
|
+
epochSecret: secret,
|
|
482
|
+
signEpochs
|
|
417
483
|
});
|
|
418
|
-
return { ...next, epochsMac };
|
|
419
484
|
}
|
|
420
485
|
});
|
|
421
486
|
await pullAxis();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipients.js","sourceRoot":"","sources":["../../src/edv/recipients.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recipients.js","sourceRoot":"","sources":["../../src/edv/recipients.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -31,13 +31,13 @@ export declare class WasError extends Error {
|
|
|
31
31
|
* means "not visible to you" rather than strictly "does not exist".
|
|
32
32
|
*/
|
|
33
33
|
export declare class NotFoundError extends WasError {
|
|
34
|
-
|
|
34
|
+
name: string;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* The request was malformed or rejected as invalid (HTTP 400).
|
|
38
38
|
*/
|
|
39
39
|
export declare class ValidationError extends WasError {
|
|
40
|
-
|
|
40
|
+
name: string;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* Authorization headers were missing or could not be verified (HTTP 401), or
|
|
@@ -45,14 +45,14 @@ export declare class ValidationError extends WasError {
|
|
|
45
45
|
* 403).
|
|
46
46
|
*/
|
|
47
47
|
export declare class AuthRequiredError extends WasError {
|
|
48
|
-
|
|
48
|
+
name: string;
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* The endpoint exists in the spec but is not yet implemented by the server
|
|
52
52
|
* (HTTP 501).
|
|
53
53
|
*/
|
|
54
54
|
export declare class NotImplementedError extends WasError {
|
|
55
|
-
|
|
55
|
+
name: string;
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
58
|
* A client-supplied id or backend conflicts with existing state (HTTP 409):
|
|
@@ -61,7 +61,7 @@ export declare class NotImplementedError extends WasError {
|
|
|
61
61
|
* the space's available list). The specific kind is on the `type` URI.
|
|
62
62
|
*/
|
|
63
63
|
export declare class ConflictError extends WasError {
|
|
64
|
-
|
|
64
|
+
name: string;
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
67
|
* A conditional write's precondition evaluated false (HTTP 412): an `ifMatch`
|
|
@@ -72,7 +72,7 @@ export declare class ConflictError extends WasError {
|
|
|
72
72
|
* conflict family.
|
|
73
73
|
*/
|
|
74
74
|
export declare class PreconditionFailedError extends WasError {
|
|
75
|
-
|
|
75
|
+
name: string;
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
78
|
* A single upload exceeded the target backend's `maxUploadBytes` constraint
|
|
@@ -80,7 +80,7 @@ export declare class PreconditionFailedError extends WasError {
|
|
|
80
80
|
* upload may still succeed.
|
|
81
81
|
*/
|
|
82
82
|
export declare class PayloadTooLargeError extends WasError {
|
|
83
|
-
|
|
83
|
+
name: string;
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
86
|
* A write was rejected because the target backend's storage quota is exhausted
|
|
@@ -88,7 +88,7 @@ export declare class PayloadTooLargeError extends WasError {
|
|
|
88
88
|
* fault.
|
|
89
89
|
*/
|
|
90
90
|
export declare class QuotaExceededError extends WasError {
|
|
91
|
-
|
|
91
|
+
name: string;
|
|
92
92
|
}
|
|
93
93
|
/**
|
|
94
94
|
* A client-side, fail-closed encryption error: a collection is declared
|
|
@@ -100,7 +100,7 @@ export declare class QuotaExceededError extends WasError {
|
|
|
100
100
|
* per-handle `encryption` override). Never silently downgrades to plaintext.
|
|
101
101
|
*/
|
|
102
102
|
export declare class EncryptionError extends WasError {
|
|
103
|
-
|
|
103
|
+
name: string;
|
|
104
104
|
}
|
|
105
105
|
/**
|
|
106
106
|
* A fail-closed key-epoch error: a reader could not unwrap any epoch key it
|
|
@@ -117,7 +117,7 @@ export declare class EncryptionError extends WasError {
|
|
|
117
117
|
* already decrypt.
|
|
118
118
|
*/
|
|
119
119
|
export declare class KeyUnwrapError extends EncryptionError {
|
|
120
|
-
|
|
120
|
+
name: string;
|
|
121
121
|
}
|
|
122
122
|
/**
|
|
123
123
|
* A fail-closed integrity error: a stored EDV envelope this reader DOES hold a
|
|
@@ -131,7 +131,7 @@ export declare class KeyUnwrapError extends EncryptionError {
|
|
|
131
131
|
* problem. Raised client-side before/independent of any HTTP status.
|
|
132
132
|
*/
|
|
133
133
|
export declare class IntegrityError extends EncryptionError {
|
|
134
|
-
|
|
134
|
+
name: string;
|
|
135
135
|
}
|
|
136
136
|
/**
|
|
137
137
|
* The replication-port signal for a rejected conditional write (HTTP 412): an
|
|
@@ -159,7 +159,24 @@ export declare class WasSyncNotFoundError extends NotFoundError {
|
|
|
159
159
|
* The server encountered an internal fault (HTTP 5xx).
|
|
160
160
|
*/
|
|
161
161
|
export declare class WasServerError extends WasError {
|
|
162
|
-
|
|
162
|
+
name: string;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Thrown on decrypt when a stored envelope names JWE recipient (`kid`) ids
|
|
166
|
+
* that match none of this reader's candidate keys: neither the key-agreement
|
|
167
|
+
* key (single-key collection) nor any key epoch resolved from the Collection
|
|
168
|
+
* Description. It signals that the caller's cached descriptor may be stale and
|
|
169
|
+
* should be re-read before retrying: an epoch rotation emits no change-feed
|
|
170
|
+
* entry, so a codec built from a pre-rotation descriptor meets envelopes
|
|
171
|
+
* stamped with a newer epoch it has never seen. It also fires on a single-key
|
|
172
|
+
* codec that meets an envelope encrypted to a different key-agreement key
|
|
173
|
+
* entirely.
|
|
174
|
+
*/
|
|
175
|
+
export declare class UnknownEpochError extends Error {
|
|
176
|
+
constructor({ collectionId, kids }: {
|
|
177
|
+
collectionId: string;
|
|
178
|
+
kids: string[];
|
|
179
|
+
});
|
|
163
180
|
}
|
|
164
181
|
/**
|
|
165
182
|
* Reads the HTTP status from a raw ky/ezcap error, checking both the flat
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEP,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;CAU3D;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,QAAQ;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEP,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;CAU3D;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IAChC,IAAI,SAAkB;CAChC;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAClC,IAAI,SAAoB;CAClC;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IACpC,IAAI,SAAsB;CACpC;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;IACtC,IAAI,SAAwB;CACtC;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IAChC,IAAI,SAAkB;CAChC;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAwB,SAAQ,QAAQ;IAC1C,IAAI,SAA4B;CAC1C;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IACvC,IAAI,SAAyB;CACvC;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IACrC,IAAI,SAAuB;CACrC;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAClC,IAAI,SAAoB;CAClC;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACxC,IAAI,SAAmB;CACjC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACxC,IAAI,SAAmB;CACjC;AAED;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,SAAQ,uBAAuB;gBAE7D,OAAO,SAA+C,EACtD,OAAO,GAAE,eAAoB;CAKhC;AAED;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;gBAEnD,OAAO,SAA4B,EACnC,OAAO,GAAE,eAAoB;CAKhC;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IACjC,IAAI,SAAmB;CACjC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,EACV,YAAY,EACZ,IAAI,EACL,EAAE;QACD,YAAY,EAAE,MAAM,CAAA;QACpB,IAAI,EAAE,MAAM,EAAE,CAAA;KACf;CAUF;AA4DD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CA2D/C"}
|