@digitaldefiance/node-ecies-lib 4.8.2 → 4.10.7

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.
Files changed (253) hide show
  1. package/README.md +195 -13
  2. package/package.json +10 -5
  3. package/src/constants.d.ts.map +1 -1
  4. package/src/constants.js +31 -25
  5. package/src/constants.js.map +1 -1
  6. package/src/interfaces/index.d.ts +1 -2
  7. package/src/interfaces/index.d.ts.map +1 -1
  8. package/src/interfaces/index.js +6 -3
  9. package/src/interfaces/index.js.map +1 -1
  10. package/src/interfaces/member.d.ts +30 -12
  11. package/src/interfaces/member.d.ts.map +1 -1
  12. package/src/interfaces/platform-buffer.d.ts +9 -0
  13. package/src/interfaces/platform-buffer.d.ts.map +1 -0
  14. package/src/interfaces/platform-buffer.js +3 -0
  15. package/src/interfaces/platform-buffer.js.map +1 -0
  16. package/src/interfaces/platform-id.d.ts +2 -2
  17. package/src/interfaces/platform-id.d.ts.map +1 -1
  18. package/src/lib/id-providers/buffer-provider.d.ts +54 -0
  19. package/src/lib/id-providers/buffer-provider.d.ts.map +1 -0
  20. package/src/lib/id-providers/buffer-provider.js +93 -0
  21. package/src/lib/id-providers/buffer-provider.js.map +1 -0
  22. package/src/lib/index.d.ts +1 -0
  23. package/src/lib/index.d.ts.map +1 -1
  24. package/src/lib/index.js +1 -0
  25. package/src/lib/index.js.map +1 -1
  26. package/src/lib/voting/audit.d.ts +39 -48
  27. package/src/lib/voting/audit.d.ts.map +1 -1
  28. package/src/lib/voting/audit.js +103 -111
  29. package/src/lib/voting/audit.js.map +1 -1
  30. package/src/lib/voting/bulletin-board.d.ts +47 -81
  31. package/src/lib/voting/bulletin-board.d.ts.map +1 -1
  32. package/src/lib/voting/bulletin-board.js +95 -231
  33. package/src/lib/voting/bulletin-board.js.map +1 -1
  34. package/src/lib/voting/encoder.d.ts +7 -16
  35. package/src/lib/voting/encoder.d.ts.map +1 -1
  36. package/src/lib/voting/encoder.js +11 -107
  37. package/src/lib/voting/encoder.js.map +1 -1
  38. package/src/lib/voting/enumerations/index.d.ts +6 -0
  39. package/src/lib/voting/enumerations/index.d.ts.map +1 -0
  40. package/src/lib/voting/enumerations/index.js +14 -0
  41. package/src/lib/voting/enumerations/index.js.map +1 -0
  42. package/src/lib/voting/event-logger.d.ts +13 -74
  43. package/src/lib/voting/event-logger.d.ts.map +1 -1
  44. package/src/lib/voting/event-logger.js +19 -140
  45. package/src/lib/voting/event-logger.js.map +1 -1
  46. package/src/lib/voting/examples.d.ts +112 -0
  47. package/src/lib/voting/examples.d.ts.map +1 -0
  48. package/src/lib/voting/examples.js +386 -0
  49. package/src/lib/voting/examples.js.map +1 -0
  50. package/src/lib/voting/factory.d.ts +38 -9
  51. package/src/lib/voting/factory.d.ts.map +1 -1
  52. package/src/lib/voting/factory.js +42 -8
  53. package/src/lib/voting/factory.js.map +1 -1
  54. package/src/lib/voting/hierarchical-aggregator.d.ts +44 -0
  55. package/src/lib/voting/hierarchical-aggregator.d.ts.map +1 -0
  56. package/src/lib/voting/hierarchical-aggregator.js +56 -0
  57. package/src/lib/voting/hierarchical-aggregator.js.map +1 -0
  58. package/src/lib/voting/index.d.ts +43 -7
  59. package/src/lib/voting/index.d.ts.map +1 -1
  60. package/src/lib/voting/index.js +53 -10
  61. package/src/lib/voting/index.js.map +1 -1
  62. package/src/lib/voting/interfaces/aggregated-tally.d.ts +10 -0
  63. package/src/lib/voting/interfaces/aggregated-tally.d.ts.map +1 -0
  64. package/src/lib/voting/interfaces/aggregated-tally.js +3 -0
  65. package/src/lib/voting/interfaces/aggregated-tally.js.map +1 -0
  66. package/src/lib/voting/interfaces/audit-entry.d.ts +10 -0
  67. package/src/lib/voting/interfaces/audit-entry.d.ts.map +1 -0
  68. package/src/lib/voting/interfaces/audit-entry.js +3 -0
  69. package/src/lib/voting/interfaces/audit-entry.js.map +1 -0
  70. package/src/lib/voting/interfaces/audit-log.d.ts +10 -0
  71. package/src/lib/voting/interfaces/audit-log.d.ts.map +1 -0
  72. package/src/lib/voting/interfaces/audit-log.js +3 -0
  73. package/src/lib/voting/interfaces/audit-log.js.map +1 -0
  74. package/src/lib/voting/interfaces/bulletin-board-entry.d.ts +10 -0
  75. package/src/lib/voting/interfaces/bulletin-board-entry.d.ts.map +1 -0
  76. package/src/lib/voting/interfaces/bulletin-board-entry.js +3 -0
  77. package/src/lib/voting/interfaces/bulletin-board-entry.js.map +1 -0
  78. package/src/lib/voting/interfaces/bulletin-board.d.ts +10 -0
  79. package/src/lib/voting/interfaces/bulletin-board.d.ts.map +1 -0
  80. package/src/lib/voting/interfaces/bulletin-board.js +3 -0
  81. package/src/lib/voting/interfaces/bulletin-board.js.map +1 -0
  82. package/src/lib/voting/interfaces/checkpoint-manager-extended.d.ts +10 -0
  83. package/src/lib/voting/interfaces/checkpoint-manager-extended.d.ts.map +1 -0
  84. package/src/lib/voting/interfaces/checkpoint-manager-extended.js +3 -0
  85. package/src/lib/voting/interfaces/checkpoint-manager-extended.js.map +1 -0
  86. package/src/lib/voting/interfaces/checkpoint-manager.d.ts +9 -0
  87. package/src/lib/voting/interfaces/checkpoint-manager.d.ts.map +1 -0
  88. package/src/lib/voting/interfaces/checkpoint-manager.js +3 -0
  89. package/src/lib/voting/interfaces/checkpoint-manager.js.map +1 -0
  90. package/src/lib/voting/interfaces/checkpoint-metadata.d.ts +8 -0
  91. package/src/lib/voting/interfaces/checkpoint-metadata.d.ts.map +1 -0
  92. package/src/lib/voting/interfaces/checkpoint-metadata.js +3 -0
  93. package/src/lib/voting/interfaces/checkpoint-metadata.js.map +1 -0
  94. package/src/lib/voting/interfaces/ecies-service-with-voting.d.ts +8 -0
  95. package/src/lib/voting/interfaces/ecies-service-with-voting.d.ts.map +1 -0
  96. package/src/lib/voting/interfaces/ecies-service-with-voting.js +3 -0
  97. package/src/lib/voting/interfaces/ecies-service-with-voting.js.map +1 -0
  98. package/src/lib/voting/interfaces/encrypted-vote.d.ts +10 -0
  99. package/src/lib/voting/interfaces/encrypted-vote.d.ts.map +1 -0
  100. package/src/lib/voting/interfaces/encrypted-vote.js +3 -0
  101. package/src/lib/voting/interfaces/encrypted-vote.js.map +1 -0
  102. package/src/lib/voting/interfaces/event-log-entry.d.ts +10 -0
  103. package/src/lib/voting/interfaces/event-log-entry.d.ts.map +1 -0
  104. package/src/lib/voting/interfaces/event-log-entry.js +3 -0
  105. package/src/lib/voting/interfaces/event-log-entry.js.map +1 -0
  106. package/src/lib/voting/interfaces/event-logger.d.ts +10 -0
  107. package/src/lib/voting/interfaces/event-logger.d.ts.map +1 -0
  108. package/src/lib/voting/interfaces/event-logger.js +3 -0
  109. package/src/lib/voting/interfaces/event-logger.js.map +1 -0
  110. package/src/lib/voting/interfaces/index.d.ts +37 -0
  111. package/src/lib/voting/interfaces/index.d.ts.map +1 -0
  112. package/src/lib/voting/interfaces/index.js +9 -0
  113. package/src/lib/voting/interfaces/index.js.map +1 -0
  114. package/src/lib/voting/interfaces/jurisdiction-config.d.ts +10 -0
  115. package/src/lib/voting/interfaces/jurisdiction-config.d.ts.map +1 -0
  116. package/src/lib/voting/interfaces/jurisdiction-config.js +3 -0
  117. package/src/lib/voting/interfaces/jurisdiction-config.js.map +1 -0
  118. package/src/lib/voting/interfaces/plaintext-vote.d.ts +10 -0
  119. package/src/lib/voting/interfaces/plaintext-vote.d.ts.map +1 -0
  120. package/src/lib/voting/interfaces/plaintext-vote.js +3 -0
  121. package/src/lib/voting/interfaces/plaintext-vote.js.map +1 -0
  122. package/src/lib/voting/interfaces/poll-configuration.d.ts +8 -0
  123. package/src/lib/voting/interfaces/poll-configuration.d.ts.map +1 -0
  124. package/src/lib/voting/interfaces/poll-configuration.js +3 -0
  125. package/src/lib/voting/interfaces/poll-configuration.js.map +1 -0
  126. package/src/lib/voting/interfaces/poll-results.d.ts +8 -0
  127. package/src/lib/voting/interfaces/poll-results.d.ts.map +1 -0
  128. package/src/lib/voting/interfaces/poll-results.js +3 -0
  129. package/src/lib/voting/interfaces/poll-results.js.map +1 -0
  130. package/src/lib/voting/interfaces/poll-tallier.d.ts +10 -0
  131. package/src/lib/voting/interfaces/poll-tallier.d.ts.map +1 -0
  132. package/src/lib/voting/interfaces/poll-tallier.js +3 -0
  133. package/src/lib/voting/interfaces/poll-tallier.js.map +1 -0
  134. package/src/lib/voting/interfaces/poll.d.ts +10 -0
  135. package/src/lib/voting/interfaces/poll.d.ts.map +1 -0
  136. package/src/lib/voting/interfaces/poll.js +3 -0
  137. package/src/lib/voting/interfaces/poll.js.map +1 -0
  138. package/src/lib/voting/interfaces/round-result.d.ts +8 -0
  139. package/src/lib/voting/interfaces/round-result.d.ts.map +1 -0
  140. package/src/lib/voting/interfaces/round-result.js +3 -0
  141. package/src/lib/voting/interfaces/round-result.js.map +1 -0
  142. package/src/lib/voting/interfaces/state-snapshot.d.ts +15 -0
  143. package/src/lib/voting/interfaces/state-snapshot.d.ts.map +1 -0
  144. package/src/lib/voting/interfaces/state-snapshot.js +3 -0
  145. package/src/lib/voting/interfaces/state-snapshot.js.map +1 -0
  146. package/src/lib/voting/interfaces/supermajority-config.d.ts +8 -0
  147. package/src/lib/voting/interfaces/supermajority-config.d.ts.map +1 -0
  148. package/src/lib/voting/interfaces/supermajority-config.js +3 -0
  149. package/src/lib/voting/interfaces/supermajority-config.js.map +1 -0
  150. package/src/lib/voting/interfaces/tally-proof.d.ts +10 -0
  151. package/src/lib/voting/interfaces/tally-proof.d.ts.map +1 -0
  152. package/src/lib/voting/interfaces/tally-proof.js +3 -0
  153. package/src/lib/voting/interfaces/tally-proof.js.map +1 -0
  154. package/src/lib/voting/interfaces/vote-encoder.d.ts +10 -0
  155. package/src/lib/voting/interfaces/vote-encoder.d.ts.map +1 -0
  156. package/src/lib/voting/interfaces/vote-encoder.js +3 -0
  157. package/src/lib/voting/interfaces/vote-encoder.js.map +1 -0
  158. package/src/lib/voting/interfaces/vote-logger-extended.d.ts +10 -0
  159. package/src/lib/voting/interfaces/vote-logger-extended.d.ts.map +1 -0
  160. package/src/lib/voting/interfaces/vote-logger-extended.js +3 -0
  161. package/src/lib/voting/interfaces/vote-logger-extended.js.map +1 -0
  162. package/src/lib/voting/interfaces/vote-logger.d.ts +9 -0
  163. package/src/lib/voting/interfaces/vote-logger.d.ts.map +1 -0
  164. package/src/lib/voting/interfaces/vote-logger.js +3 -0
  165. package/src/lib/voting/interfaces/vote-logger.js.map +1 -0
  166. package/src/lib/voting/interfaces/voting-consts.d.ts +9 -0
  167. package/src/lib/voting/interfaces/voting-consts.d.ts.map +1 -0
  168. package/src/lib/voting/interfaces/voting-consts.js +3 -0
  169. package/src/lib/voting/interfaces/voting-consts.js.map +1 -0
  170. package/src/lib/voting/interfaces/voting-key-derivation-options.d.ts +7 -0
  171. package/src/lib/voting/interfaces/voting-key-derivation-options.d.ts.map +1 -0
  172. package/src/lib/voting/interfaces/voting-key-derivation-options.js +3 -0
  173. package/src/lib/voting/interfaces/voting-key-derivation-options.js.map +1 -0
  174. package/src/lib/voting/interfaces/voting-poll-results.d.ts +7 -0
  175. package/src/lib/voting/interfaces/voting-poll-results.d.ts.map +1 -0
  176. package/src/lib/voting/interfaces/voting-poll-results.js +3 -0
  177. package/src/lib/voting/interfaces/voting-poll-results.js.map +1 -0
  178. package/src/lib/voting/interfaces/voting-receipt.d.ts +10 -0
  179. package/src/lib/voting/interfaces/voting-receipt.d.ts.map +1 -0
  180. package/src/lib/voting/interfaces/voting-receipt.js +3 -0
  181. package/src/lib/voting/interfaces/voting-receipt.js.map +1 -0
  182. package/src/lib/voting/interfaces/voting-security-validator.d.ts +8 -0
  183. package/src/lib/voting/interfaces/voting-security-validator.d.ts.map +1 -0
  184. package/src/lib/voting/interfaces/voting-security-validator.js +3 -0
  185. package/src/lib/voting/interfaces/voting-security-validator.js.map +1 -0
  186. package/src/lib/voting/node-persistent-state.d.ts +40 -0
  187. package/src/lib/voting/node-persistent-state.d.ts.map +1 -0
  188. package/src/lib/voting/node-persistent-state.js +222 -0
  189. package/src/lib/voting/node-persistent-state.js.map +1 -0
  190. package/src/lib/voting/persistent-state.d.ts +44 -0
  191. package/src/lib/voting/persistent-state.d.ts.map +1 -0
  192. package/src/lib/voting/persistent-state.js +106 -0
  193. package/src/lib/voting/persistent-state.js.map +1 -0
  194. package/src/lib/voting/poll-core.d.ts +14 -29
  195. package/src/lib/voting/poll-core.d.ts.map +1 -1
  196. package/src/lib/voting/poll-core.js +13 -176
  197. package/src/lib/voting/poll-core.js.map +1 -1
  198. package/src/lib/voting/poll.js +3 -3
  199. package/src/lib/voting/poll.js.map +1 -1
  200. package/src/lib/voting/security.d.ts +9 -15
  201. package/src/lib/voting/security.d.ts.map +1 -1
  202. package/src/lib/voting/security.js +12 -44
  203. package/src/lib/voting/security.js.map +1 -1
  204. package/src/lib/voting/tallier.d.ts +11 -20
  205. package/src/lib/voting/tallier.d.ts.map +1 -1
  206. package/src/lib/voting/tallier.js +17 -366
  207. package/src/lib/voting/tallier.js.map +1 -1
  208. package/src/lib/voting/test-voter-pool.d.ts +16 -0
  209. package/src/lib/voting/test-voter-pool.d.ts.map +1 -0
  210. package/src/lib/voting/test-voter-pool.js +69 -0
  211. package/src/lib/voting/test-voter-pool.js.map +1 -0
  212. package/src/lib/voting/us-election-example.d.ts +2 -0
  213. package/src/lib/voting/us-election-example.d.ts.map +1 -0
  214. package/src/lib/voting/us-election-example.js +170 -0
  215. package/src/lib/voting/us-election-example.js.map +1 -0
  216. package/src/member.d.ts +4 -1
  217. package/src/member.d.ts.map +1 -1
  218. package/src/member.js +40 -16
  219. package/src/member.js.map +1 -1
  220. package/src/secure-buffer.d.ts +1 -2
  221. package/src/secure-buffer.d.ts.map +1 -1
  222. package/src/secure-buffer.js +3 -9
  223. package/src/secure-buffer.js.map +1 -1
  224. package/src/services/ecies/crypto-core.d.ts.map +1 -1
  225. package/src/services/ecies/crypto-core.js +24 -0
  226. package/src/services/ecies/crypto-core.js.map +1 -1
  227. package/src/services/ecies/multi-recipient.d.ts +9 -1
  228. package/src/services/ecies/multi-recipient.d.ts.map +1 -1
  229. package/src/services/ecies/multi-recipient.js +153 -21
  230. package/src/services/ecies/multi-recipient.js.map +1 -1
  231. package/src/services/ecies/service.d.ts +56 -15
  232. package/src/services/ecies/service.d.ts.map +1 -1
  233. package/src/services/ecies/service.js +196 -39
  234. package/src/services/ecies/service.js.map +1 -1
  235. package/src/services/ecies/single-recipient.d.ts.map +1 -1
  236. package/src/services/ecies/single-recipient.js +4 -2
  237. package/src/services/ecies/single-recipient.js.map +1 -1
  238. package/src/services/encryption-stream.d.ts +1 -1
  239. package/src/services/encryption-stream.d.ts.map +1 -1
  240. package/src/services/encryption-stream.js +4 -8
  241. package/src/services/encryption-stream.js.map +1 -1
  242. package/src/services/multi-recipient-processor.d.ts +5 -2
  243. package/src/services/multi-recipient-processor.d.ts.map +1 -1
  244. package/src/services/multi-recipient-processor.js +29 -14
  245. package/src/services/multi-recipient-processor.js.map +1 -1
  246. package/src/test-mocks/mock-backend-member.d.ts +22 -3
  247. package/src/test-mocks/mock-backend-member.d.ts.map +1 -1
  248. package/src/test-mocks/mock-backend-member.js +71 -0
  249. package/src/test-mocks/mock-backend-member.js.map +1 -1
  250. package/src/lib/voting/types.d.ts +0 -67
  251. package/src/lib/voting/types.d.ts.map +0 -1
  252. package/src/lib/voting/types.js +0 -29
  253. package/src/lib/voting/types.js.map +0 -1
package/README.md CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  [![npm version](https://badge.fury.io/js/%40digitaldefiance%2Fnode-ecies-lib.svg)](https://www.npmjs.com/package/@digitaldefiance/node-ecies-lib)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
- [![Tests](https://img.shields.io/badge/tests-220%2B%20passing-brightgreen)](https://github.com/Digital-Defiance/ecies-lib)
5
+ [![Tests](https://img.shields.io/badge/tests-1100%2B%20passing-brightgreen)](https://github.com/Digital-Defiance/ecies-lib)
6
6
 
7
7
  A Node.js-specific implementation of the Digital Defiance ECIES (Elliptic Curve Integrated Encryption Scheme) library, providing secure encryption, decryption, and key management capabilities using Node.js crypto primitives. This package is designed to be binary compatible with similarly numbered releases of the browser-based `@digitaldefiance/ecies-lib`, enabling seamless cross-platform cryptographic operations.
8
8
 
9
9
  Part of [Express Suite](https://github.com/Digital-Defiance/express-suite)
10
10
 
11
- > Current Version: v4.7.14
11
+ > Current Version: v4.10.6
12
12
 
13
13
  This library implements a modern, enterprise-grade ECIES protocol (v4.0) featuring HKDF key derivation, AAD binding, and optimized multi-recipient encryption. It includes a pluggable ID provider system, memory-efficient streaming encryption, and comprehensive internationalization.
14
14
 
@@ -52,8 +52,9 @@ This library implements a modern, enterprise-grade ECIES protocol (v4.0) featuri
52
52
 
53
53
  A comprehensive voting system built on homomorphic encryption with 17 voting methods and 1100+ test cases:
54
54
 
55
- - **Fully Secure Methods**: Plurality, Approval, Weighted, Borda Count, Score, Yes/No, Supermajority
56
- - **Multi-Round Methods**: Ranked Choice (IRV), Two-Round, STAR, STV
55
+ - **All 17 Methods Fully Implemented**: Plurality, Approval, Weighted, Borda Count, Score, Yes/No, Yes/No/Abstain, Supermajority, Ranked Choice (IRV), Two-Round, STAR, STV, Quadratic, Consensus, Consent-Based
56
+ - **Node.js Optimized**: Uses Buffer instead of Uint8Array for better Node.js performance
57
+ - **Extended PlatformID**: Supports Buffer and mongoose ObjectId in addition to base types
57
58
  - **Core Security Features**:
58
59
  - Homomorphic encryption (Paillier cryptosystem) - votes remain encrypted until tally
59
60
  - Verifiable receipts with ECDSA signatures
@@ -63,6 +64,7 @@ A comprehensive voting system built on homomorphic encryption with 17 voting met
63
64
  - Role separation (poll aggregator cannot decrypt votes)
64
65
  - Double-vote prevention
65
66
  - **Government Requirements (EARS)**: Audit Log, Bulletin Board, Event Logger
67
+ - **Cross-Platform Compatible**: 100% binary compatible with browser implementation
66
68
 
67
69
  See [Voting System Documentation](src/lib/voting/README.md) for complete details.
68
70
 
@@ -221,7 +223,71 @@ async function processFile(filePath: string, publicKey: Buffer) {
221
223
  }
222
224
  ```
223
225
 
224
- ### 4. Member System
226
+ ### 4. Voting System (Node.js Optimized)
227
+
228
+ The Node.js voting system extends the browser implementation with Buffer support and mongoose integration:
229
+
230
+ ```typescript
231
+ import { Member, MemberType } from '@digitaldefiance/node-ecies-lib';
232
+ import { EmailString } from '@digitaldefiance/ecies-lib';
233
+ import {
234
+ PollFactory,
235
+ VoteEncoder,
236
+ PollTallier,
237
+ VotingMethod
238
+ } from '@digitaldefiance/node-ecies-lib';
239
+
240
+ const ecies = new ECIESService();
241
+
242
+ // Create authority with voting keys
243
+ const { member: authority, mnemonic } = Member.newMember(
244
+ ecies,
245
+ MemberType.System,
246
+ 'Election Authority',
247
+ new EmailString('authority@example.com')
248
+ );
249
+ await authority.deriveVotingKeys();
250
+
251
+ // Create poll (returns Node.js Poll with Buffer support)
252
+ const poll = PollFactory.createPlurality(
253
+ ['Alice', 'Bob', 'Charlie'],
254
+ authority
255
+ );
256
+
257
+ // Create voter and cast vote
258
+ const { member: voter } = Member.newMember(
259
+ ecies,
260
+ MemberType.User,
261
+ 'Voter',
262
+ new EmailString('voter@example.com')
263
+ );
264
+ await voter.deriveVotingKeys();
265
+
266
+ // Vote encoding uses Buffer internally
267
+ const encoder = new VoteEncoder(authority.votingPublicKey!);
268
+ const vote = encoder.encodePlurality(0, 3); // Vote for Alice
269
+ const receipt = poll.vote(voter, vote);
270
+
271
+ // Close and tally
272
+ poll.close();
273
+ const tallier = new PollTallier(
274
+ authority,
275
+ authority.votingPrivateKey!,
276
+ authority.votingPublicKey!
277
+ );
278
+ const results = tallier.tally(poll);
279
+
280
+ console.log('Winner:', results.choices[results.winner!]);
281
+ console.log('Tallies:', results.tallies);
282
+ ```
283
+
284
+ **Node.js Voting Features:**
285
+ - **All 17 Methods**: Complete implementation of all voting methods
286
+ - **Buffer Optimization**: Uses Node.js Buffer instead of Uint8Array for better performance
287
+ - **Mongoose Integration**: Extended PlatformID supports `Types.ObjectId`
288
+ - **Cross-Platform**: 100% binary compatible with browser voting system
289
+ - **File Persistence**: Can save/load encrypted votes to/from disk
290
+ - **Stream Processing**: Handle large voter datasets using Node.js streams
225
291
 
226
292
  The `Member` class provides a high-level user abstraction that integrates keys, IDs, and encryption.
227
293
 
@@ -245,7 +311,7 @@ console.log(member.id); // Buffer (size depends on provider)
245
311
  const encrypted = member.encryptData('My Secrets');
246
312
  ```
247
313
 
248
- ## API Reference
314
+ ### 5. Member System
249
315
 
250
316
  ### Core Services
251
317
 
@@ -274,17 +340,22 @@ const encrypted = member.encryptData('My Secrets');
274
340
 
275
341
  ### Voting System
276
342
 
277
- - **`Poll`**: Core poll with vote aggregation and receipt issuance.
343
+ - **`Poll`**: Core poll with vote aggregation and receipt issuance (generic over PlatformID, defaults to Buffer).
278
344
  - **`VotingPoll`**: High-level voting with encrypted receipts.
279
- - **`PollTallier`**: Decrypts and tallies votes (holds private key).
280
- - **`VoteEncoder`**: Encrypts votes using Paillier homomorphic encryption.
281
- - **`PollFactory`**: Convenient poll creation with method-specific configurations.
345
+ - **`PollTallier`**: Decrypts and tallies votes (holds private key, generic over PlatformID).
346
+ - **`VoteEncoder`**: Encrypts votes using Paillier homomorphic encryption (extends browser VoteEncoder with Buffer specialization).
347
+ - **`PollFactory`**: Convenient poll creation with method-specific configurations (extends browser PollFactory).
282
348
  - **`VotingSecurityValidator`**: Security level validation and enforcement.
283
349
  - **`ImmutableAuditLog`**: Hash-chained audit trail for compliance.
284
350
  - **`PublicBulletinBoard`**: Append-only vote publication with Merkle tree.
285
351
  - **`PollEventLogger`**: Event tracking with microsecond timestamps.
286
352
  - **`VotingMethod`**: Enum with all 17 voting methods.
287
353
  - **`SecurityLevel`**: Enum for security classifications (FullyHomomorphic, MultiRound, Insecure).
354
+ - **`EncryptedVote<TID extends PlatformID>`**: Encrypted vote structure with generic ID support (defaults to Buffer).
355
+ - **`PollResults<TID extends PlatformID>`**: Tally results with winner(s) and generic ID support (defaults to Buffer).
356
+ - **`VoteReceipt`**: Cryptographic vote receipt with signature verification.
357
+
358
+ ## API Reference
288
359
 
289
360
  ## Development
290
361
 
@@ -302,12 +373,13 @@ yarn format # Fix all (prettier + lint)
302
373
 
303
374
  ### Testing Approach
304
375
 
305
- The node-ecies-lib package uses comprehensive testing with 220+ tests covering all Node.js-specific cryptographic operations and binary compatibility with the browser-based ecies-lib.
376
+ The node-ecies-lib package uses comprehensive testing with 1100+ tests covering all Node.js-specific cryptographic operations, complete voting system functionality, and binary compatibility with the browser-based ecies-lib.
306
377
 
307
378
  **Test Framework**: Jest with TypeScript support
308
379
  **Property-Based Testing**: fast-check for cryptographic properties
309
380
  **Coverage Target**: 90%+ for all cryptographic operations
310
- **Binary Compatibility**: Verified with @digitaldefiance/ecies-lib
381
+ **Binary Compatibility**: Verified with @digitaldefiance/ecies-lib
382
+ **Voting System**: Complete test coverage for all 17 voting methods
311
383
 
312
384
  ### Test Structure
313
385
 
@@ -317,7 +389,19 @@ tests/
317
389
  ├── integration/ # Integration tests for protocol flows
318
390
  ├── e2e/ # End-to-end encryption/decryption tests
319
391
  ├── compatibility/ # Cross-platform compatibility with ecies-lib
320
- └── streaming/ # Streaming encryption tests
392
+ ├── streaming/ # Streaming encryption tests
393
+ └── voting/ # Voting system tests (Node.js specific)
394
+ ├── voting.spec.ts # Core voting functionality
395
+ ├── voting-stress.spec.ts # Stress tests with large datasets
396
+ ├── poll-core.spec.ts # Poll core functionality
397
+ ├── poll-audit.spec.ts # Audit log integration
398
+ ├── factory.spec.ts # Poll factory methods
399
+ ├── encoder.spec.ts # Vote encoding for all methods
400
+ ├── security.spec.ts # Security validation
401
+ ├── audit.spec.ts # Immutable audit log
402
+ ├── bulletin-board.spec.ts # Public bulletin board
403
+ ├── event-logger.spec.ts # Event logging system
404
+ └── cross-platform-encryption.pbt.spec.ts # Cross-platform voting compatibility
321
405
  ```
322
406
 
323
407
  ### Running Tests
@@ -487,6 +571,75 @@ describe('Integration with suite-core-lib', () => {
487
571
 
488
572
  ## ChangeLog
489
573
 
574
+ ### v4.10.6 - Voting System & PlatformID Integration
575
+
576
+ **Major Features:**
577
+ - **Complete Cryptographic Voting System**: Added comprehensive voting system with 17+ methods
578
+ - All methods fully implemented: Plurality, Approval, Weighted, Borda, Score, Yes/No, Yes/No/Abstain, Supermajority, Ranked Choice (IRV), Two-Round, STAR, STV, Quadratic, Consensus, Consent-Based
579
+ - Node.js optimized with Buffer instead of Uint8Array for better performance
580
+ - Government-grade security: Immutable audit logs, public bulletin board, event logging
581
+ - Role separation: Poll aggregators cannot decrypt votes until closure
582
+ - **Extended PlatformID Type System**: Enhanced ID provider system with Node.js-specific extensions
583
+ - `PlatformID = BasePlatformID | Buffer | Types.ObjectId`
584
+ - Seamless integration with mongoose and MongoDB applications
585
+ - Generic interfaces: `EncryptedVote<TID extends PlatformID>`, `PollResults<TID extends PlatformID>`
586
+ - **Enhanced Member System**: Added voting key derivation and management
587
+ - `deriveVotingKeys()`: Generate Paillier keypairs for homomorphic encryption
588
+ - `votingPublicKey` and `votingPrivateKey` properties for voting operations
589
+ - Full integration with voting system interfaces
590
+
591
+ **Node.js Voting System Components:**
592
+ - `Poll`: Core vote aggregation with receipt generation (extends browser Poll with Buffer support)
593
+ - `VotingPoll`: High-level voting with encrypted receipts
594
+ - `PollTallier`: Secure vote decryption and tallying (separate entity)
595
+ - `VoteEncoder`: Paillier homomorphic encryption for all voting methods (extends browser VoteEncoder)
596
+ - `PollFactory`: Convenient poll creation with method-specific configurations (extends browser PollFactory)
597
+ - `VotingSecurityValidator`: Security level validation and enforcement
598
+ - `ImmutableAuditLog`: Cryptographic hash chain for audit compliance
599
+ - `PublicBulletinBoard`: Transparent vote publication with Merkle tree integrity
600
+ - `PollEventLogger`: Comprehensive event tracking with microsecond timestamps
601
+
602
+ **Breaking Changes:**
603
+ - Voting interfaces now use generic `PlatformID` types with Buffer as default
604
+ - Member interface extended with voting key properties
605
+ - New voting system exports in main package
606
+
607
+ **Compatibility:**
608
+ - Fully backward compatible for existing ECIES operations
609
+ - New voting system is opt-in and doesn't affect existing functionality
610
+ - 100% binary compatible with `@digitaldefiance/ecies-lib` voting system
611
+ - Cross-platform vote encryption/decryption verified
612
+
613
+ ### v4.8.2 - Voting System Foundation
614
+
615
+ **Features:**
616
+ - Initial voting system architecture
617
+ - Core voting method implementations
618
+ - Basic showcase application structure
619
+
620
+ ### v4.8.1 - Voting System Initialization
621
+
622
+ **Features:**
623
+ - Foundation for cryptographic voting system
624
+ - Initial voting method definitions
625
+ - Enhanced Member system for voting key management
626
+
627
+ ### v4.8.0 - Voting System Introduction
628
+
629
+ **Major Features:**
630
+ - **Initial Voting System**: Introduced cryptographic voting system architecture
631
+ - **Voting Method Enumerations**: Defined all 17+ voting methods with security classifications
632
+ - **Enhanced Member System**: Added voting key derivation capabilities
633
+ - **Showcase Application**: Started development of interactive voting demos
634
+
635
+ ### v4.7.15 - Pre-Voting System Enhancements
636
+
637
+ **Improvements:**
638
+ - Enhanced core ECIES functionality
639
+ - Improved ID provider system
640
+ - Bug fixes and stability improvements
641
+ - Updated showcase components
642
+
490
643
  ### v4.7.14
491
644
 
492
645
  **Bug Fix: idProvider Configuration Now Respected by Member.newMember()**
@@ -1143,3 +1296,32 @@ Special thanks to the architecture improvements that enabled this clean migratio
1143
1296
  ### Version 1.0.3
1144
1297
 
1145
1298
  - Initial release.
1299
+
1300
+ ## Summary
1301
+
1302
+ The Node.js implementation of `@digitaldefiance/node-ecies-lib` provides a **complete, production-ready cryptographic library** with comprehensive voting system support:
1303
+
1304
+ ### ✅ Complete Implementation
1305
+ - **All 17 Voting Methods**: Every voting method from Plurality to Consent-Based is fully implemented and tested
1306
+ - **Node.js Optimized**: Uses Buffer instead of Uint8Array for optimal Node.js performance
1307
+ - **Extended PlatformID**: Supports Buffer and mongoose ObjectId for seamless database integration
1308
+ - **Cross-Platform**: 100% binary compatible with browser `@digitaldefiance/ecies-lib`
1309
+
1310
+ ### ✅ Government-Grade Security
1311
+ - **Homomorphic Encryption**: Paillier cryptosystem for privacy-preserving vote aggregation
1312
+ - **Immutable Audit Log**: Cryptographic hash chain for complete audit trail
1313
+ - **Public Bulletin Board**: Transparent, verifiable vote publication
1314
+ - **Event Logging**: Microsecond-precision event tracking
1315
+ - **Role Separation**: Poll aggregators cannot decrypt votes until closure
1316
+
1317
+ ### ✅ Production Ready
1318
+ - **1100+ Tests**: Comprehensive test coverage including all voting methods and cross-platform compatibility
1319
+ - **Stress Tested**: Handles 1000+ voters and complex elimination scenarios
1320
+ - **Attack Resistant**: Prevents double voting, vote manipulation, and unauthorized decryption
1321
+ - **Node.js Native**: Optimized for Node.js crypto module and Buffer operations
1322
+
1323
+ The system is ready for production use in government elections, corporate governance, and any application requiring secure, verifiable voting with Node.js backend systems.
1324
+
1325
+ ## License
1326
+
1327
+ MIT © Digital Defiance
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digitaldefiance/node-ecies-lib",
3
- "version": "4.8.2",
3
+ "version": "4.10.7",
4
4
  "description": "Digital Defiance Node ECIES Library",
5
5
  "homepage": "https://github.com/Digital-Defiance/node-ecies-lib",
6
6
  "repository": {
@@ -28,6 +28,11 @@
28
28
  "build:stream": "npx nx build --outputStyle=stream digitaldefiance-node-ecies-lib",
29
29
  "build:logged": "npx nx build --outputStyle=stream digitaldefiance-node-ecies-lib 2>&1 | ansifilter -o build.log",
30
30
  "test": "npx nx test digitaldefiance-node-ecies-lib",
31
+ "test:16": "npx nx test digitaldefiance-node-ecies-lib --parallel=16 --maxWorkers=16 --runInBand=false",
32
+ "test:dev": "NODE_ENV=development npx nx test digitaldefiance-node-ecies-lib --configuration=development",
33
+ "test:16:dev:noansi": "NODE_ENV=development npx nx test digitaldefiance-node-ecies-lib --parallel=16 --maxWorkers=16 --runInBand=false --configuration=development | ansifilter",
34
+ "test:dev:16": "NODE_ENV=development npx nx test digitaldefiance-node-ecies-lib --parallel=16 --maxWorkers=16 --runInBand=false --configuration=development",
35
+ "test:dev:16:logged": "NODE_ENV=development npx nx test digitaldefiance-node-ecies-lib --parallel=16 --maxWorkers=16 --runInBand=false --configuration=development 2>&1 | ansifilter -o test.log",
31
36
  "test:stream": "npx nx test --outputStyle=stream digitaldefiance-node-ecies-lib",
32
37
  "test:logged": "npx nx test --outputStyle=stream digitaldefiance-node-ecies-lib 2>&1 | ansifilter -o test.log",
33
38
  "test:coverage": "npx jest --coverage --testPathPattern=digitaldefiance-node-ecies-lib --coverageReporters=text",
@@ -57,22 +62,22 @@
57
62
  "license": "MIT",
58
63
  "packageManager": "yarn@4.10.3",
59
64
  "dependencies": {
60
- "@digitaldefiance/ecies-lib": "4.8.2",
65
+ "@digitaldefiance/ecies-lib": "4.10.7",
61
66
  "@digitaldefiance/express-suite-test-utils": "1.0.14",
62
67
  "@digitaldefiance/i18n-lib": "3.8.16",
63
68
  "@ethereumjs/wallet": "^10.0.0",
64
69
  "@noble/curves": "1.9.0",
65
70
  "@noble/hashes": "1.8.0",
66
71
  "@scure/bip32": "1.7.0",
67
- "bson": "^7.0.0",
72
+ "bson": "^6.10.4",
68
73
  "ethereum-cryptography": "^3.2.0",
69
74
  "paillier-bigint": "^3.4.1",
70
75
  "ts-brand": "^0.2.0"
71
76
  },
72
77
  "devDependencies": {
73
78
  "@digitaldefiance/express-suite-test-utils": "1.0.12",
74
- "@typescript-eslint/eslint-plugin": "^8.48.0",
75
- "@typescript-eslint/parser": "^8.48.0",
79
+ "@typescript-eslint/eslint-plugin": "^8.52.0",
80
+ "@typescript-eslint/parser": "^8.52.0",
76
81
  "eslint-plugin-import": "^2.32.0",
77
82
  "eslint-plugin-prettier": "^5.5.4",
78
83
  "fast-check": "^4.3.0",
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACV,UAAU,IAAI,cAAc,EAC5B,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAIL,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAUpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE;;;GAGG;AACH,iBAAS,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAQ3D;AAED;;GAEG;AACH,iBAAS,oBAAoB,IAAI,MAAM,CAOtC;AAED;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,eAE1C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,cAAc,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAC3C,OAAO,4BAA4B,CACpC,CAAC,CAAC,CAAC,CAAC;AAEL,eAAO,MAAM,uBAAuB,EAAE,oBAIpC,CAAC;AAOH,wBAAgB,2BAA2B,IAAI,wBAAwB,CAEtE;AAED,wBAAgB,gCAAgC,CAC9C,iBAAiB,CAAC,EAAE,oBAAoB,GAAG,wBAAwB,EACnE,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,GAC3D,wBAAwB,CAoB1B;AAED,eAAO,MAAM,QAAQ,EAAE,eAA0C,CAAC;AAElE,eAAO,MAAM,OAAO,EAAE,cAIX,CAAC;AAEZ,eAAO,MAAM,MAAM,EAAE,aAAsC,CAAC;AAE5D,eAAO,MAAM,eAAe,EAAE,aAwCnB,CAAC;AAEZ,eAAO,MAAM,WAAW,EAAE,iBAKf,CAAC;AAEZ,eAAO,MAAM,+BAA+B,EACoB,cAAc,CAAC;AAQ/E;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,iBAGd,CAAC;AAEZ,eAAO,MAAM,SAAS,EAAE,UA8Db,CAAC;AA0CZ,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACV,UAAU,IAAI,cAAc,EAC5B,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAGL,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAUpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE;;;GAGG;AACH,iBAAS,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAQ3D;AAED;;GAEG;AACH,iBAAS,oBAAoB,IAAI,MAAM,CAOtC;AAED;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,eAE1C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,cAAc,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAC3C,OAAO,4BAA4B,CACpC,CAAC,CAAC,CAAC,CAAC;AAQL,eAAO,MAAM,uBAAuB,EAAE,oBAMpC,CAAC;AAOH,wBAAgB,2BAA2B,IAAI,wBAAwB,CAEtE;AAED,wBAAgB,gCAAgC,CAC9C,iBAAiB,CAAC,EAAE,oBAAoB,GAAG,wBAAwB,EACnE,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,GAC3D,wBAAwB,CAoB1B;AAGD,eAAO,MAAM,QAAQ,EAAE,eAA0C,CAAC;AAElE,eAAO,MAAM,OAAO,EAAE,cAIX,CAAC;AAEZ,eAAO,MAAM,MAAM,EAAE,aAAsC,CAAC;AAE5D,eAAO,MAAM,eAAe,EAAE,aAwCnB,CAAC;AAEZ,eAAO,MAAM,WAAW,EAAE,iBAKf,CAAC;AAEZ,eAAO,MAAM,+BAA+B,EACoB,cAAc,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,iBAGd,CAAC;AAEZ,eAAO,MAAM,SAAS,EAAE,UAiEb,CAAC;AA0CZ,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,CAAC"}
package/src/constants.js CHANGED
@@ -40,10 +40,17 @@ function captureCreationStack() {
40
40
  * in an already established system as it will break all existing checksums.
41
41
  */
42
42
  exports.NODE_RUNTIME_CONFIGURATION_KEY = Symbol.for('digitaldefiance.node.ecies.defaults');
43
+ /**
44
+ * Default ID provider instance (singleton).
45
+ * Uses MongoDB ObjectID format (12 bytes).
46
+ */
47
+ const DEFAULT_ID_PROVIDER = new ecies_lib_1.ObjectIdProvider();
43
48
  exports.NODE_DEFAULTS_OVERRIDES = Object.freeze({
44
49
  PBKDF2: {
45
50
  ALGORITHM: 'sha256',
46
51
  },
52
+ // Register the ID provider to ensure MEMBER_ID_LENGTH and ECIES.MULTIPLE.RECIPIENT_ID_SIZE are synced
53
+ idProvider: DEFAULT_ID_PROVIDER,
47
54
  });
48
55
  let runtimeDefaults = (0, ecies_lib_1.registerRuntimeConfiguration)(exports.NODE_RUNTIME_CONFIGURATION_KEY, exports.NODE_DEFAULTS_OVERRIDES);
49
56
  function getNodeRuntimeConfiguration() {
@@ -63,6 +70,7 @@ function registerNodeRuntimeConfiguration(configOrOverrides, options) {
63
70
  // InvariantValidator.validateAll(runtimeDefaults as IConstants);
64
71
  return runtimeDefaults;
65
72
  }
73
+ // Use runtime defaults for base constants
66
74
  exports.CHECKSUM = runtimeDefaults.CHECKSUM;
67
75
  exports.KEYRING = Object.freeze({
68
76
  ALGORITHM: 'aes',
@@ -118,11 +126,6 @@ exports.WRAPPED_KEY = Object.freeze({
118
126
  MIN_ITERATIONS: 100000, // Keep lower for key-wrapping operations
119
127
  });
120
128
  exports.KEYRING_ALGORITHM_CONFIGURATION = `${exports.KEYRING.ALGORITHM}-${exports.KEYRING.KEY_BITS}-${exports.KEYRING.MODE}`;
121
- /**
122
- * Default ID provider instance (singleton).
123
- * Uses MongoDB ObjectID format (12 bytes).
124
- */
125
- const DEFAULT_ID_PROVIDER = new ecies_lib_1.ObjectIdProvider();
126
129
  /**
127
130
  * Constants for encrypted data
128
131
  */
@@ -131,26 +134,7 @@ exports.ENCRYPTION = Object.freeze({
131
134
  RECIPIENT_ID_SIZE: DEFAULT_ID_PROVIDER.byteLength,
132
135
  });
133
136
  exports.Constants = Object.freeze({
134
- ...ecies_lib_1.Constants,
135
- ECIES: {
136
- ...ecies_lib_1.Constants.ECIES,
137
- // Override public key length for compressed keys
138
- PUBLIC_KEY_LENGTH: 33,
139
- // Override IV size for AES-GCM (standard is 12 bytes)
140
- IV_SIZE: 12,
141
- SINGLE: {
142
- ...ecies_lib_1.Constants.ECIES.SINGLE,
143
- FIXED_OVERHEAD_SIZE: 72,
144
- },
145
- SIMPLE: {
146
- ...ecies_lib_1.Constants.ECIES.SIMPLE,
147
- FIXED_OVERHEAD_SIZE: 64,
148
- },
149
- MULTIPLE: {
150
- ...ecies_lib_1.Constants.ECIES.MULTIPLE,
151
- ENCRYPTED_KEY_SIZE: 60,
152
- },
153
- },
137
+ ...runtimeDefaults,
154
138
  // Node-specific overrides and additions
155
139
  /**
156
140
  * PBKDF2 constants (Node.js crypto implementation)
@@ -192,6 +176,28 @@ exports.Constants = Object.freeze({
192
176
  * Size of ECIES cipher suite field in bytes
193
177
  */
194
178
  ECIES_CIPHER_SUITE_SIZE: 1,
179
+ // Override specific ECIES constants for Node.js
180
+ ECIES: {
181
+ ...runtimeDefaults.ECIES,
182
+ // Override public key length for compressed keys
183
+ PUBLIC_KEY_LENGTH: 33,
184
+ // Override IV size for AES-GCM (standard is 12 bytes)
185
+ IV_SIZE: 12,
186
+ SINGLE: {
187
+ ...runtimeDefaults.ECIES.SINGLE,
188
+ FIXED_OVERHEAD_SIZE: 72,
189
+ },
190
+ SIMPLE: {
191
+ ...runtimeDefaults.ECIES.SIMPLE,
192
+ FIXED_OVERHEAD_SIZE: 64,
193
+ },
194
+ MULTIPLE: {
195
+ ...runtimeDefaults.ECIES.MULTIPLE,
196
+ ENCRYPTED_KEY_SIZE: 60,
197
+ // Keep MAX_DATA_SIZE aligned with base config (1MB guardrail)
198
+ MAX_DATA_SIZE: runtimeDefaults.ECIES.MULTIPLE.MAX_DATA_SIZE,
199
+ },
200
+ },
195
201
  });
196
202
  /**
197
203
  * Safe translation helper for early initialization
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/constants.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export * from './multi-encrypted-parsed-header';
18
18
  export * from './multi-recipient-chunk';
19
19
  export * from './pbkdf-profiles';
20
20
  export * from './pbkdf2-result';
21
+ export * from './platform-buffer';
21
22
  export * from './platform-id';
22
23
  export * from './signing-key-private-key-info';
23
24
  export * from './simple-keypair';
@@ -27,9 +28,7 @@ export * from './simple-public-key-only-buffer';
27
28
  export * from './single-encrypted-parsed-header';
28
29
  export * from './stream-config';
29
30
  export * from './stream-progress';
30
- export type { IVotingConsts } from './voting-consts';
31
31
  export { VOTING } from './voting-consts';
32
- export { type IPoll, type IVoteEncoder, type IPollTallier, type IPollFactory, type IVotingSecurityValidator, SecurityLevel as VotingSecurityLevel, } from './voting-poll';
33
32
  export * from './voting-service';
34
33
  export * from './wallet-seed';
35
34
  export * from './wrapped-key-consts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kBAAkB,CAAC;AACjC,mBAAmB,UAAU,CAAC;AAC9B,mBAAmB,wBAAwB,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,aAAa,IAAI,mBAAmB,GACrC,MAAM,eAAe,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kBAAkB,CAAC;AACjC,mBAAmB,UAAU,CAAC;AAC9B,mBAAmB,wBAAwB,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VotingSecurityLevel = exports.VOTING = void 0;
3
+ exports.VOTING = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  tslib_1.__exportStar(require("./authenticated-cipher"), exports);
6
6
  tslib_1.__exportStar(require("./authenticated-decipher"), exports);
@@ -20,6 +20,7 @@ tslib_1.__exportStar(require("./multi-encrypted-parsed-header"), exports);
20
20
  tslib_1.__exportStar(require("./multi-recipient-chunk"), exports);
21
21
  tslib_1.__exportStar(require("./pbkdf-profiles"), exports);
22
22
  tslib_1.__exportStar(require("./pbkdf2-result"), exports);
23
+ tslib_1.__exportStar(require("./platform-buffer"), exports);
23
24
  tslib_1.__exportStar(require("./platform-id"), exports);
24
25
  tslib_1.__exportStar(require("./signing-key-private-key-info"), exports);
25
26
  tslib_1.__exportStar(require("./simple-keypair"), exports);
@@ -29,10 +30,12 @@ tslib_1.__exportStar(require("./simple-public-key-only-buffer"), exports);
29
30
  tslib_1.__exportStar(require("./single-encrypted-parsed-header"), exports);
30
31
  tslib_1.__exportStar(require("./stream-config"), exports);
31
32
  tslib_1.__exportStar(require("./stream-progress"), exports);
33
+ // IVotingConsts is now exported from lib/voting/interfaces (re-exported from ecies-lib)
34
+ // Removed duplicate export: IVotingConsts
32
35
  var voting_consts_1 = require("./voting-consts");
33
36
  Object.defineProperty(exports, "VOTING", { enumerable: true, get: function () { return voting_consts_1.VOTING; } });
34
- var voting_poll_1 = require("./voting-poll");
35
- Object.defineProperty(exports, "VotingSecurityLevel", { enumerable: true, get: function () { return voting_poll_1.SecurityLevel; } });
37
+ // Voting interfaces are now exported from lib/voting/interfaces
38
+ // Removed duplicate exports: IPoll, IVoteEncoder, IPollTallier, IPollFactory, IVotingSecurityValidator
36
39
  tslib_1.__exportStar(require("./voting-service"), exports);
37
40
  tslib_1.__exportStar(require("./wallet-seed"), exports);
38
41
  tslib_1.__exportStar(require("./wrapped-key-consts"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":";;;;AAAA,iEAAuC;AACvC,mEAAyC;AACzC,4DAAkC;AAClC,4DAAkC;AAClC,qEAA2C;AAC3C,sDAA4B;AAC5B,yDAA+B;AAC/B,4DAAkC;AAClC,8DAAoC;AACpC,wDAA8B;AAC9B,0DAAgC;AAChC,yFAA+D;AAC/D,2DAAiC;AAGjC,oEAA0C;AAC1C,0EAAgD;AAChD,kEAAwC;AACxC,2DAAiC;AACjC,0DAAgC;AAChC,wDAA8B;AAC9B,yEAA+C;AAC/C,2DAAiC;AACjC,kEAAwC;AACxC,mEAAyC;AACzC,0EAAgD;AAChD,2EAAiD;AACjD,0DAAgC;AAChC,4DAAkC;AAElC,iDAAyC;AAAhC,uGAAA,MAAM,OAAA;AACf,6CAOuB;AADrB,kHAAA,aAAa,OAAuB;AAEtC,2DAAiC;AACjC,wDAA8B;AAC9B,+DAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":";;;;AAAA,iEAAuC;AACvC,mEAAyC;AACzC,4DAAkC;AAClC,4DAAkC;AAClC,qEAA2C;AAC3C,sDAA4B;AAC5B,yDAA+B;AAC/B,4DAAkC;AAClC,8DAAoC;AACpC,wDAA8B;AAC9B,0DAAgC;AAChC,yFAA+D;AAC/D,2DAAiC;AAGjC,oEAA0C;AAC1C,0EAAgD;AAChD,kEAAwC;AACxC,2DAAiC;AACjC,0DAAgC;AAChC,4DAAkC;AAClC,wDAA8B;AAC9B,yEAA+C;AAC/C,2DAAiC;AACjC,kEAAwC;AACxC,mEAAyC;AACzC,0EAAgD;AAChD,2EAAiD;AACjD,0DAAgC;AAChC,4DAAkC;AAClC,wFAAwF;AACxF,0CAA0C;AAC1C,iDAAyC;AAAhC,uGAAA,MAAM,OAAA;AACf,gEAAgE;AAChE,uGAAuG;AACvG,2DAAiC;AACjC,wDAA8B;AAC9B,+DAAqC"}
@@ -1,4 +1,4 @@
1
- import type { EmailString, IECIESConstants, MemberType, SecureBuffer } from '@digitaldefiance/ecies-lib';
1
+ import type { EmailString, IECIESConstants, IIdProvider, MemberType, SecureBuffer, SecureString } from '@digitaldefiance/ecies-lib';
2
2
  import type { Wallet } from '@ethereumjs/wallet';
3
3
  import type { PrivateKey, PublicKey } from 'paillier-bigint';
4
4
  import type { SignatureBuffer } from '../types';
@@ -14,35 +14,53 @@ import type { IStreamProgress } from './stream-progress';
14
14
  * because ObjectId is not compatible with the shared interface's constraints.
15
15
  *
16
16
  * @template TID - The ID type (Buffer, string, or ObjectId)
17
+ * @template TSignature - The signature type (SignatureBuffer for Node.js)
17
18
  */
18
- export interface IMember<TID extends PlatformID = Buffer> {
19
+ export interface IMember<TID extends PlatformID = Buffer, TSignature extends Buffer = SignatureBuffer> {
19
20
  readonly id: TID;
20
21
  readonly idBytes: Buffer;
21
22
  readonly type: MemberType;
22
23
  readonly name: string;
23
24
  readonly email: EmailString;
24
25
  readonly publicKey: Buffer;
25
- readonly privateKey?: SecureBuffer;
26
+ readonly creatorId: TID;
27
+ readonly dateCreated: Date;
28
+ readonly dateUpdated: Date;
29
+ readonly idProvider: IIdProvider<TID>;
30
+ readonly privateKey: SecureBuffer | undefined;
26
31
  readonly wallet: Wallet;
32
+ get walletOptional(): Wallet | undefined;
33
+ readonly votingPublicKey?: PublicKey;
34
+ readonly votingPrivateKey?: PrivateKey;
35
+ readonly hasPrivateKey: boolean;
36
+ readonly hasVotingPrivateKey: boolean;
27
37
  readonly constants: IECIESConstants;
28
- votingPublicKey?: PublicKey;
29
- votingPrivateKey?: PrivateKey;
38
+ unloadPrivateKey(): void;
39
+ unloadWallet(): void;
40
+ unloadWalletAndPrivateKey(): void;
41
+ loadWallet(mnemonic: SecureString, eciesParams?: IECIESConstants): void;
42
+ loadPrivateKey(privateKey: SecureBuffer): void;
43
+ loadVotingKeys(votingPublicKey: PublicKey, votingPrivateKey?: PrivateKey): void;
44
+ deriveVotingKeys(options?: Record<string, unknown>): Promise<void>;
45
+ unloadVotingPrivateKey(): void;
30
46
  getPublicKeyString(): string;
31
47
  getIdString(): string;
32
- sign(data: Buffer): SignatureBuffer;
33
- signData(data: Buffer): SignatureBuffer;
34
- verify(signature: SignatureBuffer, data: Buffer): boolean;
48
+ sign(data: Buffer): TSignature;
49
+ signData(data: Buffer): TSignature;
50
+ verify(signature: TSignature, data: Buffer): boolean;
35
51
  verifySignature(data: Buffer, signature: Buffer, publicKey: Buffer): boolean;
36
- encryptDataStream(source: AsyncIterable<Buffer>, options?: {
52
+ encryptDataStream(source: AsyncIterable<Buffer> | ReadableStream<Buffer>, options?: {
37
53
  recipientPublicKey?: Buffer;
38
54
  onProgress?: (progress: IStreamProgress) => void;
39
55
  signal?: AbortSignal;
40
56
  }): AsyncGenerator<IEncryptedChunk, void, unknown>;
41
- decryptDataStream(source: AsyncIterable<Buffer>, options?: {
57
+ decryptDataStream(source: AsyncIterable<Buffer> | ReadableStream<Buffer>, options?: {
42
58
  onProgress?: (progress: IStreamProgress) => void;
43
59
  signal?: AbortSignal;
44
60
  }): AsyncGenerator<Buffer, void, unknown>;
45
- encryptData(data: string | Buffer, recipientPublicKey?: Buffer): Buffer;
46
- decryptData(encryptedData: Buffer): Buffer;
61
+ encryptData(data: string | Buffer, recipientPublicKey?: Buffer): Promise<Buffer> | Buffer;
62
+ decryptData(encryptedData: Buffer): Promise<Buffer> | Buffer;
63
+ toJson(): string;
64
+ dispose(): void;
47
65
  }
48
66
  //# sourceMappingURL=member.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/member.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,UAAU,EACV,YAAY,EACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;;;;;;;GASG;AACH,MAAM,WAAW,OAAO,CAAC,GAAG,SAAS,UAAU,GAAG,MAAM;IAEtD,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,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,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAGpC,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAG9B,kBAAkB,IAAI,MAAM,CAAC;IAC7B,WAAW,IAAI,MAAM,CAAC;IAGtB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;IACxC,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1D,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAG7E,iBAAiB,CACf,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,OAAO,CAAC,EAAE;QACR,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;QACjD,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GACA,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAElD,iBAAiB,CACf,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;QACjD,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GACA,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAEzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExE,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5C"}
1
+ {"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/member.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { PlatformBuffer as BasePlatformBuffer } from '@digitaldefiance/ecies-lib';
2
+ /**
3
+ * Platform-agnostic buffer type (Node.js extended)
4
+ *
5
+ * Extends the base PlatformBuffer from ecies-lib with Node.js Buffer support.
6
+ * Buffer extends Uint8Array, so this is fully compatible with the base type.
7
+ */
8
+ export type PlatformBuffer = BasePlatformBuffer | Buffer;
9
+ //# sourceMappingURL=platform-buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-buffer.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/platform-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEvF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG,MAAM,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=platform-buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-buffer.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/platform-buffer.ts"],"names":[],"mappings":""}