@digitaldefiance/ecies-lib 4.9.1 → 4.10.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/package.json +1 -1
- package/src/interfaces/index.d.ts +1 -0
- package/src/interfaces/index.d.ts.map +1 -1
- package/src/interfaces/member.d.ts +2 -0
- package/src/interfaces/member.d.ts.map +1 -1
- package/src/lib/id-providers/index.d.ts +67 -0
- package/src/lib/id-providers/index.d.ts.map +1 -1
- package/src/lib/id-providers/index.js +67 -0
- package/src/lib/id-providers/index.js.map +1 -1
- package/src/lib/voting/audit.d.ts +5 -1
- package/src/lib/voting/audit.d.ts.map +1 -1
- package/src/lib/voting/audit.js +2 -7
- package/src/lib/voting/audit.js.map +1 -1
- package/src/lib/voting/bulletin-board.d.ts +11 -1
- package/src/lib/voting/bulletin-board.d.ts.map +1 -1
- package/src/lib/voting/bulletin-board.js +21 -15
- package/src/lib/voting/bulletin-board.js.map +1 -1
- package/src/lib/voting/event-logger.d.ts +12 -1
- package/src/lib/voting/event-logger.d.ts.map +1 -1
- package/src/lib/voting/event-logger.js +17 -12
- package/src/lib/voting/event-logger.js.map +1 -1
- package/src/lib/voting/factory.d.ts +4 -0
- package/src/lib/voting/factory.d.ts.map +1 -1
- package/src/lib/voting/factory.js +2 -7
- package/src/lib/voting/factory.js.map +1 -1
- package/src/lib/voting/poll-core.d.ts.map +1 -1
- package/src/lib/voting/poll-core.js +2 -3
- package/src/lib/voting/poll-core.js.map +1 -1
- package/src/member.d.ts +2 -0
- package/src/member.d.ts.map +1 -1
- package/src/member.js +19 -16
- package/src/member.js.map +1 -1
- package/src/services/ecies/service.d.ts +36 -0
- package/src/services/ecies/service.d.ts.map +1 -1
- package/src/services/ecies/service.js +128 -2
- package/src/services/ecies/service.js.map +1 -1
- package/src/test-mocks/mock-frontend-member.d.ts +2 -0
- package/src/test-mocks/mock-frontend-member.d.ts.map +1 -1
- package/src/test-mocks/mock-frontend-member.js +4 -0
- package/src/test-mocks/mock-frontend-member.js.map +1 -1
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAClE,mBAAmB,UAAU,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAClE,mBAAmB,UAAU,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -6,6 +6,7 @@ import type { SecureBuffer } from '../secure-buffer';
|
|
|
6
6
|
import type { SecureString } from '../secure-string';
|
|
7
7
|
import type { IECIESConstants } from './ecies-consts';
|
|
8
8
|
import type { IEncryptedChunk } from './encrypted-chunk';
|
|
9
|
+
import type { IIdProvider } from './id-provider';
|
|
9
10
|
import type { PlatformID } from './platform-id';
|
|
10
11
|
/**
|
|
11
12
|
* Generic interface representing a member with cryptographic capabilities.
|
|
@@ -26,6 +27,7 @@ export interface IMember<TID extends PlatformID = Uint8Array, TSignature extends
|
|
|
26
27
|
readonly creatorId: TID;
|
|
27
28
|
readonly dateCreated: Date;
|
|
28
29
|
readonly dateUpdated: Date;
|
|
30
|
+
readonly idProvider: IIdProvider<TID>;
|
|
29
31
|
readonly privateKey: SecureBuffer | undefined;
|
|
30
32
|
readonly wallet: Wallet;
|
|
31
33
|
get walletOptional(): Wallet | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/member.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/member.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,OAAO,CACtB,GAAG,SAAS,UAAU,GAAG,UAAU,EACnC,UAAU,SAAS,UAAU,GAAG,UAAU;IAG1C,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAG3B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAGtC,QAAQ,CAAC,UAAU,EAAE,YAAY,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAGxB,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAAC;IAGzC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAGvC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IAGtC,gBAAgB,IAAI,IAAI,CAAC;IACzB,YAAY,IAAI,IAAI,CAAC;IACrB,yBAAyB,IAAI,IAAI,CAAC;IAClC,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACxE,cAAc,CAAC,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC;IAG/C,cAAc,CACZ,eAAe,EAAE,SAAS,EAC1B,gBAAgB,CAAC,EAAE,UAAU,GAC5B,IAAI,CAAC;IACR,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,sBAAsB,IAAI,IAAI,CAAC;IAG/B,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IACvC,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IACzD,eAAe,CACb,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC;IAGX,iBAAiB,CACf,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,EAC9D,OAAO,CAAC,EAAE;QACR,kBAAkB,CAAC,EAAE,UAAU,CAAC;QAChC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;YACtB,cAAc,EAAE,MAAM,CAAC;YACvB,eAAe,EAAE,MAAM,CAAC;SACzB,KAAK,IAAI,CAAC;QACX,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GACA,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAElD,iBAAiB,CACf,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,EAC9D,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;YACtB,cAAc,EAAE,MAAM,CAAC;YACvB,eAAe,EAAE,MAAM,CAAC;SACzB,KAAK,IAAI,CAAC;QACX,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GACA,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE7C,WAAW,CACT,IAAI,EAAE,MAAM,GAAG,UAAU,EACzB,kBAAkB,CAAC,EAAE,UAAU,GAC9B,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IAEpC,WAAW,CAAC,aAAa,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IAGzE,MAAM,IAAI,MAAM,CAAC;IACjB,OAAO,IAAI,IAAI,CAAC;CACjB"}
|
|
@@ -8,6 +8,66 @@
|
|
|
8
8
|
* - Legacy32Byte: Backward compatible 32-byte IDs (deprecated)
|
|
9
9
|
* - Custom: User-defined byte length and validation
|
|
10
10
|
*
|
|
11
|
+
* ## ID Provider Architecture
|
|
12
|
+
*
|
|
13
|
+
* The library uses a hierarchical ID provider system with strong type safety:
|
|
14
|
+
*
|
|
15
|
+
* 1. **Global Default**: `Constants.idProvider` provides the system-wide default (ObjectIdProvider)
|
|
16
|
+
* 2. **Service Configuration**: `ECIESService<TID>` can be configured with a custom idProvider
|
|
17
|
+
* 3. **Type Safety**: Service validates that idProvider TID type matches Member TID at construction
|
|
18
|
+
* 4. **Member Usage**: `Member` instances use their service's configured idProvider
|
|
19
|
+
* 5. **Voting System**: Voting components use the Member's idProvider for consistency
|
|
20
|
+
*
|
|
21
|
+
* ### Enhanced Type Safety (v3.8+)
|
|
22
|
+
*
|
|
23
|
+
* The ECIESService now provides stronger type guarantees:
|
|
24
|
+
* - `service.idProvider` returns `IIdProvider<TID>` with correct typing
|
|
25
|
+
* - Construction-time validation ensures idProvider compatibility with TID type
|
|
26
|
+
* - Enhanced validation tests all idProvider methods for correctness
|
|
27
|
+
*
|
|
28
|
+
* ### Configuration Examples
|
|
29
|
+
*
|
|
30
|
+
* ```typescript
|
|
31
|
+
* import { ObjectIdProvider, GuidV4Provider, ECIESService, Member } from './lib';
|
|
32
|
+
* import { ObjectId } from 'bson';
|
|
33
|
+
*
|
|
34
|
+
* // Use default ObjectID provider (12 bytes) with strong typing
|
|
35
|
+
* const defaultService = new ECIESService<ObjectId>();
|
|
36
|
+
* const objectIdMember = Member.newMember(defaultService, ...);
|
|
37
|
+
* // objectIdMember.idBytes.length === 12
|
|
38
|
+
* // defaultService.idProvider is typed as IIdProvider<ObjectId>
|
|
39
|
+
*
|
|
40
|
+
* // Use GUID provider (16 bytes) with type safety
|
|
41
|
+
* const guidConfig = createRuntimeConfiguration({
|
|
42
|
+
* idProvider: new GuidV4Provider()
|
|
43
|
+
* });
|
|
44
|
+
* const guidService = new ECIESService<Uint8Array>(guidConfig);
|
|
45
|
+
* const guidMember = Member.newMember(guidService, ...);
|
|
46
|
+
* // guidMember.idBytes.length === 16
|
|
47
|
+
* // guidService.idProvider is typed as IIdProvider<Uint8Array>
|
|
48
|
+
*
|
|
49
|
+
* // Voting system uses member's idProvider automatically
|
|
50
|
+
* const poll = PollFactory.create(['Yes', 'No'], VotingMethod.Plurality, guidMember);
|
|
51
|
+
* // poll uses guidMember.idProvider (16-byte GUIDs)
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* ### Validation and Error Handling
|
|
55
|
+
*
|
|
56
|
+
* The service performs comprehensive validation at construction time:
|
|
57
|
+
* - Validates all required idProvider methods exist
|
|
58
|
+
* - Tests generate(), serialize(), deserialize() round-trip
|
|
59
|
+
* - Tests toBytes(), fromBytes() with proper type conversion
|
|
60
|
+
* - Ensures TID type compatibility with idProvider native type
|
|
61
|
+
* - Provides detailed error messages for configuration issues
|
|
62
|
+
*
|
|
63
|
+
* ### Cross-Platform Compatibility
|
|
64
|
+
*
|
|
65
|
+
* When working across browser/Node.js platforms:
|
|
66
|
+
* - Both platforms must use the same idProvider configuration
|
|
67
|
+
* - Serialized data includes ID format information for validation
|
|
68
|
+
* - Member.fromJson() warns if ID length doesn't match current configuration
|
|
69
|
+
* - Enhanced validation catches configuration mismatches early
|
|
70
|
+
*
|
|
11
71
|
* @example
|
|
12
72
|
* ```typescript
|
|
13
73
|
* import { ObjectIdProvider, GuidV4Provider } from './lib/id-providers';
|
|
@@ -19,6 +79,13 @@
|
|
|
19
79
|
* // Use GUIDs (16 bytes)
|
|
20
80
|
* const guidProvider = new GuidV4Provider();
|
|
21
81
|
* const guid = guidProvider.generate();
|
|
82
|
+
*
|
|
83
|
+
* // Service validates configuration at construction
|
|
84
|
+
* try {
|
|
85
|
+
* const service = new ECIESService<ObjectId>(guidConfig); // Type mismatch!
|
|
86
|
+
* } catch (error) {
|
|
87
|
+
* // Enhanced validation catches this early with detailed error message
|
|
88
|
+
* }
|
|
22
89
|
* ```
|
|
23
90
|
*/
|
|
24
91
|
export { CustomIdProvider } from './custom-provider';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyFG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -9,6 +9,66 @@
|
|
|
9
9
|
* - Legacy32Byte: Backward compatible 32-byte IDs (deprecated)
|
|
10
10
|
* - Custom: User-defined byte length and validation
|
|
11
11
|
*
|
|
12
|
+
* ## ID Provider Architecture
|
|
13
|
+
*
|
|
14
|
+
* The library uses a hierarchical ID provider system with strong type safety:
|
|
15
|
+
*
|
|
16
|
+
* 1. **Global Default**: `Constants.idProvider` provides the system-wide default (ObjectIdProvider)
|
|
17
|
+
* 2. **Service Configuration**: `ECIESService<TID>` can be configured with a custom idProvider
|
|
18
|
+
* 3. **Type Safety**: Service validates that idProvider TID type matches Member TID at construction
|
|
19
|
+
* 4. **Member Usage**: `Member` instances use their service's configured idProvider
|
|
20
|
+
* 5. **Voting System**: Voting components use the Member's idProvider for consistency
|
|
21
|
+
*
|
|
22
|
+
* ### Enhanced Type Safety (v3.8+)
|
|
23
|
+
*
|
|
24
|
+
* The ECIESService now provides stronger type guarantees:
|
|
25
|
+
* - `service.idProvider` returns `IIdProvider<TID>` with correct typing
|
|
26
|
+
* - Construction-time validation ensures idProvider compatibility with TID type
|
|
27
|
+
* - Enhanced validation tests all idProvider methods for correctness
|
|
28
|
+
*
|
|
29
|
+
* ### Configuration Examples
|
|
30
|
+
*
|
|
31
|
+
* ```typescript
|
|
32
|
+
* import { ObjectIdProvider, GuidV4Provider, ECIESService, Member } from './lib';
|
|
33
|
+
* import { ObjectId } from 'bson';
|
|
34
|
+
*
|
|
35
|
+
* // Use default ObjectID provider (12 bytes) with strong typing
|
|
36
|
+
* const defaultService = new ECIESService<ObjectId>();
|
|
37
|
+
* const objectIdMember = Member.newMember(defaultService, ...);
|
|
38
|
+
* // objectIdMember.idBytes.length === 12
|
|
39
|
+
* // defaultService.idProvider is typed as IIdProvider<ObjectId>
|
|
40
|
+
*
|
|
41
|
+
* // Use GUID provider (16 bytes) with type safety
|
|
42
|
+
* const guidConfig = createRuntimeConfiguration({
|
|
43
|
+
* idProvider: new GuidV4Provider()
|
|
44
|
+
* });
|
|
45
|
+
* const guidService = new ECIESService<Uint8Array>(guidConfig);
|
|
46
|
+
* const guidMember = Member.newMember(guidService, ...);
|
|
47
|
+
* // guidMember.idBytes.length === 16
|
|
48
|
+
* // guidService.idProvider is typed as IIdProvider<Uint8Array>
|
|
49
|
+
*
|
|
50
|
+
* // Voting system uses member's idProvider automatically
|
|
51
|
+
* const poll = PollFactory.create(['Yes', 'No'], VotingMethod.Plurality, guidMember);
|
|
52
|
+
* // poll uses guidMember.idProvider (16-byte GUIDs)
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* ### Validation and Error Handling
|
|
56
|
+
*
|
|
57
|
+
* The service performs comprehensive validation at construction time:
|
|
58
|
+
* - Validates all required idProvider methods exist
|
|
59
|
+
* - Tests generate(), serialize(), deserialize() round-trip
|
|
60
|
+
* - Tests toBytes(), fromBytes() with proper type conversion
|
|
61
|
+
* - Ensures TID type compatibility with idProvider native type
|
|
62
|
+
* - Provides detailed error messages for configuration issues
|
|
63
|
+
*
|
|
64
|
+
* ### Cross-Platform Compatibility
|
|
65
|
+
*
|
|
66
|
+
* When working across browser/Node.js platforms:
|
|
67
|
+
* - Both platforms must use the same idProvider configuration
|
|
68
|
+
* - Serialized data includes ID format information for validation
|
|
69
|
+
* - Member.fromJson() warns if ID length doesn't match current configuration
|
|
70
|
+
* - Enhanced validation catches configuration mismatches early
|
|
71
|
+
*
|
|
12
72
|
* @example
|
|
13
73
|
* ```typescript
|
|
14
74
|
* import { ObjectIdProvider, GuidV4Provider } from './lib/id-providers';
|
|
@@ -20,6 +80,13 @@
|
|
|
20
80
|
* // Use GUIDs (16 bytes)
|
|
21
81
|
* const guidProvider = new GuidV4Provider();
|
|
22
82
|
* const guid = guidProvider.generate();
|
|
83
|
+
*
|
|
84
|
+
* // Service validates configuration at construction
|
|
85
|
+
* try {
|
|
86
|
+
* const service = new ECIESService<ObjectId>(guidConfig); // Type mismatch!
|
|
87
|
+
* } catch (error) {
|
|
88
|
+
* // Enhanced validation catches this early with detailed error message
|
|
89
|
+
* }
|
|
23
90
|
* ```
|
|
24
91
|
*/
|
|
25
92
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/index.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyFG;;;AAEH,qDAAqD;AAA5C,mHAAA,gBAAgB,OAAA;AACzB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,wDAAqD;AAA5C,kHAAA,cAAc,OAAA;AACvB,6DAA6D;AAApD,2HAAA,oBAAoB,OAAA"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Immutable Audit Log for Government-Grade Voting
|
|
3
|
+
* Implements requirement 1.1: Cryptographically signed, hash-chained audit trail
|
|
4
|
+
*/
|
|
1
5
|
import { PlatformID } from '../../interfaces';
|
|
2
6
|
import type { IMember } from '../../interfaces';
|
|
3
7
|
import { AuditEntry } from './interfaces/audit-entry';
|
|
@@ -39,7 +43,7 @@ export declare class ImmutableAuditLog<TID extends PlatformID> implements AuditL
|
|
|
39
43
|
/**
|
|
40
44
|
* Convert an ID to bytes safely.
|
|
41
45
|
* If id is already Uint8Array, return it directly.
|
|
42
|
-
* Otherwise, use the idProvider to convert.
|
|
46
|
+
* Otherwise, use the authority's idProvider to convert.
|
|
43
47
|
*/
|
|
44
48
|
private idToBytes;
|
|
45
49
|
private toHex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/audit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD;;GAEG;AACH,qBAAa,iBAAiB,CAC5B,GAAG,SAAS,UAAU,CACtB,YAAW,QAAQ,CAAC,GAAG,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAK;gBAET,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC;IAInC;;OAEG;IACH,iBAAiB,CACf,MAAM,EAAE,GAAG,EACX,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,UAAU,CAAC,GAAG,CAAC;IASlB;;OAEG;IACH,cAAc,CACZ,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,UAAU,EACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,UAAU,CAAC,GAAG,CAAC;IASlB;;OAEG;IACH,gBAAgB,CACd,MAAM,EAAE,GAAG,EACX,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,UAAU,CAAC,GAAG,CAAC;IASlB,UAAU,IAAI,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE;IAIxC,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE;IAS1D,WAAW,IAAI,OAAO;IA6BtB,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO;IAK5C,OAAO,CAAC,WAAW;IAgCnB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,wBAAwB;IAmBhC,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,WAAW;IAQnB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,KAAK;CAKd;AAGD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC"}
|
package/src/lib/voting/audit.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AuditEventType = exports.ImmutableAuditLog = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Immutable Audit Log for Government-Grade Voting
|
|
6
|
-
* Implements requirement 1.1: Cryptographically signed, hash-chained audit trail
|
|
7
|
-
*/
|
|
8
|
-
const constants_1 = require("../../constants");
|
|
9
4
|
const audit_event_type_1 = require("./enumerations/audit-event-type");
|
|
10
5
|
/**
|
|
11
6
|
* Immutable audit log with cryptographic hash chain
|
|
@@ -181,13 +176,13 @@ class ImmutableAuditLog {
|
|
|
181
176
|
/**
|
|
182
177
|
* Convert an ID to bytes safely.
|
|
183
178
|
* If id is already Uint8Array, return it directly.
|
|
184
|
-
* Otherwise, use the idProvider to convert.
|
|
179
|
+
* Otherwise, use the authority's idProvider to convert.
|
|
185
180
|
*/
|
|
186
181
|
idToBytes(id) {
|
|
187
182
|
if (id instanceof Uint8Array) {
|
|
188
183
|
return id;
|
|
189
184
|
}
|
|
190
|
-
return
|
|
185
|
+
return this.authority.idProvider.toBytes(id);
|
|
191
186
|
}
|
|
192
187
|
toHex(arr) {
|
|
193
188
|
return Array.from(arr)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/audit.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/audit.ts"],"names":[],"mappings":";;;AAMA,sEAAiE;AAIjE;;GAEG;AACH,MAAa,iBAAiB;IAGX,OAAO,GAAsB,EAAE,CAAC;IAChC,SAAS,CAAe;IACjC,QAAQ,GAAG,CAAC,CAAC;IAErB,YAAY,SAAuB;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,iBAAiB,CACf,MAAW,EACX,QAAkC;QAElC,OAAO,IAAI,CAAC,WAAW,CAAC;YACtB,SAAS,EAAE,iCAAc,CAAC,WAAW;YACrC,MAAM;YACN,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YAC9B,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,MAAW,EACX,WAAuB,EACvB,QAAkC;QAElC,OAAO,IAAI,CAAC,WAAW,CAAC;YACtB,SAAS,EAAE,iCAAc,CAAC,QAAQ;YAClC,MAAM;YACN,WAAW;YACX,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,gBAAgB,CACd,MAAW,EACX,QAAkC;QAElC,OAAO,IAAI,CAAC,WAAW,CAAC;YACtB,SAAS,EAAE,iCAAc,CAAC,UAAU;YACpC,MAAM;YACN,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YAC9B,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,iBAAiB,CAAC,MAAW;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,MAAM,CAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CACjB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,SAAS,CAC1D,CACF,CAAC;IACJ,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAE9B,oBAAoB;YACpB,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,mBAAmB;YACnB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,yCAAyC;YACzC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACV,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC/D,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,KAAsB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAEO,WAAW,CACjB,OAGC;QAED,MAAM,YAAY,GAChB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACrB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS;YACjD,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,+BAA+B;QAEzD,MAAM,KAAK,GAAqD;YAC9D,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzB,SAAS,EAAE,IAAI,CAAC,uBAAuB,EAAE;YACzC,YAAY;YACZ,GAAG,OAAO;SACX,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5C,MAAM,UAAU,GAAoB;YAClC,GAAG,KAAK;YACR,SAAS;YACT,SAAS;SACV,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,gBAAgB,CACtB,KAAuD;QAEvD,MAAM,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,wBAAwB,CAC9B,KAAuD;QAEvD,MAAM,KAAK,GAAiB;YAC1B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;YAC5B,KAAK,CAAC,YAAY;SACnB,CAAC;QAEF,IAAI,KAAK,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACrE,IAAI,KAAK,CAAC,QAAQ;YAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEhE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEO,wBAAwB,CAC9B,KAAyC;QAEzC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEO,uBAAuB;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAClE,CAAC;IAEO,UAAU,CAAC,IAAgB;QACjC,sDAAsD;QACtD,2FAA2F;QAC3F,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnD,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;QAED,2BAA2B;QAC3B,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAErC,uCAAuC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACtC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,YAAY,CAAC,CAAS;QAC5B,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEO,YAAY,CAAC,CAAS;QAC5B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAEO,MAAM,CAAC,MAAoB;QACjC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,WAAW,CAAC,CAAa,EAAE,CAAa;QAC9C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,SAAS,CAAC,EAAO;QACvB,IAAI,EAAE,YAAY,UAAU,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,GAAe;QAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;CACF;AAlPD,8CAkPC;AAED,4BAA4B;AAC5B,oEAAiE;AAAxD,kHAAA,cAAc,OAAA"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public Bulletin Board for Government-Grade Voting
|
|
3
|
+
* Implements requirement 1.2: Append-only, publicly verifiable vote publication
|
|
4
|
+
*/
|
|
1
5
|
import type { PlatformID, IMember } from '../../interfaces';
|
|
6
|
+
import { IIdProvider } from '../../interfaces/id-provider';
|
|
2
7
|
import { BulletinBoard } from './interfaces/bulletin-board';
|
|
3
8
|
import { BulletinBoardEntry } from './interfaces/bulletin-board-entry';
|
|
4
9
|
import { TallyProof } from './interfaces/tally-proof';
|
|
@@ -9,8 +14,13 @@ export declare class PublicBulletinBoard<TID extends PlatformID = Uint8Array> im
|
|
|
9
14
|
private readonly entries;
|
|
10
15
|
private readonly tallyProofs;
|
|
11
16
|
private readonly authority;
|
|
17
|
+
private readonly idProvider;
|
|
12
18
|
private sequence;
|
|
13
|
-
constructor(authority: IMember);
|
|
19
|
+
constructor(authority: IMember<TID>, idProvider?: IIdProvider<TID>);
|
|
20
|
+
/**
|
|
21
|
+
* Create a PublicBulletinBoard using the authority's idProvider
|
|
22
|
+
*/
|
|
23
|
+
static fromAuthority<TID extends PlatformID>(authority: IMember<TID>): PublicBulletinBoard<TID>;
|
|
14
24
|
publishVote(pollId: TID, encryptedVote: bigint[], voterIdHash: Uint8Array): BulletinBoardEntry<TID>;
|
|
15
25
|
publishTally(pollId: TID, tallies: bigint[], choices: string[], encryptedVotes: bigint[][]): TallyProof<TID>;
|
|
16
26
|
getEntries(pollId: TID): readonly BulletinBoardEntry<TID>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulletin-board.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/bulletin-board.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bulletin-board.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/bulletin-board.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;GAEG;AACH,qBAAa,mBAAmB,CAC9B,GAAG,SAAS,UAAU,GAAG,UAAU,CACnC,YAAW,aAAa,CAAC,GAAG,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAK;gBAET,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC;IASlE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,SAAS,UAAU,EACzC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,GACtB,mBAAmB,CAAC,GAAG,CAAC;IAI3B,WAAW,CACT,MAAM,EAAE,GAAG,EACX,aAAa,EAAE,MAAM,EAAE,EACvB,WAAW,EAAE,UAAU,GACtB,kBAAkB,CAAC,GAAG,CAAC;IA+B1B,YAAY,CACV,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,cAAc,EAAE,MAAM,EAAE,EAAE,GACzB,UAAU,CAAC,GAAG,CAAC;IAkClB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,SAAS,kBAAkB,CAAC,GAAG,CAAC,EAAE;IAI3D,aAAa,IAAI,SAAS,kBAAkB,CAAC,GAAG,CAAC,EAAE;IAInD,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS;IAIvD,WAAW,CAAC,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,OAAO;IAkBpD,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO;IAajD,gBAAgB,IAAI,OAAO;IAY3B,MAAM,IAAI,UAAU;IAkBpB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,kBAAkB;IAuB1B,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,uBAAuB;IA+B/B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,MAAM;IAoBd,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,KAAK;CAKd"}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PublicBulletinBoard = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Public Bulletin Board for Government-Grade Voting
|
|
6
|
-
* Implements requirement 1.2: Append-only, publicly verifiable vote publication
|
|
7
|
-
*/
|
|
8
|
-
const constants_1 = require("../../constants");
|
|
9
|
-
const Constants = (0, constants_1.getRuntimeConfiguration)();
|
|
10
4
|
/**
|
|
11
5
|
* Append-only public bulletin board with cryptographic verification
|
|
12
6
|
*/
|
|
@@ -14,9 +8,21 @@ class PublicBulletinBoard {
|
|
|
14
8
|
entries = [];
|
|
15
9
|
tallyProofs = new Map();
|
|
16
10
|
authority;
|
|
11
|
+
idProvider;
|
|
17
12
|
sequence = 0;
|
|
18
|
-
constructor(authority) {
|
|
13
|
+
constructor(authority, idProvider) {
|
|
14
|
+
if (!authority) {
|
|
15
|
+
throw new Error('PublicBulletinBoard requires an authority member');
|
|
16
|
+
}
|
|
19
17
|
this.authority = authority;
|
|
18
|
+
// Use provided idProvider or fall back to authority's idProvider
|
|
19
|
+
this.idProvider = idProvider || authority.idProvider;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Create a PublicBulletinBoard using the authority's idProvider
|
|
23
|
+
*/
|
|
24
|
+
static fromAuthority(authority) {
|
|
25
|
+
return new PublicBulletinBoard(authority);
|
|
20
26
|
}
|
|
21
27
|
publishVote(pollId, encryptedVote, voterIdHash) {
|
|
22
28
|
const timestamp = this.getMicrosecondTimestamp();
|
|
@@ -45,7 +51,7 @@ class PublicBulletinBoard {
|
|
|
45
51
|
return entry;
|
|
46
52
|
}
|
|
47
53
|
publishTally(pollId, tallies, choices, encryptedVotes) {
|
|
48
|
-
const pollIdBytes =
|
|
54
|
+
const pollIdBytes = this.idProvider.toBytes(pollId);
|
|
49
55
|
const timestamp = this.getMicrosecondTimestamp();
|
|
50
56
|
const votesHash = this.hashEncryptedVotes(encryptedVotes);
|
|
51
57
|
const decryptionProof = this.generateDecryptionProof(encryptedVotes, tallies);
|
|
@@ -77,7 +83,7 @@ class PublicBulletinBoard {
|
|
|
77
83
|
return Object.freeze([...this.entries]);
|
|
78
84
|
}
|
|
79
85
|
getTallyProof(pollId) {
|
|
80
|
-
return this.tallyProofs.get(this.toHex(
|
|
86
|
+
return this.tallyProofs.get(this.toHex(this.idProvider.toBytes(pollId)));
|
|
81
87
|
}
|
|
82
88
|
verifyEntry(entry) {
|
|
83
89
|
const entryData = this.serializeEntryData({
|
|
@@ -175,7 +181,7 @@ class PublicBulletinBoard {
|
|
|
175
181
|
const parts = [
|
|
176
182
|
this.encodeNumber(data.sequence),
|
|
177
183
|
this.encodeNumber(data.timestamp),
|
|
178
|
-
|
|
184
|
+
this.idProvider.toBytes(data.pollId),
|
|
179
185
|
data.voterIdHash,
|
|
180
186
|
data.merkleRoot,
|
|
181
187
|
];
|
|
@@ -186,7 +192,7 @@ class PublicBulletinBoard {
|
|
|
186
192
|
}
|
|
187
193
|
serializeTallyProof(data) {
|
|
188
194
|
const parts = [
|
|
189
|
-
|
|
195
|
+
this.idProvider.toBytes(data.pollId),
|
|
190
196
|
this.encodeNumber(data.timestamp),
|
|
191
197
|
data.votesHash,
|
|
192
198
|
data.decryptionProof,
|
|
@@ -200,7 +206,7 @@ class PublicBulletinBoard {
|
|
|
200
206
|
return this.concat(parts);
|
|
201
207
|
}
|
|
202
208
|
serializeEntry(entry) {
|
|
203
|
-
const pollIdBytes =
|
|
209
|
+
const pollIdBytes = this.idProvider.toBytes(entry.pollId);
|
|
204
210
|
const parts = [
|
|
205
211
|
this.encodeNumber(entry.sequence),
|
|
206
212
|
this.encodeNumber(entry.timestamp),
|
|
@@ -215,7 +221,7 @@ class PublicBulletinBoard {
|
|
|
215
221
|
return this.concat(parts);
|
|
216
222
|
}
|
|
217
223
|
serializeTallyProofFull(proof) {
|
|
218
|
-
const pollIdBytes =
|
|
224
|
+
const pollIdBytes = this.idProvider.toBytes(proof.pollId);
|
|
219
225
|
const parts = [
|
|
220
226
|
this.encodeNumber(pollIdBytes.length),
|
|
221
227
|
pollIdBytes,
|
|
@@ -294,8 +300,8 @@ class PublicBulletinBoard {
|
|
|
294
300
|
return this.arraysEqual(a, b);
|
|
295
301
|
}
|
|
296
302
|
// For other types, convert to bytes and compare
|
|
297
|
-
const aBytes =
|
|
298
|
-
const bBytes =
|
|
303
|
+
const aBytes = this.idProvider.toBytes(a);
|
|
304
|
+
const bBytes = this.idProvider.toBytes(b);
|
|
299
305
|
return this.arraysEqual(aBytes, bBytes);
|
|
300
306
|
}
|
|
301
307
|
toHex(arr) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulletin-board.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/bulletin-board.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bulletin-board.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/bulletin-board.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Event Logger for Government-Grade Voting
|
|
3
|
+
* Implements requirement 1.3: Comprehensive event logging with microsecond timestamps
|
|
4
|
+
*/
|
|
5
|
+
import type { IMember, PlatformID } from '../../interfaces';
|
|
6
|
+
import { IIdProvider } from '../../interfaces/id-provider';
|
|
2
7
|
import { EventType } from './enumerations/event-type';
|
|
3
8
|
import { EventLogEntry } from './interfaces/event-log-entry';
|
|
4
9
|
import { EventLogger } from './interfaces/event-logger';
|
|
@@ -8,7 +13,13 @@ import { PollConfiguration } from './interfaces/poll-configuration';
|
|
|
8
13
|
*/
|
|
9
14
|
export declare class PollEventLogger<TID extends PlatformID = Uint8Array> implements EventLogger<TID> {
|
|
10
15
|
private readonly events;
|
|
16
|
+
private readonly idProvider;
|
|
11
17
|
private sequence;
|
|
18
|
+
constructor(idProvider: IIdProvider<TID>);
|
|
19
|
+
/**
|
|
20
|
+
* Create a PollEventLogger from a Member (uses the member's idProvider)
|
|
21
|
+
*/
|
|
22
|
+
static fromMember<TID extends PlatformID>(member: IMember<TID>): PollEventLogger<TID>;
|
|
12
23
|
logPollCreated(pollId: TID, creatorId: TID, configuration: PollConfiguration): EventLogEntry<TID>;
|
|
13
24
|
logVoteCast(pollId: TID, voterToken: Uint8Array, metadata?: Record<string, unknown>): EventLogEntry<TID>;
|
|
14
25
|
logPollClosed(pollId: TID, tallyHash: Uint8Array, metadata?: Record<string, unknown>): EventLogEntry<TID>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-logger.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/event-logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-logger.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/voting/event-logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE;;GAEG;AACH,qBAAa,eAAe,CAC1B,GAAG,SAAS,UAAU,GAAG,UAAU,CACnC,YAAW,WAAW,CAAC,GAAG,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAK;gBAET,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC;IAOxC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,UAAU,EACtC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GACnB,eAAe,CAAC,GAAG,CAAC;IAIvB,cAAc,CACZ,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,GAAG,EACd,aAAa,EAAE,iBAAiB,GAC/B,aAAa,CAAC,GAAG,CAAC;IASrB,WAAW,CACT,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,UAAU,EACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,aAAa,CAAC,GAAG,CAAC;IASrB,aAAa,CACX,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,UAAU,EACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,aAAa,CAAC,GAAG,CAAC;IASrB,QAAQ,CACN,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,GAAG,EACX,IAAI,CAAC,EAAE,OAAO,CACZ,IAAI,CACF,aAAa,CAAC,GAAG,CAAC,EAClB,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAClD,CACF,GACA,aAAa,CAAC,GAAG,CAAC;IAQrB,SAAS,IAAI,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE;IAI1C,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE;IAe5D,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE;IAIpE,cAAc,IAAI,OAAO;IASzB,MAAM,IAAI,UAAU;IAYpB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,cAAc;IA2EtB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,KAAK;CAKd;AAGD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EventType = exports.PollEventLogger = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Event Logger for Government-Grade Voting
|
|
6
|
-
* Implements requirement 1.3: Comprehensive event logging with microsecond timestamps
|
|
7
|
-
*/
|
|
8
|
-
const constants_1 = require("../../constants");
|
|
9
4
|
const event_type_1 = require("./enumerations/event-type");
|
|
10
|
-
const Constants = (0, constants_1.getRuntimeConfiguration)();
|
|
11
5
|
/**
|
|
12
6
|
* Comprehensive event logger with sequence tracking
|
|
13
7
|
*/
|
|
14
8
|
class PollEventLogger {
|
|
15
9
|
events = [];
|
|
10
|
+
idProvider;
|
|
16
11
|
sequence = 0;
|
|
12
|
+
constructor(idProvider) {
|
|
13
|
+
if (!idProvider) {
|
|
14
|
+
throw new Error('PollEventLogger requires an idProvider');
|
|
15
|
+
}
|
|
16
|
+
this.idProvider = idProvider;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create a PollEventLogger from a Member (uses the member's idProvider)
|
|
20
|
+
*/
|
|
21
|
+
static fromMember(member) {
|
|
22
|
+
return new PollEventLogger(member.idProvider);
|
|
23
|
+
}
|
|
17
24
|
logPollCreated(pollId, creatorId, configuration) {
|
|
18
25
|
return this.appendEvent({
|
|
19
26
|
eventType: event_type_1.EventType.PollCreated,
|
|
@@ -49,14 +56,12 @@ class PollEventLogger {
|
|
|
49
56
|
return Object.freeze([...this.events]);
|
|
50
57
|
}
|
|
51
58
|
getEventsForPoll(pollId) {
|
|
52
|
-
const pollIdBytes = pollId instanceof Uint8Array
|
|
53
|
-
? pollId
|
|
54
|
-
: Constants.idProvider.toBytes(pollId);
|
|
59
|
+
const pollIdBytes = pollId instanceof Uint8Array ? pollId : this.idProvider.toBytes(pollId);
|
|
55
60
|
const pollIdStr = this.toHex(pollIdBytes);
|
|
56
61
|
return Object.freeze(this.events.filter((e) => {
|
|
57
62
|
const eventPollIdBytes = e.pollId instanceof Uint8Array
|
|
58
63
|
? e.pollId
|
|
59
|
-
:
|
|
64
|
+
: this.idProvider.toBytes(e.pollId);
|
|
60
65
|
return this.toHex(eventPollIdBytes) === pollIdStr;
|
|
61
66
|
}));
|
|
62
67
|
}
|
|
@@ -89,9 +94,9 @@ class PollEventLogger {
|
|
|
89
94
|
return entry;
|
|
90
95
|
}
|
|
91
96
|
serializeEvent(event) {
|
|
92
|
-
const pollIdBytes =
|
|
97
|
+
const pollIdBytes = this.idProvider.toBytes(event.pollId);
|
|
93
98
|
const creatorIdBytes = event.creatorId
|
|
94
|
-
?
|
|
99
|
+
? this.idProvider.toBytes(event.creatorId)
|
|
95
100
|
: undefined;
|
|
96
101
|
const parts = [
|
|
97
102
|
this.encodeNumber(event.sequence),
|