@agentunion/fastaun 0.5.29 → 0.5.30
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/CHANGELOG.md +22 -0
- package/_packed_docs/CHANGELOG.md +22 -0
- package/_packed_docs/INDEX.md +11 -2
- package/_packed_docs/KITE_DOCS_GUIDE.md +10 -8
- package/_packed_docs/aun/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +18 -1
- package/_packed_docs/sdk/0.5.30-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +61 -0
- package/_packed_docs/sdk/0.5.30-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +68 -0
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +5 -3
- package/_packed_docs/sdk/INDEX.md +9 -1
- package/_packed_docs//351/231/214/347/224/237/344/272/272/346/213/222/347/273/235/345/215/217/350/256/256TDD/345/210/206/351/230/266/346/256/265/345/256/236/346/226/275/350/256/241/345/210/222.md +138 -0
- package/_packed_docs//351/231/214/347/224/237/344/272/272/346/213/222/347/273/235/345/215/217/350/256/256/350/257/246/347/273/206/350/256/276/350/256/241.md +231 -0
- package/dist/agent-md.js +13 -4
- package/dist/agent-md.js.map +1 -1
- package/dist/aid-store.js +5 -3
- package/dist/aid-store.js.map +1 -1
- package/dist/client/control-messages.d.ts +0 -1
- package/dist/client/control-messages.js +66 -68
- package/dist/client/control-messages.js.map +1 -1
- package/dist/client/rpc-pipeline.js +8 -0
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/v2-e2ee.js +7 -7
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.js +5 -5
- package/dist/client.js.map +1 -1
- package/dist/config.js +23 -18
- package/dist/config.js.map +1 -1
- package/dist/facades.d.ts +20 -0
- package/dist/facades.js +9 -0
- package/dist/facades.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/keystore/aid-db.js +14 -2
- package/dist/keystore/aid-db.js.map +1 -1
- package/dist/keystore/index.d.ts +3 -0
- package/dist/keystore/index.js +61 -1
- package/dist/keystore/index.js.map +1 -1
- package/dist/keystore/local-identity-store.js +112 -76
- package/dist/keystore/local-identity-store.js.map +1 -1
- package/dist/keystore/local-token-store.js +15 -26
- package/dist/keystore/local-token-store.js.map +1 -1
- package/dist/ownership-workflow.js +4 -3
- package/dist/ownership-workflow.js.map +1 -1
- package/dist/register-flow.js +3 -2
- package/dist/register-flow.js.map +1 -1
- package/dist/risk-control.js +2 -2
- package/dist/risk-control.js.map +1 -1
- package/dist/secret-store/file-store.js +68 -56
- package/dist/secret-store/file-store.js.map +1 -1
- package/dist/semantic-protocol.d.ts +2 -12
- package/dist/semantic-protocol.js +31 -48
- package/dist/semantic-protocol.js.map +1 -1
- package/dist/storage/lowlevel.d.ts +4 -0
- package/dist/storage/lowlevel.js +58 -1
- package/dist/storage/lowlevel.js.map +1 -1
- package/dist/storage/vfs.d.ts +4 -0
- package/dist/storage/vfs.js +57 -12
- package/dist/storage/vfs.js.map +1 -1
- package/dist/tools/cross-sdk-agent.d.ts +1 -1
- package/dist/tools/cross-sdk-agent.js +10 -1
- package/dist/tools/cross-sdk-agent.js.map +1 -1
- package/dist/transport.js +1 -1
- package/dist/transport.js.map +1 -1
- package/dist/validators.js +9 -8
- package/dist/validators.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -9,9 +9,10 @@
|
|
|
9
9
|
* 与 Python SDK 的 FileSecretStore 完全对齐。
|
|
10
10
|
*/
|
|
11
11
|
import { createCipheriv, createDecipheriv, createHmac, pbkdf2Sync, randomBytes, } from 'node:crypto';
|
|
12
|
-
import { existsSync, mkdirSync, readFileSync,
|
|
12
|
+
import { existsSync, mkdirSync, readFileSync, renameSync, readdirSync, } from 'node:fs';
|
|
13
13
|
import { join } from 'node:path';
|
|
14
14
|
import { createRequire } from 'node:module';
|
|
15
|
+
import { writeFileAtomic } from '../keystore/index.js';
|
|
15
16
|
const _noopLogger = { error: () => { }, warn: () => { }, info: () => { }, debug: () => { } };
|
|
16
17
|
function decodeSecretPart(value) {
|
|
17
18
|
if (/^[0-9a-fA-F]+$/.test(value) && value.length % 2 === 0) {
|
|
@@ -80,27 +81,7 @@ function nextVersionedBackupPath(path) {
|
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
83
|
function writeKeyJsonAtomic(path, data) {
|
|
83
|
-
|
|
84
|
-
try {
|
|
85
|
-
writeFileSync(tmp, JSON.stringify(data, null, 2), { encoding: 'utf-8', mode: 0o600 });
|
|
86
|
-
try {
|
|
87
|
-
renameSync(tmp, path);
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
try {
|
|
91
|
-
unlinkSync(path);
|
|
92
|
-
}
|
|
93
|
-
catch { /* ignore */ }
|
|
94
|
-
renameSync(tmp, path);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
catch (exc) {
|
|
98
|
-
try {
|
|
99
|
-
unlinkSync(tmp);
|
|
100
|
-
}
|
|
101
|
-
catch { /* ignore */ }
|
|
102
|
-
throw exc;
|
|
103
|
-
}
|
|
84
|
+
writeFileAtomic(path, JSON.stringify(data, null, 2), 0o600);
|
|
104
85
|
}
|
|
105
86
|
function verifyPrivateKeys(root, oldMasterKey) {
|
|
106
87
|
const aidsRoot = join(root, 'AIDs');
|
|
@@ -145,6 +126,30 @@ function verifyPrivateKeys(root, oldMasterKey) {
|
|
|
145
126
|
}
|
|
146
127
|
return migrations;
|
|
147
128
|
}
|
|
129
|
+
function writeMetadataMigration(item, rollback = false) {
|
|
130
|
+
const { DatabaseSync } = createRequire(import.meta.url)('node:sqlite');
|
|
131
|
+
const db = new DatabaseSync(item.path);
|
|
132
|
+
try {
|
|
133
|
+
db.exec('PRAGMA busy_timeout = 5000');
|
|
134
|
+
db.exec('BEGIN IMMEDIATE');
|
|
135
|
+
for (const row of item.rows) {
|
|
136
|
+
const updated = db.prepare('UPDATE metadata_kv SET value = ?, updated_at = ? WHERE key = ? AND value = ?').run(rollback ? row.previous : row.value, Date.now(), row.key, rollback ? row.value : row.previous);
|
|
137
|
+
if (Number(updated.changes) !== 1)
|
|
138
|
+
throw new SeedMigrationError('seed migration refused: protected metadata changed concurrently');
|
|
139
|
+
}
|
|
140
|
+
db.exec('COMMIT');
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
try {
|
|
144
|
+
db.exec('ROLLBACK');
|
|
145
|
+
}
|
|
146
|
+
catch { }
|
|
147
|
+
throw error;
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
db.close();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
148
153
|
function verifyMetadata(root, oldMasterKey, newMasterKey) {
|
|
149
154
|
const { DatabaseSync } = createRequire(import.meta.url)('node:sqlite');
|
|
150
155
|
const migrations = [];
|
|
@@ -221,47 +226,54 @@ function changeSeedBytes(root, oldSeedBytes, newSeedBytes, renameSeedPath, logge
|
|
|
221
226
|
result.seedFilesRenamed = 1;
|
|
222
227
|
return result;
|
|
223
228
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
+
const writtenKeys = [];
|
|
230
|
+
const writtenMetadata = [];
|
|
231
|
+
try {
|
|
232
|
+
for (const item of migrations) {
|
|
233
|
+
const record = encryptWithKey(newMasterKey, item.aid, 'identity/private_key', item.plaintext);
|
|
234
|
+
const verified = tryDecryptWithKey(newMasterKey, item.aid, 'identity/private_key', record);
|
|
235
|
+
if (!verified || !verified.equals(item.plaintext)) {
|
|
236
|
+
throw new SeedMigrationError(`new seed verification failed for private key: aid=${item.aid}`);
|
|
237
|
+
}
|
|
238
|
+
const data = JSON.parse(readFileSync(item.path, 'utf-8'));
|
|
239
|
+
data.private_key_protection = record;
|
|
240
|
+
delete data.private_key_pem;
|
|
241
|
+
// 覆盖前先备份(.v1/.v2 递增)
|
|
242
|
+
const bakPath = nextVersionedBackupPath(item.path);
|
|
243
|
+
writeFileAtomic(bakPath, readFileSync(item.path), 0o600, false);
|
|
244
|
+
writeKeyJsonAtomic(item.path, data);
|
|
245
|
+
writtenKeys.push({ path: item.path, backup: bakPath });
|
|
246
|
+
result.migrated += 1;
|
|
247
|
+
result.privateKeysMigrated += 1;
|
|
248
|
+
}
|
|
249
|
+
for (const item of metadata) {
|
|
250
|
+
if (item.rows.length === 0)
|
|
251
|
+
continue;
|
|
252
|
+
writeMetadataMigration(item);
|
|
253
|
+
writtenMetadata.push(item);
|
|
229
254
|
}
|
|
230
|
-
const data = JSON.parse(readFileSync(item.path, 'utf-8'));
|
|
231
|
-
data.private_key_protection = record;
|
|
232
|
-
delete data.private_key_pem;
|
|
233
|
-
// 覆盖前先备份(.v1/.v2 递增)
|
|
234
|
-
const bakPath = nextVersionedBackupPath(item.path);
|
|
235
|
-
writeFileSync(bakPath, readFileSync(item.path));
|
|
236
|
-
writeKeyJsonAtomic(item.path, data);
|
|
237
|
-
result.migrated += 1;
|
|
238
|
-
result.privateKeysMigrated += 1;
|
|
239
255
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
for (const row of item.rows) {
|
|
249
|
-
const updated = db.prepare('UPDATE metadata_kv SET value = ?, updated_at = ? WHERE key = ? AND value = ?').run(row.value, Date.now(), row.key, row.previous);
|
|
250
|
-
if (Number(updated.changes) !== 1)
|
|
251
|
-
throw new SeedMigrationError('seed migration refused: protected metadata changed concurrently');
|
|
256
|
+
catch (error) {
|
|
257
|
+
const failures = [];
|
|
258
|
+
for (const item of writtenMetadata.reverse()) {
|
|
259
|
+
try {
|
|
260
|
+
writeMetadataMigration(item, true);
|
|
261
|
+
}
|
|
262
|
+
catch (failure) {
|
|
263
|
+
failures.push(failure);
|
|
252
264
|
}
|
|
253
|
-
db.exec('COMMIT');
|
|
254
265
|
}
|
|
255
|
-
|
|
266
|
+
for (const item of writtenKeys.reverse()) {
|
|
256
267
|
try {
|
|
257
|
-
|
|
268
|
+
renameSync(item.backup, item.path);
|
|
269
|
+
}
|
|
270
|
+
catch (failure) {
|
|
271
|
+
failures.push(failure);
|
|
258
272
|
}
|
|
259
|
-
catch { }
|
|
260
|
-
throw error;
|
|
261
|
-
}
|
|
262
|
-
finally {
|
|
263
|
-
db.close();
|
|
264
273
|
}
|
|
274
|
+
if (failures.length)
|
|
275
|
+
throw new AggregateError([error, ...failures], 'seed migration failed: rollback incomplete');
|
|
276
|
+
throw error;
|
|
265
277
|
}
|
|
266
278
|
if (renameSeedPath && renameSeedFile(renameSeedPath))
|
|
267
279
|
result.seedFilesRenamed = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-store.js","sourceRoot":"","sources":["../../src/secret-store/file-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file-store.js","sourceRoot":"","sources":["../../src/secret-store/file-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -318,6 +318,7 @@ export interface SemanticMessageVerificationContext extends Partial<RecordVerifi
|
|
|
318
318
|
selfDeviceId: string;
|
|
319
319
|
selfIkPrivate?: Uint8Array;
|
|
320
320
|
selfSpkPrivate?: Uint8Array;
|
|
321
|
+
resolveMessage?: (messageId: string) => Uint8Array | Promise<Uint8Array>;
|
|
321
322
|
resolveDecryptionKeys?: (envelope: Record<string, unknown>) => {
|
|
322
323
|
ikPriv: Uint8Array;
|
|
323
324
|
spkPriv?: Uint8Array;
|
|
@@ -330,19 +331,8 @@ export interface SemanticMessageVerificationContext extends Partial<RecordVerifi
|
|
|
330
331
|
verifySenderIdentity: (sender: string, device: string, fingerprint: string, signedAt: number, publicKey: Uint8Array) => void | Promise<void>;
|
|
331
332
|
}
|
|
332
333
|
export interface MessageBodyRef {
|
|
333
|
-
sender: AID;
|
|
334
334
|
message_id: string;
|
|
335
|
-
|
|
336
|
-
conversation: {
|
|
337
|
-
kind: "p2p";
|
|
338
|
-
to: AID;
|
|
339
|
-
} | {
|
|
340
|
-
kind: "group";
|
|
341
|
-
group_id: string;
|
|
342
|
-
epoch: number;
|
|
343
|
-
state_commitment: JsonObject;
|
|
344
|
-
};
|
|
345
|
-
envelope: EvidenceRef;
|
|
335
|
+
envelope_hash: Digest;
|
|
346
336
|
context?: EvidenceRef[];
|
|
347
337
|
attachments?: EvidenceRef[];
|
|
348
338
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { canonicalJson as messageCanonical } from './v2/crypto/canonical.js';
|
|
2
1
|
import { decryptMessageWithEvidence } from './v2/e2ee/decrypt.js';
|
|
3
2
|
import { createHash, verify as verifySignature, X509Certificate } from 'node:crypto';
|
|
4
3
|
import { canonicalJson as legacyCanonicalJson, parseJsonStrict as legacyParseJsonStrict, validateCapability } from './org-protocol.js';
|
|
@@ -280,11 +279,16 @@ export async function archiveMessage(envelope, received) {
|
|
|
280
279
|
shape(received, { received_by: aid, received_at: integer, source: string });
|
|
281
280
|
return { envelope: await createEvidenceRef(bytes, 'aun-e2ee-v2-envelope-raw/1'), envelope_bytes: bytes, ...received };
|
|
282
281
|
}
|
|
283
|
-
async function verifiedMessage(ref, context) {
|
|
282
|
+
async function verifiedMessage(ref, context, originalBytes) {
|
|
284
283
|
messageBody(ref);
|
|
285
|
-
if (
|
|
286
|
-
|
|
287
|
-
const
|
|
284
|
+
if (originalBytes === undefined && typeof context.resolveMessage !== 'function')
|
|
285
|
+
throw new SemanticProtocolError('SEMANTIC_STATE_UNAVAILABLE', 'trusted received-message resolver is unavailable');
|
|
286
|
+
const bytes = originalBytes ?? await context.resolveMessage(ref.message_id);
|
|
287
|
+
if (!evidenceBytes(bytes))
|
|
288
|
+
throw new SemanticProtocolError('SEMANTIC_STATE_UNAVAILABLE', 'original message bytes are unavailable');
|
|
289
|
+
if (bytesDigest(bytes) !== ref.envelope_hash)
|
|
290
|
+
throw new SemanticProtocolError('SEMANTIC_BINDING_INVALID', 'message envelope bytes differ from signed hash');
|
|
291
|
+
const envelope = parseJsonStrict(bytes);
|
|
288
292
|
object(envelope);
|
|
289
293
|
object(envelope.aad);
|
|
290
294
|
const aad = envelope.aad;
|
|
@@ -293,38 +297,35 @@ async function verifiedMessage(ref, context) {
|
|
|
293
297
|
integer(aad.timestamp);
|
|
294
298
|
string(aad.from_device);
|
|
295
299
|
string(aad.wrap_protocol);
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
300
|
+
aid(aad.from);
|
|
301
|
+
if (aad.message_id !== ref.message_id)
|
|
302
|
+
throw new SemanticProtocolError('SEMANTIC_BINDING_INVALID', 'protected message ID differs from signed reference');
|
|
303
|
+
if (envelope.type === 'e2ee.p2p_encrypted') {
|
|
304
|
+
if (context.selfAid !== aad.to)
|
|
305
|
+
throw new SemanticProtocolError('SEMANTIC_IDENTITY_INVALID', 'business identity was not the original P2P recipient');
|
|
306
|
+
}
|
|
307
|
+
else if (envelope.type === 'e2ee.group_encrypted') {
|
|
308
|
+
string(aad.group_id);
|
|
309
|
+
integer(aad.epoch);
|
|
310
|
+
jsonObject(aad.state_commitment);
|
|
311
|
+
}
|
|
312
|
+
else
|
|
313
|
+
invalid('unsupported message envelope type');
|
|
305
314
|
if (!Array.isArray(envelope.recipients) && (!envelope.recipient || envelope.merkle_proof !== undefined && !Array.isArray(envelope.merkle_proof)))
|
|
306
315
|
throw new SemanticProtocolError('SEMANTIC_STATE_UNAVAILABLE', 'original recipient collection or Merkle proof is required');
|
|
307
316
|
if (typeof envelope.recipients_digest !== 'string' || !/^[0-9a-f]{64}$/.test(envelope.recipients_digest))
|
|
308
317
|
invalid('invalid original recipient digest');
|
|
309
|
-
|
|
318
|
+
decodeBase64(envelope.ciphertext);
|
|
319
|
+
const tag = decodeBase64(envelope.tag), nonce = decodeBase64(envelope.nonce), signature = decodeBase64(envelope.sender_signature);
|
|
310
320
|
decodeBase64(envelope.sender_session_pk);
|
|
311
321
|
string(envelope.sender_cert_fingerprint);
|
|
312
322
|
if (tag.length !== 16 || nonce.length !== 12 || signature.length !== 64)
|
|
313
323
|
invalid('invalid V2 encryption or RAW signature lengths');
|
|
314
|
-
const aadBytes = messageCanonical(aad), root = new Uint8Array(envelope.recipients_digest.match(/../g).map((value) => parseInt(value, 16)));
|
|
315
|
-
const core = new Uint8Array(ciphertext.length + tag.length + aadBytes.length + root.length);
|
|
316
|
-
let offset = 0;
|
|
317
|
-
for (const part of [ciphertext, tag, aadBytes, root]) {
|
|
318
|
-
core.set(part, offset);
|
|
319
|
-
offset += part.length;
|
|
320
|
-
}
|
|
321
|
-
if (bytesDigest(core) !== ref.signed_core_hash)
|
|
322
|
-
throw new SemanticProtocolError('SEMANTIC_BINDING_INVALID', 'message signed core differs from reference');
|
|
323
324
|
if (typeof context.resolveSenderKey !== 'function' || typeof context.verifySenderIdentity !== 'function')
|
|
324
325
|
throw new SemanticProtocolError('SEMANTIC_IDENTITY_INVALID', 'trusted historical sender identity adapter is required');
|
|
325
326
|
const signedAt = Math.trunc(aad.timestamp / 1000), fingerprint = envelope.sender_cert_fingerprint;
|
|
326
|
-
const senderKey = await context.resolveSenderKey(
|
|
327
|
-
await context.verifySenderIdentity(
|
|
327
|
+
const senderKey = await context.resolveSenderKey(aad.from, aad.from_device, fingerprint, signedAt);
|
|
328
|
+
await context.verifySenderIdentity(aad.from, aad.from_device, fingerprint, signedAt, senderKey);
|
|
328
329
|
const keys = context.resolveDecryptionKeys ? await context.resolveDecryptionKeys(envelope) : { ikPriv: context.selfIkPrivate, spkPriv: context.selfSpkPrivate };
|
|
329
330
|
if (!evidenceBytes(keys.ikPriv))
|
|
330
331
|
throw new SemanticProtocolError('SEMANTIC_IDENTITY_INVALID', 'original receiver decryption keys are required');
|
|
@@ -345,19 +346,7 @@ async function verifyEvidenceProfile(ref, context) {
|
|
|
345
346
|
object(envelope);
|
|
346
347
|
object(envelope.aad);
|
|
347
348
|
const aad = envelope.aad;
|
|
348
|
-
|
|
349
|
-
if (typeof envelope.recipients_digest !== 'string' || !/^[0-9a-f]{64}$/.test(envelope.recipients_digest))
|
|
350
|
-
invalid('invalid original recipient digest');
|
|
351
|
-
const root = new Uint8Array(envelope.recipients_digest.match(/../g).map((value) => parseInt(value, 16)));
|
|
352
|
-
const core = new Uint8Array(ciphertext.length + tag.length + aadBytes.length + root.length);
|
|
353
|
-
let offset = 0;
|
|
354
|
-
for (const part of [ciphertext, tag, aadBytes, root]) {
|
|
355
|
-
core.set(part, offset);
|
|
356
|
-
offset += part.length;
|
|
357
|
-
}
|
|
358
|
-
await verifiedMessage({ sender: aad.from, message_id: aad.message_id, signed_core_hash: bytesDigest(core),
|
|
359
|
-
conversation: envelope.type === 'e2ee.p2p_encrypted' ? { kind: 'p2p', to: aad.to }
|
|
360
|
-
: { kind: 'group', group_id: aad.group_id, epoch: aad.epoch, state_commitment: aad.state_commitment }, envelope: ref }, context);
|
|
349
|
+
await verifiedMessage({ message_id: aad.message_id, envelope_hash: ref.hash }, context, bytes);
|
|
361
350
|
}
|
|
362
351
|
else if (ref.profile === 'aun-cap-usage-allocation/1') {
|
|
363
352
|
const allocation = parseJsonStrict(bytes), canonical = canonicalJson(allocation);
|
|
@@ -380,7 +369,7 @@ export async function verifyMessageBody(value, context) {
|
|
|
380
369
|
if (credential.authorization.kind === 'text')
|
|
381
370
|
return { credential_hash: digest(credential), body_hash: bytesDigest(new TextEncoder().encode(credential.authorization.text)), text: credential.authorization.text, evidence_hashes: [...evidence].sort() };
|
|
382
371
|
const ref = credential.authorization.message, verified = await verifiedMessage(ref, context);
|
|
383
|
-
evidence.add(ref.
|
|
372
|
+
evidence.add(ref.envelope_hash);
|
|
384
373
|
for (const item of ref.context ?? []) {
|
|
385
374
|
if (item.profile !== 'aun-e2ee-v2-envelope-raw/1')
|
|
386
375
|
invalid('necessary context requires message evidence profile');
|
|
@@ -397,14 +386,8 @@ export async function verifyMessageBody(value, context) {
|
|
|
397
386
|
}
|
|
398
387
|
function messageBody(value) {
|
|
399
388
|
shape(value, {
|
|
400
|
-
message_id: string,
|
|
401
|
-
|
|
402
|
-
object(conversation);
|
|
403
|
-
if (conversation.kind === 'p2p')
|
|
404
|
-
shape(conversation, { kind: literal('p2p'), to: aid });
|
|
405
|
-
else
|
|
406
|
-
shape(conversation, { kind: literal('group'), group_id: string, epoch: integer, state_commitment: jsonObject });
|
|
407
|
-
}, envelope: validateEvidenceRef, 'context?': array(validateEvidenceRef), 'attachments?': array(validateEvidenceRef),
|
|
389
|
+
message_id: string, envelope_hash: hash,
|
|
390
|
+
'context?': array(validateEvidenceRef), 'attachments?': array(validateEvidenceRef),
|
|
408
391
|
});
|
|
409
392
|
}
|
|
410
393
|
function capability(value) {
|