@enbox/dwn-sdk-js 0.4.3 → 0.4.5
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/browser.mjs +15 -15
- package/dist/browser.mjs.map +4 -4
- package/dist/esm/generated/precompiled-validators.js +5406 -2200
- package/dist/esm/generated/precompiled-validators.js.map +1 -1
- package/dist/esm/json-schemas/definitions.json +18 -0
- package/dist/esm/src/core/constants.js +3 -3
- package/dist/esm/src/core/constants.js.map +1 -1
- package/dist/esm/src/core/dwn-error.js +29 -1
- package/dist/esm/src/core/dwn-error.js.map +1 -1
- package/dist/esm/src/core/messages-grant-authorization.js +20 -0
- package/dist/esm/src/core/messages-grant-authorization.js.map +1 -1
- package/dist/esm/src/core/protocol-authorization-validation.js +80 -3
- package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -1
- package/dist/esm/src/core/recording-validation-state-reader.js +5 -0
- package/dist/esm/src/core/recording-validation-state-reader.js.map +1 -1
- package/dist/esm/src/core/replication-apply.js +163 -7
- package/dist/esm/src/core/replication-apply.js.map +1 -1
- package/dist/esm/src/core/validation-state-reader.js +20 -0
- package/dist/esm/src/core/validation-state-reader.js.map +1 -1
- package/dist/esm/src/dwn.js +19 -2
- package/dist/esm/src/dwn.js.map +1 -1
- package/dist/esm/src/handlers/messages-query.js +3 -5
- package/dist/esm/src/handlers/messages-query.js.map +1 -1
- package/dist/esm/src/handlers/protocols-configure.js +10 -4
- package/dist/esm/src/handlers/protocols-configure.js.map +1 -1
- package/dist/esm/src/handlers/records-write.js +1 -1
- package/dist/esm/src/handlers/records-write.js.map +1 -1
- package/dist/esm/src/index.js +2 -1
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/interfaces/protocols-configure.js +23 -10
- package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
- package/dist/esm/src/interfaces/records-write-signing.js +2 -8
- package/dist/esm/src/interfaces/records-write-signing.js.map +1 -1
- package/dist/esm/src/interfaces/records-write.js +43 -65
- package/dist/esm/src/interfaces/records-write.js.map +1 -1
- package/dist/esm/src/protocols/encryption.js +411 -0
- package/dist/esm/src/protocols/encryption.js.map +1 -0
- package/dist/esm/src/protocols/permission-grant.js +3 -3
- package/dist/esm/src/protocols/permission-grant.js.map +1 -1
- package/dist/esm/src/protocols/permissions.js +1 -0
- package/dist/esm/src/protocols/permissions.js.map +1 -1
- package/dist/esm/src/types/message-types.js.map +1 -1
- package/dist/esm/src/types/permission-types.js.map +1 -1
- package/dist/esm/src/types/protocols-types.js.map +1 -1
- package/dist/esm/src/utils/encryption.js +135 -187
- package/dist/esm/src/utils/encryption.js.map +1 -1
- package/dist/esm/src/utils/hd-key.js +0 -1
- package/dist/esm/src/utils/hd-key.js.map +1 -1
- package/dist/esm/src/utils/permission-scope.js +9 -6
- package/dist/esm/src/utils/permission-scope.js.map +1 -1
- package/dist/esm/src/utils/protocols.js +12 -9
- package/dist/esm/src/utils/protocols.js.map +1 -1
- package/dist/esm/src/utils/records.js +54 -56
- package/dist/esm/src/utils/records.js.map +1 -1
- package/dist/esm/src/utils/replication.js +27 -4
- package/dist/esm/src/utils/replication.js.map +1 -1
- package/dist/esm/tests/core/replication-apply.spec.js +141 -1
- package/dist/esm/tests/core/replication-apply.spec.js.map +1 -1
- package/dist/esm/tests/core/replication-replay-property.spec.js +1 -0
- package/dist/esm/tests/core/replication-replay-property.spec.js.map +1 -1
- package/dist/esm/tests/core/validation-read-closure.spec.js +111 -0
- package/dist/esm/tests/core/validation-read-closure.spec.js.map +1 -1
- package/dist/esm/tests/core/validation-state-reader.spec.js +89 -0
- package/dist/esm/tests/core/validation-state-reader.spec.js.map +1 -1
- package/dist/esm/tests/features/protocol-composition.spec.js +30 -31
- package/dist/esm/tests/features/protocol-composition.spec.js.map +1 -1
- package/dist/esm/tests/fuzz/encryption.fuzz.spec.js +29 -121
- package/dist/esm/tests/fuzz/encryption.fuzz.spec.js.map +1 -1
- package/dist/esm/tests/handlers/messages-query.spec.js +71 -3
- package/dist/esm/tests/handlers/messages-query.spec.js.map +1 -1
- package/dist/esm/tests/handlers/messages-read.spec.js +2 -2
- package/dist/esm/tests/handlers/messages-read.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-read.spec.js +9 -135
- package/dist/esm/tests/handlers/records-read.spec.js.map +1 -1
- package/dist/esm/tests/handlers/records-write.spec.js +279 -19
- package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/protocols-configure.spec.js +17 -22
- package/dist/esm/tests/interfaces/protocols-configure.spec.js.map +1 -1
- package/dist/esm/tests/interfaces/records-write.spec.js +170 -150
- package/dist/esm/tests/interfaces/records-write.spec.js.map +1 -1
- package/dist/esm/tests/protocols/encryption.spec.js +914 -0
- package/dist/esm/tests/protocols/encryption.spec.js.map +1 -0
- package/dist/esm/tests/protocols/permission-grant.spec.js +55 -0
- package/dist/esm/tests/protocols/permission-grant.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/end-to-end-tests.spec.js +100 -100
- package/dist/esm/tests/scenarios/end-to-end-tests.spec.js.map +1 -1
- package/dist/esm/tests/store/message-store-level.spec.js +20 -2
- package/dist/esm/tests/store/message-store-level.spec.js.map +1 -1
- package/dist/esm/tests/utils/encryption-callbacks.spec.js +88 -125
- package/dist/esm/tests/utils/encryption-callbacks.spec.js.map +1 -1
- package/dist/esm/tests/utils/encryption.spec.js +125 -255
- package/dist/esm/tests/utils/encryption.spec.js.map +1 -1
- package/dist/esm/tests/utils/permission-scope.spec.js +5 -1
- package/dist/esm/tests/utils/permission-scope.spec.js.map +1 -1
- package/dist/esm/tests/utils/records.spec.js +15 -5
- package/dist/esm/tests/utils/records.spec.js.map +1 -1
- package/dist/esm/tests/utils/test-data-generator.js +7 -44
- package/dist/esm/tests/utils/test-data-generator.js.map +1 -1
- package/dist/esm/tests/validation/json-schemas/encryption/grant-key.spec.js +63 -0
- package/dist/esm/tests/validation/json-schemas/encryption/grant-key.spec.js.map +1 -0
- package/dist/types/generated/precompiled-validators.d.ts +140 -92
- package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
- package/dist/types/src/core/constants.d.ts +2 -2
- package/dist/types/src/core/constants.d.ts.map +1 -1
- package/dist/types/src/core/core-protocol.d.ts +1 -1
- package/dist/types/src/core/core-protocol.d.ts.map +1 -1
- package/dist/types/src/core/dwn-error.d.ts +29 -1
- package/dist/types/src/core/dwn-error.d.ts.map +1 -1
- package/dist/types/src/core/messages-grant-authorization.d.ts +2 -0
- package/dist/types/src/core/messages-grant-authorization.d.ts.map +1 -1
- package/dist/types/src/core/protocol-authorization-validation.d.ts +2 -2
- package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -1
- package/dist/types/src/core/recording-validation-state-reader.d.ts +9 -0
- package/dist/types/src/core/recording-validation-state-reader.d.ts.map +1 -1
- package/dist/types/src/core/replication-apply.d.ts +4 -3
- package/dist/types/src/core/replication-apply.d.ts.map +1 -1
- package/dist/types/src/core/validation-state-reader.d.ts +9 -0
- package/dist/types/src/core/validation-state-reader.d.ts.map +1 -1
- package/dist/types/src/dwn.d.ts +1 -0
- package/dist/types/src/dwn.d.ts.map +1 -1
- package/dist/types/src/handlers/messages-query.d.ts.map +1 -1
- package/dist/types/src/handlers/protocols-configure.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +6 -5
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/interfaces/protocols-configure.d.ts +1 -1
- package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-write-signing.d.ts +4 -8
- package/dist/types/src/interfaces/records-write-signing.d.ts.map +1 -1
- package/dist/types/src/interfaces/records-write.d.ts +10 -26
- package/dist/types/src/interfaces/records-write.d.ts.map +1 -1
- package/dist/types/src/protocols/encryption.d.ts +43 -0
- package/dist/types/src/protocols/encryption.d.ts.map +1 -0
- package/dist/types/src/protocols/permission-grant.d.ts +3 -6
- package/dist/types/src/protocols/permission-grant.d.ts.map +1 -1
- package/dist/types/src/protocols/permissions.d.ts +2 -1
- package/dist/types/src/protocols/permissions.d.ts.map +1 -1
- package/dist/types/src/types/encryption-types.d.ts +5 -38
- package/dist/types/src/types/encryption-types.d.ts.map +1 -1
- package/dist/types/src/types/message-types.d.ts +0 -13
- package/dist/types/src/types/message-types.d.ts.map +1 -1
- package/dist/types/src/types/permission-types.d.ts +44 -9
- package/dist/types/src/types/permission-types.d.ts.map +1 -1
- package/dist/types/src/types/protocols-types.d.ts +9 -14
- package/dist/types/src/types/protocols-types.d.ts.map +1 -1
- package/dist/types/src/types/records-types.d.ts +3 -3
- package/dist/types/src/types/records-types.d.ts.map +1 -1
- package/dist/types/src/types/validation-state-reader.d.ts +12 -0
- package/dist/types/src/types/validation-state-reader.d.ts.map +1 -1
- package/dist/types/src/utils/encryption.d.ts +54 -145
- package/dist/types/src/utils/encryption.d.ts.map +1 -1
- package/dist/types/src/utils/hd-key.d.ts +1 -1
- package/dist/types/src/utils/hd-key.d.ts.map +1 -1
- package/dist/types/src/utils/permission-scope.d.ts +4 -3
- package/dist/types/src/utils/permission-scope.d.ts.map +1 -1
- package/dist/types/src/utils/protocols.d.ts +3 -5
- package/dist/types/src/utils/protocols.d.ts.map +1 -1
- package/dist/types/src/utils/records.d.ts +5 -13
- package/dist/types/src/utils/records.d.ts.map +1 -1
- package/dist/types/src/utils/replication.d.ts +3 -0
- package/dist/types/src/utils/replication.d.ts.map +1 -1
- package/dist/types/tests/features/protocol-composition.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/messages-query.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/records-read.spec.d.ts.map +1 -1
- package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
- package/dist/types/tests/protocols/encryption.spec.d.ts +2 -0
- package/dist/types/tests/protocols/encryption.spec.d.ts.map +1 -0
- package/dist/types/tests/scenarios/end-to-end-tests.spec.d.ts.map +1 -1
- package/dist/types/tests/utils/test-data-generator.d.ts +0 -5
- package/dist/types/tests/utils/test-data-generator.d.ts.map +1 -1
- package/dist/types/tests/validation/json-schemas/encryption/grant-key.spec.d.ts +2 -0
- package/dist/types/tests/validation/json-schemas/encryption/grant-key.spec.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/core/constants.ts +3 -3
- package/src/core/core-protocol.ts +1 -1
- package/src/core/dwn-error.ts +29 -1
- package/src/core/messages-grant-authorization.ts +27 -0
- package/src/core/protocol-authorization-validation.ts +145 -6
- package/src/core/recording-validation-state-reader.ts +13 -0
- package/src/core/replication-apply.ts +222 -8
- package/src/core/validation-state-reader.ts +30 -0
- package/src/dwn.ts +24 -2
- package/src/handlers/messages-query.ts +6 -5
- package/src/handlers/protocols-configure.ts +19 -3
- package/src/handlers/records-write.ts +1 -1
- package/src/index.ts +15 -5
- package/src/interfaces/protocols-configure.ts +39 -12
- package/src/interfaces/records-write-signing.ts +5 -12
- package/src/interfaces/records-write.ts +75 -92
- package/src/protocols/encryption.ts +649 -0
- package/src/protocols/permission-grant.ts +4 -5
- package/src/protocols/permissions.ts +8 -6
- package/src/types/encryption-types.ts +9 -38
- package/src/types/message-types.ts +0 -13
- package/src/types/permission-types.ts +57 -9
- package/src/types/protocols-types.ts +9 -16
- package/src/types/records-types.ts +3 -3
- package/src/types/validation-state-reader.ts +13 -0
- package/src/utils/encryption.ts +213 -283
- package/src/utils/hd-key.ts +1 -1
- package/src/utils/permission-scope.ts +10 -6
- package/src/utils/protocols.ts +16 -15
- package/src/utils/records.ts +86 -71
- package/src/utils/replication.ts +30 -4
- package/dist/esm/tests/vectors/protocol-definitions/chat.json +0 -70
|
@@ -6,7 +6,7 @@ import { ProtocolsConfigureHandler } from '../../src/handlers/protocols-configur
|
|
|
6
6
|
import { TestDataGenerator } from '../utils/test-data-generator.js';
|
|
7
7
|
import { Time } from '../../src/utils/time.js';
|
|
8
8
|
import { afterEach, describe, expect, it } from 'bun:test';
|
|
9
|
-
import { DwnErrorCode, DwnInterfaceName, DwnMethodName, Message } from '../../src/index.js';
|
|
9
|
+
import { DwnErrorCode, DwnInterfaceName, DwnMethodName, Message, Protocols } from '../../src/index.js';
|
|
10
10
|
describe('ProtocolsConfigure', () => {
|
|
11
11
|
describe('parse()', () => {
|
|
12
12
|
it('should throw if protocol definitions has record nesting more than 10 level deep', async () => {
|
|
@@ -424,7 +424,7 @@ describe('ProtocolsConfigure', () => {
|
|
|
424
424
|
console.warn = originalWarn;
|
|
425
425
|
capturedWarnings.length = 0;
|
|
426
426
|
});
|
|
427
|
-
it('should
|
|
427
|
+
it('should reject encryptionRequired: true when anyone can read at the same path', async () => {
|
|
428
428
|
originalWarn = console.warn;
|
|
429
429
|
console.warn = (...args) => { capturedWarnings.push(String(args[0])); };
|
|
430
430
|
const definition = {
|
|
@@ -445,19 +445,14 @@ describe('ProtocolsConfigure', () => {
|
|
|
445
445
|
},
|
|
446
446
|
};
|
|
447
447
|
const alice = await TestDataGenerator.generatePersona();
|
|
448
|
-
const
|
|
448
|
+
const encryptedDefinition = await Protocols.deriveAndInjectPublicEncryptionKeys(definition, alice.keyId, alice.encryptionKeyPair.privateJwk);
|
|
449
|
+
await expect(ProtocolsConfigure.create({
|
|
449
450
|
signer: Jws.createSigner(alice),
|
|
450
|
-
definition,
|
|
451
|
-
});
|
|
452
|
-
|
|
453
|
-
expect(result).toBeDefined();
|
|
454
|
-
// A warning should have been emitted
|
|
455
|
-
expect(capturedWarnings.length).toBe(1);
|
|
456
|
-
expect(capturedWarnings[0]).toContain('encryptionRequired: true');
|
|
457
|
-
expect(capturedWarnings[0]).toContain('anyone');
|
|
458
|
-
expect(capturedWarnings[0]).toContain('secret');
|
|
451
|
+
definition: encryptedDefinition,
|
|
452
|
+
})).rejects.toThrow(DwnErrorCode.ProtocolsConfigureInvalidEncryptedAnyoneRead);
|
|
453
|
+
expect(capturedWarnings.length).toBe(0);
|
|
459
454
|
});
|
|
460
|
-
it('should
|
|
455
|
+
it('should reject nested types with encryptionRequired + anyone-can-read', async () => {
|
|
461
456
|
originalWarn = console.warn;
|
|
462
457
|
console.warn = (...args) => { capturedWarnings.push(String(args[0])); };
|
|
463
458
|
const definition = {
|
|
@@ -480,14 +475,12 @@ describe('ProtocolsConfigure', () => {
|
|
|
480
475
|
},
|
|
481
476
|
};
|
|
482
477
|
const alice = await TestDataGenerator.generatePersona();
|
|
483
|
-
const
|
|
478
|
+
const encryptedDefinition = await Protocols.deriveAndInjectPublicEncryptionKeys(definition, alice.keyId, alice.encryptionKeyPair.privateJwk);
|
|
479
|
+
await expect(ProtocolsConfigure.create({
|
|
484
480
|
signer: Jws.createSigner(alice),
|
|
485
|
-
definition,
|
|
486
|
-
});
|
|
487
|
-
expect(
|
|
488
|
-
expect(capturedWarnings.length).toBe(1);
|
|
489
|
-
expect(capturedWarnings[0]).toContain('message');
|
|
490
|
-
expect(capturedWarnings[0]).toContain('thread/message');
|
|
481
|
+
definition: encryptedDefinition,
|
|
482
|
+
})).rejects.toThrow(DwnErrorCode.ProtocolsConfigureInvalidEncryptedAnyoneRead);
|
|
483
|
+
expect(capturedWarnings.length).toBe(0);
|
|
491
484
|
});
|
|
492
485
|
it('should not warn when encryptionRequired is absent', async () => {
|
|
493
486
|
originalWarn = console.warn;
|
|
@@ -505,9 +498,10 @@ describe('ProtocolsConfigure', () => {
|
|
|
505
498
|
},
|
|
506
499
|
};
|
|
507
500
|
const alice = await TestDataGenerator.generatePersona();
|
|
501
|
+
const encryptedDefinition = await Protocols.deriveAndInjectPublicEncryptionKeys(definition, alice.keyId, alice.encryptionKeyPair.privateJwk);
|
|
508
502
|
const result = await ProtocolsConfigure.create({
|
|
509
503
|
signer: Jws.createSigner(alice),
|
|
510
|
-
definition,
|
|
504
|
+
definition: encryptedDefinition,
|
|
511
505
|
});
|
|
512
506
|
expect(result).toBeDefined();
|
|
513
507
|
expect(capturedWarnings.length).toBe(0);
|
|
@@ -542,9 +536,10 @@ describe('ProtocolsConfigure', () => {
|
|
|
542
536
|
},
|
|
543
537
|
};
|
|
544
538
|
const alice = await TestDataGenerator.generatePersona();
|
|
539
|
+
const encryptedDefinition = await Protocols.deriveAndInjectPublicEncryptionKeys(definition, alice.keyId, alice.encryptionKeyPair.privateJwk);
|
|
545
540
|
const result = await ProtocolsConfigure.create({
|
|
546
541
|
signer: Jws.createSigner(alice),
|
|
547
|
-
definition,
|
|
542
|
+
definition: encryptedDefinition,
|
|
548
543
|
});
|
|
549
544
|
expect(result).toBeDefined();
|
|
550
545
|
expect(capturedWarnings.length).toBe(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocols-configure.spec.js","sourceRoot":"","sources":["../../../../tests/interfaces/protocols-configure.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"protocols-configure.spec.js","sourceRoot":"","sources":["../../../../tests/interfaces/protocols-configure.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import sinon from 'sinon';
|
|
2
2
|
import { beforeEach, describe, expect, it } from 'bun:test';
|
|
3
|
+
import { DataStream } from '../../src/utils/data-stream.js';
|
|
3
4
|
import { DwnErrorCode } from '../../src/core/dwn-error.js';
|
|
5
|
+
import { Encryption } from '../../src/utils/encryption.js';
|
|
6
|
+
import { Records } from '../../src/utils/records.js';
|
|
4
7
|
import { RecordsWrite } from '../../src/interfaces/records-write.js';
|
|
5
8
|
import { RecordsWriteHandler } from '../../src/handlers/records-write.js';
|
|
6
9
|
import { TestDataGenerator } from '../utils/test-data-generator.js';
|
|
7
10
|
import { Time } from '../../src/utils/time.js';
|
|
8
|
-
import { DwnInterfaceName, DwnMethodName, Encoder, Jws, KeyDerivationScheme, Message, MessageStoreLevel, PermissionsProtocol } from '../../src/index.js';
|
|
11
|
+
import { ContentEncryptionAlgorithm, DwnInterfaceName, DwnMethodName, Encoder, HdKey, Jws, KeyDerivationScheme, Message, MessageStoreLevel, PermissionsProtocol, ROLE_AUDIENCE_DERIVATION_SCHEME, } from '../../src/index.js';
|
|
9
12
|
import { createTestValidationStateReader } from '../utils/test-validation-state-reader.js';
|
|
10
13
|
describe('RecordsWrite', () => {
|
|
11
14
|
beforeEach(() => {
|
|
@@ -263,6 +266,91 @@ describe('RecordsWrite', () => {
|
|
|
263
266
|
});
|
|
264
267
|
await expect(createPromise).rejects.toThrow(DwnErrorCode.RecordsWriteCreateMissingSigner);
|
|
265
268
|
});
|
|
269
|
+
it('should reject if both encryption and encryptionInput are given', async () => {
|
|
270
|
+
const alice = await TestDataGenerator.generatePersona();
|
|
271
|
+
const dataEncryptionKey = TestDataGenerator.randomBytes(32);
|
|
272
|
+
const dataEncryptionInitializationVector = TestDataGenerator.randomBytes(16);
|
|
273
|
+
const publicKey = alice.encryptionKeyPair.publicJwk;
|
|
274
|
+
const encryptionInput = {
|
|
275
|
+
initializationVector: dataEncryptionInitializationVector,
|
|
276
|
+
key: dataEncryptionKey,
|
|
277
|
+
keyEncryptionInputs: [{
|
|
278
|
+
derivationScheme: KeyDerivationScheme.ProtocolPath,
|
|
279
|
+
keyId: await Encryption.getKeyId(publicKey),
|
|
280
|
+
publicKey,
|
|
281
|
+
}],
|
|
282
|
+
};
|
|
283
|
+
const encryptedWrite = await RecordsWrite.create({
|
|
284
|
+
data: TestDataGenerator.randomBytes(32),
|
|
285
|
+
dataFormat: 'application/octet-stream',
|
|
286
|
+
encryptionInput,
|
|
287
|
+
protocol: 'https://example.com/protocol',
|
|
288
|
+
protocolPath: 'message',
|
|
289
|
+
signer: Jws.createSigner(alice),
|
|
290
|
+
});
|
|
291
|
+
const createPromise = RecordsWrite.create({
|
|
292
|
+
data: TestDataGenerator.randomBytes(32),
|
|
293
|
+
dataFormat: 'application/octet-stream',
|
|
294
|
+
encryption: encryptedWrite.message.encryption,
|
|
295
|
+
encryptionInput,
|
|
296
|
+
protocol: 'https://example.com/protocol',
|
|
297
|
+
protocolPath: 'message',
|
|
298
|
+
signer: Jws.createSigner(alice),
|
|
299
|
+
});
|
|
300
|
+
await expect(createPromise).rejects.toThrow(DwnErrorCode.RecordsWriteCreateEncryptionAndEncryptionInputMutuallyExclusive);
|
|
301
|
+
});
|
|
302
|
+
it('should reject encrypted messages whose initializationVector has the wrong decoded length', async () => {
|
|
303
|
+
const alice = await TestDataGenerator.generatePersona();
|
|
304
|
+
const publicKey = alice.encryptionKeyPair.publicJwk;
|
|
305
|
+
const recordsWrite = await RecordsWrite.create({
|
|
306
|
+
data: TestDataGenerator.randomBytes(32),
|
|
307
|
+
dataFormat: 'application/octet-stream',
|
|
308
|
+
encryptionInput: {
|
|
309
|
+
initializationVector: TestDataGenerator.randomBytes(16),
|
|
310
|
+
key: TestDataGenerator.randomBytes(32),
|
|
311
|
+
keyEncryptionInputs: [{
|
|
312
|
+
derivationScheme: KeyDerivationScheme.ProtocolPath,
|
|
313
|
+
keyId: await Encryption.getKeyId(publicKey),
|
|
314
|
+
publicKey,
|
|
315
|
+
}],
|
|
316
|
+
},
|
|
317
|
+
protocol: 'https://example.com/protocol',
|
|
318
|
+
protocolPath: 'message',
|
|
319
|
+
signer: Jws.createSigner(alice),
|
|
320
|
+
});
|
|
321
|
+
const message = structuredClone(recordsWrite.message);
|
|
322
|
+
message.encryption.initializationVector = Encoder.bytesToBase64Url(TestDataGenerator.randomBytes(15));
|
|
323
|
+
await expect(RecordsWrite.parse(message)).rejects.toThrow(DwnErrorCode.RecordsWriteValidateIntegrityEncryptionInitializationVectorInvalid);
|
|
324
|
+
});
|
|
325
|
+
it('should create and parse encrypted messages with roleAudience key encryption entries', async () => {
|
|
326
|
+
const alice = await TestDataGenerator.generatePersona();
|
|
327
|
+
const publicKey = alice.encryptionKeyPair.publicJwk;
|
|
328
|
+
const recordsWrite = await RecordsWrite.create({
|
|
329
|
+
data: TestDataGenerator.randomBytes(32),
|
|
330
|
+
dataFormat: 'application/octet-stream',
|
|
331
|
+
encryptionInput: {
|
|
332
|
+
initializationVector: TestDataGenerator.randomBytes(16),
|
|
333
|
+
key: TestDataGenerator.randomBytes(32),
|
|
334
|
+
keyEncryptionInputs: [{
|
|
335
|
+
derivationScheme: ROLE_AUDIENCE_DERIVATION_SCHEME,
|
|
336
|
+
epoch: 1,
|
|
337
|
+
keyId: await Encryption.getKeyId(publicKey),
|
|
338
|
+
protocol: 'https://example.com/protocol',
|
|
339
|
+
publicKey,
|
|
340
|
+
role: 'thread/member',
|
|
341
|
+
}],
|
|
342
|
+
},
|
|
343
|
+
protocol: 'https://example.com/protocol',
|
|
344
|
+
protocolPath: 'message',
|
|
345
|
+
signer: Jws.createSigner(alice),
|
|
346
|
+
});
|
|
347
|
+
await RecordsWrite.parse(recordsWrite.message);
|
|
348
|
+
const keyEncryption = recordsWrite.message.encryption.keyEncryption[0];
|
|
349
|
+
expect(keyEncryption.derivationScheme).toBe(ROLE_AUDIENCE_DERIVATION_SCHEME);
|
|
350
|
+
expect('epoch' in keyEncryption && keyEncryption.epoch).toBe(1);
|
|
351
|
+
expect('protocol' in keyEncryption && keyEncryption.protocol).toBe('https://example.com/protocol');
|
|
352
|
+
expect('role' in keyEncryption && keyEncryption.role).toBe('thread/member');
|
|
353
|
+
});
|
|
266
354
|
});
|
|
267
355
|
describe('createFrom()', () => {
|
|
268
356
|
it('should create a RecordsWrite with `published` set to `true` with just `publishedDate` given', async () => {
|
|
@@ -305,6 +393,75 @@ describe('RecordsWrite', () => {
|
|
|
305
393
|
});
|
|
306
394
|
expect(write2.message.descriptor.tags).toBeUndefined();
|
|
307
395
|
});
|
|
396
|
+
it('should attach encryption metadata when encryptionInput is given', async () => {
|
|
397
|
+
const { author, recordsWrite } = await TestDataGenerator.generateRecordsWrite();
|
|
398
|
+
const plaintext = TestDataGenerator.randomBytes(32);
|
|
399
|
+
const dataEncryptionKey = TestDataGenerator.randomBytes(32);
|
|
400
|
+
const dataEncryptionInitializationVector = TestDataGenerator.randomBytes(16);
|
|
401
|
+
const encryptedData = await Encryption.encrypt(ContentEncryptionAlgorithm.A256CTR, dataEncryptionKey, dataEncryptionInitializationVector, plaintext);
|
|
402
|
+
const publicKey = author.encryptionKeyPair.publicJwk;
|
|
403
|
+
const keyId = await Encryption.getKeyId(publicKey);
|
|
404
|
+
const encryptionInput = {
|
|
405
|
+
initializationVector: dataEncryptionInitializationVector,
|
|
406
|
+
key: dataEncryptionKey,
|
|
407
|
+
keyEncryptionInputs: [{
|
|
408
|
+
derivationScheme: KeyDerivationScheme.ProtocolPath,
|
|
409
|
+
keyId,
|
|
410
|
+
publicKey,
|
|
411
|
+
}],
|
|
412
|
+
};
|
|
413
|
+
const write = await RecordsWrite.createFrom({
|
|
414
|
+
recordsWriteMessage: recordsWrite.message,
|
|
415
|
+
data: encryptedData,
|
|
416
|
+
encryptionInput,
|
|
417
|
+
signer: Jws.createSigner(author),
|
|
418
|
+
});
|
|
419
|
+
expect(write.message.encryption).toBeDefined();
|
|
420
|
+
expect(write.message.encryption.keyEncryption).toHaveLength(1);
|
|
421
|
+
expect(write.message.encryption.keyEncryption[0].keyId).toBe(keyId);
|
|
422
|
+
expect(write.signaturePayload.encryptionCid).toBeDefined();
|
|
423
|
+
});
|
|
424
|
+
it('should preserve encryption metadata when updating without new data', async () => {
|
|
425
|
+
const alice = await TestDataGenerator.generatePersona();
|
|
426
|
+
const plaintext = TestDataGenerator.randomBytes(32);
|
|
427
|
+
const dataEncryptionKey = TestDataGenerator.randomBytes(32);
|
|
428
|
+
const dataEncryptionInitializationVector = TestDataGenerator.randomBytes(16);
|
|
429
|
+
const encryptedData = await Encryption.encrypt(ContentEncryptionAlgorithm.A256CTR, dataEncryptionKey, dataEncryptionInitializationVector, plaintext);
|
|
430
|
+
const protocol = 'https://example.com/protocol';
|
|
431
|
+
const protocolPath = 'message';
|
|
432
|
+
const rootKey = {
|
|
433
|
+
derivedPrivateKey: alice.encryptionKeyPair.privateJwk,
|
|
434
|
+
derivationScheme: KeyDerivationScheme.ProtocolPath,
|
|
435
|
+
rootKeyId: 'unused',
|
|
436
|
+
};
|
|
437
|
+
const publicKey = await HdKey.derivePublicKey(rootKey, [KeyDerivationScheme.ProtocolPath, protocol, protocolPath]);
|
|
438
|
+
const encryptionInput = {
|
|
439
|
+
initializationVector: dataEncryptionInitializationVector,
|
|
440
|
+
key: dataEncryptionKey,
|
|
441
|
+
keyEncryptionInputs: [{
|
|
442
|
+
derivationScheme: KeyDerivationScheme.ProtocolPath,
|
|
443
|
+
keyId: await Encryption.getKeyId(publicKey),
|
|
444
|
+
publicKey,
|
|
445
|
+
}],
|
|
446
|
+
};
|
|
447
|
+
const initialWrite = await RecordsWrite.create({
|
|
448
|
+
data: encryptedData,
|
|
449
|
+
dataFormat: 'application/octet-stream',
|
|
450
|
+
encryptionInput,
|
|
451
|
+
protocol,
|
|
452
|
+
protocolPath,
|
|
453
|
+
signer: Jws.createSigner(alice),
|
|
454
|
+
});
|
|
455
|
+
const updateWrite = await RecordsWrite.createFrom({
|
|
456
|
+
recordsWriteMessage: initialWrite.message,
|
|
457
|
+
signer: Jws.createSigner(alice),
|
|
458
|
+
tags: { edited: true },
|
|
459
|
+
});
|
|
460
|
+
expect(updateWrite.message.encryption).toEqual(initialWrite.message.encryption);
|
|
461
|
+
expect(updateWrite.signaturePayload.encryptionCid).toBe(initialWrite.signaturePayload.encryptionCid);
|
|
462
|
+
const decryptedStream = await Records.decrypt(updateWrite.message, rootKey, DataStream.fromBytes(encryptedData));
|
|
463
|
+
expect(await DataStream.toBytes(decryptedStream)).toEqual(plaintext);
|
|
464
|
+
});
|
|
308
465
|
});
|
|
309
466
|
describe('parse()', () => {
|
|
310
467
|
it('should invoke JSON schema validation when parsing a RecordsWrite', async () => {
|
|
@@ -449,8 +606,9 @@ describe('RecordsWrite', () => {
|
|
|
449
606
|
describe('encryptSymmetricEncryptionKey()', () => {
|
|
450
607
|
it('should replace encryption property by default', async () => {
|
|
451
608
|
const alice = await TestDataGenerator.generatePersona();
|
|
609
|
+
const bob = await TestDataGenerator.generatePersona();
|
|
452
610
|
const dataEncryptionKey = TestDataGenerator.randomBytes(32);
|
|
453
|
-
const dataEncryptionIV = TestDataGenerator.randomBytes(
|
|
611
|
+
const dataEncryptionIV = TestDataGenerator.randomBytes(16);
|
|
454
612
|
const recordsWrite = await RecordsWrite.create({
|
|
455
613
|
signer: Jws.createSigner(alice),
|
|
456
614
|
protocol: 'https://example.com/protocol',
|
|
@@ -463,170 +621,32 @@ describe('RecordsWrite', () => {
|
|
|
463
621
|
const encryptionInput1 = {
|
|
464
622
|
initializationVector: dataEncryptionIV,
|
|
465
623
|
key: dataEncryptionKey,
|
|
466
|
-
authenticationTag: TestDataGenerator.randomBytes(16),
|
|
467
624
|
keyEncryptionInputs: [{
|
|
468
|
-
|
|
625
|
+
keyId: await Encryption.getKeyId(alice.encryptionKeyPair.publicJwk),
|
|
469
626
|
publicKey: alice.encryptionKeyPair.publicJwk,
|
|
470
627
|
derivationScheme: KeyDerivationScheme.ProtocolPath,
|
|
471
628
|
}],
|
|
472
629
|
};
|
|
473
630
|
await recordsWrite.encryptSymmetricEncryptionKey(encryptionInput1);
|
|
474
631
|
expect(recordsWrite['_message'].encryption).toBeDefined();
|
|
475
|
-
expect(recordsWrite['_message'].encryption.
|
|
476
|
-
expect(recordsWrite['_message'].encryption.
|
|
632
|
+
expect(recordsWrite['_message'].encryption.keyEncryption).toHaveLength(1);
|
|
633
|
+
expect(recordsWrite['_message'].encryption.keyEncryption[0].derivationScheme).toBe('protocolPath');
|
|
477
634
|
// Second encryption (replace mode) — should overwrite
|
|
478
635
|
const encryptionInput2 = {
|
|
479
636
|
initializationVector: dataEncryptionIV,
|
|
480
637
|
key: dataEncryptionKey,
|
|
481
|
-
authenticationTag: TestDataGenerator.randomBytes(16),
|
|
482
|
-
keyEncryptionInputs: [{
|
|
483
|
-
publicKeyId: alice.keyId,
|
|
484
|
-
publicKey: alice.encryptionKeyPair.publicJwk,
|
|
485
|
-
derivationScheme: KeyDerivationScheme.ProtocolContext,
|
|
486
|
-
}],
|
|
487
|
-
};
|
|
488
|
-
await recordsWrite.encryptSymmetricEncryptionKey(encryptionInput2);
|
|
489
|
-
// Should have replaced — only 1 entry with ProtocolContext scheme
|
|
490
|
-
expect(recordsWrite['_message'].encryption.recipients).toHaveLength(1);
|
|
491
|
-
expect(recordsWrite['_message'].encryption.recipients[0].header.derivationScheme).toBe('protocolContext');
|
|
492
|
-
});
|
|
493
|
-
it('should append recipients when append option is true', async () => {
|
|
494
|
-
const alice = await TestDataGenerator.generatePersona();
|
|
495
|
-
const dataEncryptionKey = TestDataGenerator.randomBytes(32);
|
|
496
|
-
const dataEncryptionIV = TestDataGenerator.randomBytes(12);
|
|
497
|
-
const recordsWrite = await RecordsWrite.create({
|
|
498
|
-
signer: Jws.createSigner(alice),
|
|
499
|
-
protocol: 'https://example.com/protocol',
|
|
500
|
-
protocolPath: 'test',
|
|
501
|
-
schema: 'https://example.com/schema',
|
|
502
|
-
dataFormat: 'application/octet-stream',
|
|
503
|
-
data: TestDataGenerator.randomBytes(100),
|
|
504
|
-
});
|
|
505
|
-
// First encryption — ProtocolPath
|
|
506
|
-
const encryptionInput1 = {
|
|
507
|
-
initializationVector: dataEncryptionIV,
|
|
508
|
-
key: dataEncryptionKey,
|
|
509
|
-
authenticationTag: TestDataGenerator.randomBytes(16),
|
|
510
638
|
keyEncryptionInputs: [{
|
|
511
|
-
|
|
512
|
-
publicKey:
|
|
639
|
+
keyId: await Encryption.getKeyId(bob.encryptionKeyPair.publicJwk),
|
|
640
|
+
publicKey: bob.encryptionKeyPair.publicJwk,
|
|
513
641
|
derivationScheme: KeyDerivationScheme.ProtocolPath,
|
|
514
642
|
}],
|
|
515
643
|
};
|
|
516
|
-
await recordsWrite.encryptSymmetricEncryptionKey(
|
|
517
|
-
|
|
518
|
-
const originalProtected = recordsWrite['_message'].encryption.protected;
|
|
519
|
-
// Second encryption with append — ProtocolContext
|
|
520
|
-
const encryptionInput2 = {
|
|
521
|
-
initializationVector: dataEncryptionIV,
|
|
522
|
-
key: dataEncryptionKey,
|
|
523
|
-
authenticationTag: TestDataGenerator.randomBytes(16),
|
|
524
|
-
keyEncryptionInputs: [{
|
|
525
|
-
publicKeyId: alice.keyId,
|
|
526
|
-
publicKey: alice.encryptionKeyPair.publicJwk,
|
|
527
|
-
derivationScheme: KeyDerivationScheme.ProtocolContext,
|
|
528
|
-
}],
|
|
529
|
-
};
|
|
530
|
-
await recordsWrite.encryptSymmetricEncryptionKey(encryptionInput2, { append: true });
|
|
531
|
-
// Should have both entries
|
|
644
|
+
await recordsWrite.encryptSymmetricEncryptionKey(encryptionInput2);
|
|
645
|
+
// Should have replaced — only Bob's entry remains
|
|
532
646
|
const encryption = recordsWrite['_message'].encryption;
|
|
533
|
-
expect(encryption.
|
|
534
|
-
expect(encryption.
|
|
535
|
-
expect(encryption.
|
|
536
|
-
// Original IV and protected header should be preserved
|
|
537
|
-
expect(encryption.iv).toBe(originalIV);
|
|
538
|
-
expect(encryption.protected).toBe(originalProtected);
|
|
539
|
-
// ProtocolContext entry should have derivedPublicKey
|
|
540
|
-
expect(encryption.recipients[1].header.derivedPublicKey).toBeDefined();
|
|
541
|
-
// Authorization was already wiped by the first (non-append) call, so
|
|
542
|
-
// append mode preserves whatever state exists — which is undefined here.
|
|
543
|
-
// When starting from a parsed/signed message (the signAsOwner test
|
|
544
|
-
// below), authorization IS preserved by append mode.
|
|
545
|
-
expect(recordsWrite['_message'].authorization).toBeUndefined();
|
|
546
|
-
});
|
|
547
|
-
it('should allow signAsOwner after appending an owner recipient', async () => {
|
|
548
|
-
// Simulates the cross-DWN scenario: Bob authors a record, Alice (owner)
|
|
549
|
-
// appends a ProtocolContext recipient entry, then signs as owner.
|
|
550
|
-
const alice = await TestDataGenerator.generatePersona();
|
|
551
|
-
const bob = await TestDataGenerator.generatePersona();
|
|
552
|
-
const dataEncryptionKey = TestDataGenerator.randomBytes(32);
|
|
553
|
-
const dataEncryptionIV = TestDataGenerator.randomBytes(12);
|
|
554
|
-
// Bob creates and signs the record
|
|
555
|
-
const recordsWrite = await RecordsWrite.create({
|
|
556
|
-
signer: Jws.createSigner(bob),
|
|
557
|
-
protocol: 'https://example.com/protocol',
|
|
558
|
-
protocolPath: 'thread',
|
|
559
|
-
schema: 'https://example.com/schema',
|
|
560
|
-
dataFormat: 'application/octet-stream',
|
|
561
|
-
data: TestDataGenerator.randomBytes(100),
|
|
562
|
-
});
|
|
563
|
-
// Bob encrypts with ProtocolPath, then re-signs
|
|
564
|
-
const encryptionInput1 = {
|
|
565
|
-
initializationVector: dataEncryptionIV,
|
|
566
|
-
key: dataEncryptionKey,
|
|
567
|
-
authenticationTag: TestDataGenerator.randomBytes(16),
|
|
568
|
-
keyEncryptionInputs: [{
|
|
569
|
-
publicKeyId: alice.keyId,
|
|
570
|
-
publicKey: alice.encryptionKeyPair.publicJwk,
|
|
571
|
-
derivationScheme: KeyDerivationScheme.ProtocolPath,
|
|
572
|
-
}],
|
|
573
|
-
};
|
|
574
|
-
await recordsWrite.encryptSymmetricEncryptionKey(encryptionInput1);
|
|
575
|
-
await recordsWrite.sign({ signer: Jws.createSigner(bob) });
|
|
576
|
-
expect(recordsWrite.author).toBe(bob.did);
|
|
577
|
-
expect(recordsWrite['_message'].authorization).toBeDefined();
|
|
578
|
-
// Simulate: Alice parses Bob's message and appends ProtocolContext
|
|
579
|
-
const parsed = await RecordsWrite.parse(recordsWrite.message);
|
|
580
|
-
expect(parsed.author).toBe(bob.did);
|
|
581
|
-
const encryptionInput2 = {
|
|
582
|
-
initializationVector: dataEncryptionIV,
|
|
583
|
-
key: dataEncryptionKey,
|
|
584
|
-
authenticationTag: TestDataGenerator.randomBytes(16),
|
|
585
|
-
keyEncryptionInputs: [{
|
|
586
|
-
publicKeyId: alice.keyId,
|
|
587
|
-
publicKey: alice.encryptionKeyPair.publicJwk,
|
|
588
|
-
derivationScheme: KeyDerivationScheme.ProtocolContext,
|
|
589
|
-
}],
|
|
590
|
-
};
|
|
591
|
-
await parsed.encryptSymmetricEncryptionKey(encryptionInput2, { append: true });
|
|
592
|
-
// Author and authorization should be preserved after append
|
|
593
|
-
expect(parsed.author).toBe(bob.did);
|
|
594
|
-
expect(parsed['_message'].authorization).toBeDefined();
|
|
595
|
-
// Alice signs as owner — should NOT throw
|
|
596
|
-
await parsed.signAsOwner(Jws.createSigner(alice));
|
|
597
|
-
expect(parsed.owner).toBe(alice.did);
|
|
598
|
-
expect(parsed['_message'].authorization.ownerSignature).toBeDefined();
|
|
599
|
-
// Both recipient entries should be present
|
|
600
|
-
const encryption = parsed['_message'].encryption;
|
|
601
|
-
expect(encryption.recipients).toHaveLength(2);
|
|
602
|
-
expect(encryption.recipients[0].header.derivationScheme).toBe('protocolPath');
|
|
603
|
-
expect(encryption.recipients[1].header.derivationScheme).toBe('protocolContext');
|
|
604
|
-
// validateIntegrity should pass — the stale encryptionCid in the
|
|
605
|
-
// author's signature is allowed when ownerSignature is present
|
|
606
|
-
await parsed['validateIntegrity']();
|
|
607
|
-
});
|
|
608
|
-
it('should throw when append is true but encryption does not exist', async () => {
|
|
609
|
-
const alice = await TestDataGenerator.generatePersona();
|
|
610
|
-
const dataEncryptionKey = TestDataGenerator.randomBytes(32);
|
|
611
|
-
const dataEncryptionIV = TestDataGenerator.randomBytes(12);
|
|
612
|
-
const recordsWrite = await RecordsWrite.create({
|
|
613
|
-
signer: Jws.createSigner(alice),
|
|
614
|
-
protocol: 'https://example.com/protocol',
|
|
615
|
-
protocolPath: 'test',
|
|
616
|
-
dataFormat: 'application/octet-stream',
|
|
617
|
-
data: TestDataGenerator.randomBytes(100),
|
|
618
|
-
});
|
|
619
|
-
const encryptionInput = {
|
|
620
|
-
initializationVector: dataEncryptionIV,
|
|
621
|
-
key: dataEncryptionKey,
|
|
622
|
-
authenticationTag: TestDataGenerator.randomBytes(16),
|
|
623
|
-
keyEncryptionInputs: [{
|
|
624
|
-
publicKeyId: alice.keyId,
|
|
625
|
-
publicKey: alice.encryptionKeyPair.publicJwk,
|
|
626
|
-
derivationScheme: KeyDerivationScheme.ProtocolPath,
|
|
627
|
-
}],
|
|
628
|
-
};
|
|
629
|
-
await expect(recordsWrite.encryptSymmetricEncryptionKey(encryptionInput, { append: true })).rejects.toThrow(DwnErrorCode.RecordsWriteMissingEncryption);
|
|
647
|
+
expect(encryption.keyEncryption).toHaveLength(1);
|
|
648
|
+
expect(encryption.keyEncryption[0].derivationScheme).toBe('protocolPath');
|
|
649
|
+
expect(encryption.keyEncryption[0].keyId).toBe(await Encryption.getKeyId(bob.encryptionKeyPair.publicJwk));
|
|
630
650
|
});
|
|
631
651
|
});
|
|
632
652
|
});
|