agent-protocols 0.11.0 → 0.11.1
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 +72 -100
- package/dist/mail-client.d.ts +1 -1
- package/dist/mail-client.d.ts.map +1 -1
- package/dist/mail-client.js +3 -3
- package/dist/mail-client.js.map +1 -1
- package/dist/mail-schema.d.ts +57 -55
- package/dist/mail-schema.d.ts.map +1 -1
- package/dist/mail-schema.js +66 -59
- package/dist/mail-schema.js.map +1 -1
- package/dist/mail.d.ts +37 -25
- package/dist/mail.d.ts.map +1 -1
- package/dist/mail.js +154 -89
- package/dist/mail.js.map +1 -1
- package/package.json +1 -1
package/dist/mail.js
CHANGED
|
@@ -156,54 +156,79 @@ export function validateMailSenderCard(card, owner, now = Date.now()) {
|
|
|
156
156
|
requireMail(c.event.payload.routes.length > 0, "mailbox_unavailable", "mailbox closed");
|
|
157
157
|
requireMail(now < c.event.payload.expires_at, "stale_card", "card expired");
|
|
158
158
|
}
|
|
159
|
-
/**
|
|
160
|
-
export function
|
|
161
|
-
validateMailSchema(
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
const p = l.event.payload;
|
|
165
|
-
lifetime(l.event.created_at, p.expires_at);
|
|
159
|
+
/** Validate immutable plaintext; sender authentication comes from its signed packet. */
|
|
160
|
+
export function validateMailMessage(message) {
|
|
161
|
+
validateMailSchema(message, "messagePayload");
|
|
162
|
+
const p = message;
|
|
163
|
+
lifetime(p.created_at, p.expires_at);
|
|
166
164
|
for (const part of p.parts) {
|
|
167
165
|
decodeMailBytes(part.data);
|
|
168
166
|
if (part.media_type.startsWith("text/"))
|
|
169
167
|
mailPartText(part);
|
|
170
168
|
}
|
|
171
169
|
if (p.reply_card !== undefined)
|
|
172
|
-
validateMailboxCard(p.reply_card,
|
|
170
|
+
validateMailboxCard(p.reply_card, p.from);
|
|
173
171
|
}
|
|
174
172
|
export function mailboxPublishEvent(actor, createdAt, nonce, payload) {
|
|
175
173
|
return createEvent(MAIL_PROTOCOL, "mailbox.publish", actor, createdAt, nonce, clone(payload));
|
|
176
174
|
}
|
|
177
|
-
export function
|
|
178
|
-
return
|
|
175
|
+
export function newMailMessageId() {
|
|
176
|
+
return base64UrlEncode(nacl.randomBytes(32));
|
|
177
|
+
}
|
|
178
|
+
export function createMailMessage(actor, createdAt, payload) {
|
|
179
|
+
requireMail(payload &&
|
|
180
|
+
!["message_id", "from", "created_at"].some((k) => Object.hasOwn(payload, k)), "invalid_event", "message content overrides identity fields");
|
|
181
|
+
const message = {
|
|
182
|
+
...clone(payload),
|
|
183
|
+
message_id: newMailMessageId(),
|
|
184
|
+
from: actor,
|
|
185
|
+
created_at: createdAt,
|
|
186
|
+
};
|
|
187
|
+
validateMailMessage(message);
|
|
188
|
+
return message;
|
|
179
189
|
}
|
|
180
|
-
/** Bind a reply to a known parent: participants, parent letter ID, and thread. */
|
|
181
190
|
export function validateMailReply(reply, parent) {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
requireMail(reply.
|
|
185
|
-
reply.
|
|
186
|
-
reply.
|
|
187
|
-
reply.
|
|
188
|
-
}
|
|
189
|
-
/** Validate a packet and return its canonical bytes, computed once for ID and size checks. */
|
|
191
|
+
validateMailMessage(reply);
|
|
192
|
+
validateMailMessage(parent);
|
|
193
|
+
requireMail(reply.in_reply_to === parent.message_id &&
|
|
194
|
+
reply.thread_id === parent.thread_id &&
|
|
195
|
+
reply.from === parent.to &&
|
|
196
|
+
reply.to === parent.from, "invalid_event", "reply binding mismatch");
|
|
197
|
+
}
|
|
190
198
|
function packetBytes(packet, expectedId) {
|
|
191
|
-
validateMailSchema(packet, "
|
|
192
|
-
const
|
|
199
|
+
validateMailSchema(packet, "packetEnvelope");
|
|
200
|
+
const signed = packet;
|
|
201
|
+
verifyEnvelope(signed);
|
|
202
|
+
const e = signed.event, p = e.payload;
|
|
193
203
|
decodeMailBytes(p.enc, 32);
|
|
194
204
|
const ct = decodeMailBytes(p.ciphertext);
|
|
195
205
|
requireMail(ct.length >= 1040 && ct.length % 1024 === 16, "invalid_packet", "invalid ciphertext length");
|
|
196
|
-
|
|
197
|
-
|
|
206
|
+
requireMail(e.created_at < p.header.expires_at &&
|
|
207
|
+
p.header.expires_at - e.created_at <=
|
|
208
|
+
MAIL_MAX_TTL_MS + MAIL_FUTURE_SKEW_MS, "invalid_packet", "invalid packet lifetime");
|
|
209
|
+
const bytes = mailCanonicalBytes(signed);
|
|
210
|
+
requireMail(bytes.length <= MAIL_MAX_PACKET_BYTES, "payload_too_large", "packet exceeds limit");
|
|
198
211
|
if (expectedId !== undefined)
|
|
199
|
-
requireMail(
|
|
212
|
+
requireMail(signed.hash === expectedId, "invalid_packet", "packet ID mismatch");
|
|
200
213
|
return bytes;
|
|
201
214
|
}
|
|
202
215
|
export function validateMailPacket(packet, expectedId) {
|
|
203
216
|
packetBytes(packet, expectedId);
|
|
204
217
|
}
|
|
205
218
|
export function mailPacketId(packet) {
|
|
206
|
-
|
|
219
|
+
packetBytes(packet);
|
|
220
|
+
return packet.hash;
|
|
221
|
+
}
|
|
222
|
+
/** HPKE AAD: the packet's five metadata fields and header, from the verified outer event. */
|
|
223
|
+
export function mailPacketAad(event) {
|
|
224
|
+
return mailCanonicalBytes({
|
|
225
|
+
protocol: event.protocol,
|
|
226
|
+
type: event.type,
|
|
227
|
+
actor: event.actor,
|
|
228
|
+
created_at: event.created_at,
|
|
229
|
+
nonce: event.nonce,
|
|
230
|
+
header: event.payload.header,
|
|
231
|
+
});
|
|
207
232
|
}
|
|
208
233
|
export function frameMailBytes(bytes) {
|
|
209
234
|
requireMail(bytes.length > 0 && bytes.length <= MAIL_MAX_PACKET_BYTES, "invalid_packet", "invalid frame input length");
|
|
@@ -212,7 +237,7 @@ export function frameMailBytes(bytes) {
|
|
|
212
237
|
frame.set(bytes, 4);
|
|
213
238
|
return frame;
|
|
214
239
|
}
|
|
215
|
-
export function
|
|
240
|
+
export function unframeMailMessage(frame) {
|
|
216
241
|
requireMail(frame.length >= 1024 &&
|
|
217
242
|
frame.length <= MAIL_MAX_PACKET_BYTES &&
|
|
218
243
|
frame.length % 1024 === 0, "invalid_packet", "invalid frame length");
|
|
@@ -228,10 +253,10 @@ export function unframeMailLetter(frame) {
|
|
|
228
253
|
catch {
|
|
229
254
|
throw protocolError("invalid_packet", "invalid UTF-8 frame");
|
|
230
255
|
}
|
|
231
|
-
const
|
|
232
|
-
requireMail(canonicalize(
|
|
233
|
-
|
|
234
|
-
return
|
|
256
|
+
const message = parseStrictJson(text);
|
|
257
|
+
requireMail(canonicalize(message) === text, "invalid_packet", "noncanonical message JSON");
|
|
258
|
+
validateMailMessage(message);
|
|
259
|
+
return message;
|
|
235
260
|
}
|
|
236
261
|
const hpke = () => new CipherSuite({
|
|
237
262
|
kem: new DhkemX25519HkdfSha256(),
|
|
@@ -267,28 +292,27 @@ export class MailEncryptionKey {
|
|
|
267
292
|
}
|
|
268
293
|
}
|
|
269
294
|
/** Stateless encryption with fresh HPKE randomness. Pin the card with MailCardCache first. */
|
|
270
|
-
export async function sealMailPacket(
|
|
271
|
-
|
|
295
|
+
export async function sealMailPacket(message, card, signer, nonce, now = Date.now()) {
|
|
296
|
+
message = clone(message);
|
|
272
297
|
card = clone(card);
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
298
|
+
validateMailMessage(message);
|
|
299
|
+
requireMail(message.from === signer.agentId(), "invalid_actor", "message sender differs from signer");
|
|
300
|
+
validateMailSenderCard(card, message.to, now);
|
|
301
|
+
requireMail(message.created_at <= now + MAIL_FUTURE_SKEW_MS && now < message.expires_at, "packet_expired", "message expired or future-dated");
|
|
277
302
|
const c = card.event.payload;
|
|
278
|
-
requireMail(
|
|
303
|
+
requireMail(message.expires_at <= c.receive_until, "invalid_packet", "message exceeds receive_until");
|
|
304
|
+
const plaintext = frameMailBytes(mailCanonicalBytes(message));
|
|
279
305
|
const header = {
|
|
280
|
-
protocol: MAIL_PROTOCOL,
|
|
281
306
|
mailbox_id: c.mailbox_id,
|
|
282
307
|
card_hash: card.hash,
|
|
283
|
-
expires_at:
|
|
308
|
+
expires_at: message.expires_at,
|
|
284
309
|
};
|
|
285
|
-
const
|
|
286
|
-
// Check base64/JSON overhead before allocating an HPKE context.
|
|
287
|
-
const estimate = {
|
|
310
|
+
const event = createEvent(MAIL_PROTOCOL, "mail.submit", signer.agentId(), now, nonce, {
|
|
288
311
|
header,
|
|
289
312
|
enc: base64UrlEncode(new Uint8Array(32)),
|
|
290
313
|
ciphertext: base64UrlEncode(new Uint8Array(plaintext.length + 16)),
|
|
291
|
-
};
|
|
314
|
+
});
|
|
315
|
+
const estimate = { event, hash: "A".repeat(43), signature: "A".repeat(86) };
|
|
292
316
|
requireMail(mailCanonicalBytes(estimate).length <= c.max_packet_bytes, "payload_too_large", "packet exceeds card limit");
|
|
293
317
|
const suite = hpke();
|
|
294
318
|
const sender = await suite.createSenderContext({
|
|
@@ -296,18 +320,16 @@ export async function sealMailPacket(letter, card, now = Date.now()) {
|
|
|
296
320
|
info: INFO,
|
|
297
321
|
});
|
|
298
322
|
try {
|
|
299
|
-
const ct = await sender.seal(plaintext,
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
ciphertext: base64UrlEncode(new Uint8Array(ct)),
|
|
304
|
-
};
|
|
323
|
+
const ct = await sender.seal(plaintext, mailPacketAad(event));
|
|
324
|
+
event.payload.enc = base64UrlEncode(new Uint8Array(sender.enc));
|
|
325
|
+
event.payload.ciphertext = base64UrlEncode(new Uint8Array(ct));
|
|
326
|
+
return signer.signEvent(event);
|
|
305
327
|
}
|
|
306
328
|
finally {
|
|
307
329
|
plaintext.fill(0);
|
|
308
|
-
}
|
|
330
|
+
}
|
|
309
331
|
}
|
|
310
|
-
/** Verify/decrypt a queued
|
|
332
|
+
/** Verify/decrypt a queued packet; expiration of new acceptance is checked by MailInbox. */
|
|
311
333
|
export async function openMailPacket(packet, card, key, owner, now = Date.now(), expectedId) {
|
|
312
334
|
packet = clone(packet);
|
|
313
335
|
card = clone(card);
|
|
@@ -318,7 +340,8 @@ export async function openMailPacket(packet, card, key, owner, now = Date.now(),
|
|
|
318
340
|
}
|
|
319
341
|
/** Open with a card that was already verified for `owner` (the keyring verifies at `add`). */
|
|
320
342
|
async function openVerified(packet, bytes, card, key, owner, now) {
|
|
321
|
-
|
|
343
|
+
requireMail(packet.event.created_at <= now + MAIL_FUTURE_SKEW_MS, "timestamp_out_of_window", "future packet");
|
|
344
|
+
const c = card.event.payload, h = packet.event.payload.header;
|
|
322
345
|
requireMail(h.card_hash === card.hash && h.mailbox_id === c.mailbox_id, "invalid_packet", "card/header binding mismatch");
|
|
323
346
|
requireMail(bytes.length <= c.max_packet_bytes, "payload_too_large", "packet exceeds card limit");
|
|
324
347
|
requireMail(h.expires_at <= c.receive_until, "invalid_packet", "packet exceeds receive_until");
|
|
@@ -329,10 +352,10 @@ async function openVerified(packet, bytes, card, key, owner, now) {
|
|
|
329
352
|
const suite = hpke();
|
|
330
353
|
const ctx = await suite.createRecipientContext({
|
|
331
354
|
recipientKey: await suite.kem.deserializePrivateKey(secret),
|
|
332
|
-
enc: decodeMailBytes(packet.enc, 32),
|
|
355
|
+
enc: decodeMailBytes(packet.event.payload.enc, 32),
|
|
333
356
|
info: INFO,
|
|
334
357
|
});
|
|
335
|
-
plaintext = new Uint8Array(await ctx.open(decodeMailBytes(packet.ciphertext),
|
|
358
|
+
plaintext = new Uint8Array(await ctx.open(decodeMailBytes(packet.event.payload.ciphertext), mailPacketAad(packet.event)));
|
|
336
359
|
}
|
|
337
360
|
catch {
|
|
338
361
|
throw protocolError("invalid_packet", "HPKE opening failed");
|
|
@@ -341,11 +364,12 @@ async function openVerified(packet, bytes, card, key, owner, now) {
|
|
|
341
364
|
secret.fill(0);
|
|
342
365
|
}
|
|
343
366
|
try {
|
|
344
|
-
const
|
|
345
|
-
requireMail(
|
|
346
|
-
requireMail(
|
|
347
|
-
requireMail(
|
|
348
|
-
|
|
367
|
+
const message = unframeMailMessage(plaintext);
|
|
368
|
+
requireMail(message.from === packet.event.actor && message.to === owner, "invalid_packet", "message recipient mismatch");
|
|
369
|
+
requireMail(message.expires_at === h.expires_at, "invalid_packet", "message/header expiration mismatch");
|
|
370
|
+
requireMail(message.created_at <=
|
|
371
|
+
Math.min(now, packet.event.created_at) + MAIL_FUTURE_SKEW_MS, "timestamp_out_of_window", "future message");
|
|
372
|
+
return message;
|
|
349
373
|
}
|
|
350
374
|
finally {
|
|
351
375
|
plaintext.fill(0);
|
|
@@ -394,8 +418,9 @@ export class MailCardCache {
|
|
|
394
418
|
if (now >= pin.event.created_at + MAIL_MAX_TTL_MS + MAIL_FUTURE_SKEW_MS)
|
|
395
419
|
this.pins.delete(id);
|
|
396
420
|
}
|
|
397
|
-
async seal(
|
|
398
|
-
|
|
421
|
+
async seal(message, card, signer, nonce, now = Date.now()) {
|
|
422
|
+
validateMailMessage(message);
|
|
423
|
+
return sealMailPacket(message, this.observe(card, message.to, now), signer, nonce, now);
|
|
399
424
|
}
|
|
400
425
|
}
|
|
401
426
|
/** Retained verified cards and their secrets, looked up by card hash until receive_until. */
|
|
@@ -445,52 +470,70 @@ export class MailKeyring {
|
|
|
445
470
|
async open(packet, now = Date.now(), expectedId) {
|
|
446
471
|
packet = clone(packet);
|
|
447
472
|
safeTime(now);
|
|
448
|
-
|
|
449
|
-
|
|
473
|
+
return this.openChecked(packet, packetBytes(packet, expectedId), now);
|
|
474
|
+
}
|
|
475
|
+
/** @internal Open a packet already checked by `packetBytes`; used by `MailInbox`. */
|
|
476
|
+
openChecked(packet, bytes, now) {
|
|
477
|
+
const x = this.entries.get(packet.event.payload.header.card_hash);
|
|
450
478
|
requireMail(x, "invalid_packet", "unknown retained card");
|
|
451
479
|
return openVerified(packet, bytes, x.card, x.key, this.owner, now);
|
|
452
480
|
}
|
|
453
481
|
}
|
|
454
|
-
/**
|
|
455
|
-
* Cross-route letter deduplication. The application stores accepted letters;
|
|
456
|
-
* persist the snapshot with them before deleting relay copies or acting.
|
|
457
|
-
*/
|
|
458
482
|
export class MailInbox {
|
|
459
483
|
keyring;
|
|
460
484
|
accepted = new Map();
|
|
485
|
+
blocked = new Set();
|
|
461
486
|
constructor(keyring, snapshot) {
|
|
462
487
|
this.keyring = keyring;
|
|
463
488
|
if (snapshot) {
|
|
464
489
|
requireMail(snapshot.version === 1 && snapshot.owner === keyring.owner, "invalid_request");
|
|
465
|
-
for (const [id, expires] of snapshot.accepted)
|
|
466
|
-
this.accepted.set(id, expires);
|
|
490
|
+
for (const [id, expires, digest] of snapshot.accepted)
|
|
491
|
+
this.accepted.set(id, { expires, digest });
|
|
492
|
+
for (const sender of snapshot.blocked_senders)
|
|
493
|
+
this.setSenderBlocked(sender, true);
|
|
467
494
|
}
|
|
468
495
|
}
|
|
496
|
+
setSenderBlocked(sender, blocked = true) {
|
|
497
|
+
validateAgentId(sender);
|
|
498
|
+
requireMail(typeof blocked === "boolean", "invalid_request");
|
|
499
|
+
if (blocked)
|
|
500
|
+
this.blocked.add(sender);
|
|
501
|
+
else
|
|
502
|
+
this.blocked.delete(sender);
|
|
503
|
+
}
|
|
469
504
|
snapshot() {
|
|
470
505
|
return {
|
|
471
506
|
version: 1,
|
|
472
507
|
owner: this.keyring.owner,
|
|
473
|
-
accepted: [...this.accepted],
|
|
508
|
+
accepted: [...this.accepted].map(([k, v]) => [k, v.expires, v.digest]),
|
|
509
|
+
blocked_senders: [...this.blocked],
|
|
474
510
|
};
|
|
475
511
|
}
|
|
476
|
-
has(
|
|
477
|
-
return this.accepted.has(
|
|
512
|
+
has(sender, messageId) {
|
|
513
|
+
return this.accepted.has(sender + "/" + messageId);
|
|
478
514
|
}
|
|
515
|
+
/** Verify the packet once, apply sender policy before decryption, then deduplicate the message. */
|
|
479
516
|
async accept(packet, now = Date.now(), expectedId) {
|
|
480
|
-
|
|
517
|
+
packet = clone(packet);
|
|
518
|
+
safeTime(now);
|
|
519
|
+
const bytes = packetBytes(packet, expectedId);
|
|
520
|
+
requireMail(!this.blocked.has(packet.event.actor), "permission_denied", "sender not admitted");
|
|
521
|
+
const message = await this.keyring.openChecked(packet, bytes, now);
|
|
522
|
+
const key = message.from + "/" + message.message_id, digest = base64UrlEncode(sha3_256(mailCanonicalBytes(message))), previous = this.accepted.get(key);
|
|
481
523
|
// No await between lookup and commit: concurrent decryptions cannot both accept.
|
|
482
|
-
if (
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
524
|
+
if (previous) {
|
|
525
|
+
requireMail(previous.digest === digest, "invalid_event", "message ID reused for different content");
|
|
526
|
+
return { kind: "duplicate", message };
|
|
527
|
+
}
|
|
528
|
+
requireMail(now < message.expires_at, "packet_expired", "expired new message");
|
|
529
|
+
this.accepted.set(key, { expires: message.expires_at, digest });
|
|
530
|
+
return { kind: "accepted", message };
|
|
487
531
|
}
|
|
488
|
-
/** Forget letters whose signed expiration has passed; they can no longer be newly accepted. */
|
|
489
532
|
prune(now = Date.now()) {
|
|
490
533
|
safeTime(now);
|
|
491
|
-
for (const [
|
|
492
|
-
if (now >= expires)
|
|
493
|
-
this.accepted.delete(
|
|
534
|
+
for (const [k, v] of this.accepted)
|
|
535
|
+
if (now >= v.expires)
|
|
536
|
+
this.accepted.delete(k);
|
|
494
537
|
}
|
|
495
538
|
}
|
|
496
539
|
export function validateMailDiscovery(value, service) {
|
|
@@ -529,14 +572,15 @@ export function validateMailDeliveryResult(value, packet) {
|
|
|
529
572
|
const r = value;
|
|
530
573
|
if (packet !== undefined)
|
|
531
574
|
requireMail(r.packet_id === mailPacketId(packet) &&
|
|
532
|
-
r.accepted_at < packet.header.expires_at, "invalid_response", "delivery result mismatch");
|
|
575
|
+
r.accepted_at < packet.event.payload.header.expires_at, "invalid_response", "delivery result mismatch");
|
|
533
576
|
}
|
|
534
577
|
export function validateMailPacketRecord(value, mailboxId) {
|
|
535
578
|
validateMailSchema(value, "packetRecord");
|
|
536
579
|
const r = value;
|
|
537
580
|
validateMailPacket(r.packet, r.packet_id);
|
|
538
|
-
requireMail(r.accepted_at < r.packet.header.expires_at &&
|
|
539
|
-
(mailboxId === undefined ||
|
|
581
|
+
requireMail(r.accepted_at < r.packet.event.payload.header.expires_at &&
|
|
582
|
+
(mailboxId === undefined ||
|
|
583
|
+
r.packet.event.payload.header.mailbox_id === mailboxId), "invalid_response", "packet record mismatch");
|
|
540
584
|
}
|
|
541
585
|
export function validateMailPacketList(value, mailboxId, limit = 100) {
|
|
542
586
|
validateMailSchema(value, "packetList");
|
|
@@ -582,6 +626,7 @@ export class MailRelayStore {
|
|
|
582
626
|
bytes: 0,
|
|
583
627
|
packets: new Map(),
|
|
584
628
|
tombstones: new Map(),
|
|
629
|
+
blockedSenders: new Set(m.blocked_senders),
|
|
585
630
|
};
|
|
586
631
|
for (const record of m.packets) {
|
|
587
632
|
const size = mailCanonicalBytes(record.packet).length;
|
|
@@ -604,6 +649,7 @@ export class MailRelayStore {
|
|
|
604
649
|
mailboxes: [...this.boxes.values()].map((b) => ({
|
|
605
650
|
current: clone(b.current),
|
|
606
651
|
last_seq: b.lastSeq,
|
|
652
|
+
blocked_senders: [...b.blockedSenders],
|
|
607
653
|
packets: [...b.packets.values()].map((p) => clone(p.record)),
|
|
608
654
|
tombstones: [...b.tombstones].map(([packet_id, t]) => ({
|
|
609
655
|
packet_id,
|
|
@@ -645,6 +691,7 @@ export class MailRelayStore {
|
|
|
645
691
|
bytes: 0,
|
|
646
692
|
packets: new Map(),
|
|
647
693
|
tombstones: new Map(),
|
|
694
|
+
blockedSenders: new Set(),
|
|
648
695
|
});
|
|
649
696
|
return clone(record);
|
|
650
697
|
}
|
|
@@ -662,16 +709,17 @@ export class MailRelayStore {
|
|
|
662
709
|
requireMail(encoder.encode(text).length <= MAIL_MAX_PACKET_BYTES, "payload_too_large");
|
|
663
710
|
return this.deliver(mailboxId, parseStrictJson(text), now);
|
|
664
711
|
}
|
|
712
|
+
/** Packets are asynchronous signed objects: no live-write window or nonce maximum applies. */
|
|
665
713
|
deliver(mailboxId, packet, now = this.clock()) {
|
|
666
714
|
packet = clone(packet);
|
|
667
715
|
safeTime(now);
|
|
668
716
|
pathId(mailboxId, 16);
|
|
669
717
|
const bytes = packetBytes(packet), size = bytes.length;
|
|
670
|
-
const h = packet.header;
|
|
718
|
+
const h = packet.event.payload.header;
|
|
671
719
|
requireMail(h.mailbox_id === mailboxId, "invalid_packet", "path mailbox mismatch");
|
|
672
720
|
const b = this.boxes.get(mailboxId);
|
|
673
721
|
requireMail(b, "mailbox_unavailable");
|
|
674
|
-
const id =
|
|
722
|
+
const id = packet.hash, prior = b.tombstones.get(id);
|
|
675
723
|
if (prior)
|
|
676
724
|
return { packet_id: id, accepted_at: prior.accepted_at };
|
|
677
725
|
const c = b.current.envelope, p = c.event.payload;
|
|
@@ -680,11 +728,13 @@ export class MailRelayStore {
|
|
|
680
728
|
requireMail(now < h.expires_at, "packet_expired");
|
|
681
729
|
requireMail(h.expires_at <= p.receive_until &&
|
|
682
730
|
h.expires_at - now <= MAIL_MAX_TTL_MS + MAIL_FUTURE_SKEW_MS, "invalid_packet", "packet lifetime exceeds bound");
|
|
731
|
+
requireMail(packet.event.created_at <= now + MAIL_FUTURE_SKEW_MS, "timestamp_out_of_window", "future packet");
|
|
683
732
|
requireMail(size <= p.max_packet_bytes, "payload_too_large", "packet exceeds card limit");
|
|
684
733
|
this.dropExpired(b, now);
|
|
685
734
|
requireMail(b.packets.size < this.maxPackets &&
|
|
686
735
|
b.bytes + size <= this.maxBytes &&
|
|
687
736
|
b.lastSeq < Number.MAX_SAFE_INTEGER, "rate_limited", "mailbox storage quota exhausted");
|
|
737
|
+
requireMail(!b.blockedSenders.has(packet.event.actor), "permission_denied", "sender not admitted");
|
|
688
738
|
b.lastSeq += 1;
|
|
689
739
|
b.packets.set(id, {
|
|
690
740
|
record: { packet_id: id, packet, accepted_at: now, seq: b.lastSeq },
|
|
@@ -694,6 +744,21 @@ export class MailRelayStore {
|
|
|
694
744
|
b.tombstones.set(id, { accepted_at: now, expires_at: h.expires_at });
|
|
695
745
|
return { packet_id: id, accepted_at: now };
|
|
696
746
|
}
|
|
747
|
+
/**
|
|
748
|
+
* Owner sender policy for new packets. Mail defines no management endpoint:
|
|
749
|
+
* the host authenticates the mailbox owner before calling this.
|
|
750
|
+
*/
|
|
751
|
+
setSenderBlocked(mailboxId, sender, blocked) {
|
|
752
|
+
pathId(mailboxId, 16);
|
|
753
|
+
const b = this.boxes.get(mailboxId);
|
|
754
|
+
requireMail(b, "mailbox_unavailable");
|
|
755
|
+
validateAgentId(sender);
|
|
756
|
+
requireMail(typeof blocked === "boolean", "invalid_request");
|
|
757
|
+
if (blocked)
|
|
758
|
+
b.blockedSenders.add(sender);
|
|
759
|
+
else
|
|
760
|
+
b.blockedSenders.delete(sender);
|
|
761
|
+
}
|
|
697
762
|
ownerBox(mailboxId, jwt, now) {
|
|
698
763
|
pathId(mailboxId, 16);
|
|
699
764
|
const claims = ownerClaims(jwt, this.origin, now);
|
|
@@ -714,7 +779,7 @@ export class MailRelayStore {
|
|
|
714
779
|
const after = cursor === undefined ? 0 : Number(cursor);
|
|
715
780
|
const rows = [...b.packets.values()]
|
|
716
781
|
.map((x) => x.record)
|
|
717
|
-
.filter((r) => r.seq > after && now < r.packet.header.expires_at);
|
|
782
|
+
.filter((r) => r.seq > after && now < r.packet.event.payload.header.expires_at);
|
|
718
783
|
const result = clone(rows.slice(0, limit));
|
|
719
784
|
return rows.length > limit
|
|
720
785
|
? { result, next_cursor: String(result.at(-1).seq) }
|
|
@@ -743,7 +808,7 @@ export class MailRelayStore {
|
|
|
743
808
|
}
|
|
744
809
|
dropExpired(b, now) {
|
|
745
810
|
for (const [id, x] of b.packets)
|
|
746
|
-
if (now >= x.record.packet.header.expires_at) {
|
|
811
|
+
if (now >= x.record.packet.event.payload.header.expires_at) {
|
|
747
812
|
b.packets.delete(id);
|
|
748
813
|
b.bytes -= x.size;
|
|
749
814
|
}
|
package/dist/mail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail.js","sourceRoot":"","sources":["../src/mail.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mail.js","sourceRoot":"","sources":["../src/mail.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED