@digitaldefiance/ecies-lib 4.6.3 → 4.7.0

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 (119) hide show
  1. package/README.md +420 -0
  2. package/package.json +4 -10
  3. package/src/builders/ecies-builder.d.ts +1 -1
  4. package/src/builders/ecies-builder.d.ts.map +1 -1
  5. package/src/builders/ecies-builder.js +2 -2
  6. package/src/builders/ecies-builder.js.map +1 -1
  7. package/src/email-string.js +2 -3
  8. package/src/email-string.js.map +1 -1
  9. package/src/i18n-setup.js +1 -1
  10. package/src/i18n-setup.js.map +1 -1
  11. package/src/index.d.ts +1 -0
  12. package/src/index.d.ts.map +1 -1
  13. package/src/index.js +2 -0
  14. package/src/index.js.map +1 -1
  15. package/src/interfaces/index.d.ts +1 -0
  16. package/src/interfaces/index.d.ts.map +1 -1
  17. package/src/interfaces/index.js +3 -0
  18. package/src/interfaces/index.js.map +1 -1
  19. package/src/interfaces/voting-poll.d.ts +455 -0
  20. package/src/interfaces/voting-poll.d.ts.map +1 -0
  21. package/src/interfaces/voting-poll.js +54 -0
  22. package/src/interfaces/voting-poll.js.map +1 -0
  23. package/src/isolated-private.d.ts +0 -4
  24. package/src/isolated-private.d.ts.map +1 -1
  25. package/src/isolated-private.js +0 -13
  26. package/src/isolated-private.js.map +1 -1
  27. package/src/isolated-public.d.ts +4 -2
  28. package/src/isolated-public.d.ts.map +1 -1
  29. package/src/isolated-public.js +10 -8
  30. package/src/isolated-public.js.map +1 -1
  31. package/src/lib/voting/audit.d.ts +79 -0
  32. package/src/lib/voting/audit.d.ts.map +1 -0
  33. package/src/lib/voting/audit.js +188 -0
  34. package/src/lib/voting/audit.js.map +1 -0
  35. package/src/lib/voting/bulletin-board.d.ts +94 -0
  36. package/src/lib/voting/bulletin-board.d.ts.map +1 -0
  37. package/src/lib/voting/bulletin-board.js +287 -0
  38. package/src/lib/voting/bulletin-board.js.map +1 -0
  39. package/src/lib/voting/encoder.d.ts +42 -0
  40. package/src/lib/voting/encoder.d.ts.map +1 -0
  41. package/src/lib/voting/encoder.js +157 -0
  42. package/src/lib/voting/encoder.js.map +1 -0
  43. package/src/lib/voting/event-logger.d.ts +81 -0
  44. package/src/lib/voting/event-logger.d.ts.map +1 -0
  45. package/src/lib/voting/event-logger.js +162 -0
  46. package/src/lib/voting/event-logger.js.map +1 -0
  47. package/src/lib/voting/examples.d.ts +30 -0
  48. package/src/lib/voting/examples.d.ts.map +1 -0
  49. package/src/lib/voting/examples.js +153 -0
  50. package/src/lib/voting/examples.js.map +1 -0
  51. package/src/lib/voting/factory.d.ts +35 -0
  52. package/src/lib/voting/factory.d.ts.map +1 -0
  53. package/src/lib/voting/factory.js +57 -0
  54. package/src/lib/voting/factory.js.map +1 -0
  55. package/src/lib/voting/index.d.ts +44 -0
  56. package/src/lib/voting/index.d.ts.map +1 -0
  57. package/src/lib/voting/index.js +60 -0
  58. package/src/lib/voting/index.js.map +1 -0
  59. package/src/lib/voting/poll-core.d.ts +55 -0
  60. package/src/lib/voting/poll-core.d.ts.map +1 -0
  61. package/src/lib/voting/poll-core.js +225 -0
  62. package/src/lib/voting/poll-core.js.map +1 -0
  63. package/src/lib/voting/poll.d.ts +124 -0
  64. package/src/lib/voting/poll.d.ts.map +1 -0
  65. package/src/lib/voting/poll.js +322 -0
  66. package/src/lib/voting/poll.js.map +1 -0
  67. package/src/lib/voting/security.d.ts +33 -0
  68. package/src/lib/voting/security.d.ts.map +1 -0
  69. package/src/lib/voting/security.js +68 -0
  70. package/src/lib/voting/security.js.map +1 -0
  71. package/src/lib/voting/tallier.d.ts +35 -0
  72. package/src/lib/voting/tallier.d.ts.map +1 -0
  73. package/src/lib/voting/tallier.js +415 -0
  74. package/src/lib/voting/tallier.js.map +1 -0
  75. package/src/lib/voting/types.d.ts +145 -0
  76. package/src/lib/voting/types.d.ts.map +1 -0
  77. package/src/lib/voting/types.js +48 -0
  78. package/src/lib/voting/types.js.map +1 -0
  79. package/src/member.d.ts +2 -2
  80. package/src/member.d.ts.map +1 -1
  81. package/src/member.js +2 -2
  82. package/src/member.js.map +1 -1
  83. package/src/secure-string.d.ts +2 -2
  84. package/src/secure-string.d.ts.map +1 -1
  85. package/src/secure-string.js +2 -2
  86. package/src/secure-string.js.map +1 -1
  87. package/src/services/aes-gcm.js.map +1 -1
  88. package/src/services/chunk-processor.d.ts +2 -2
  89. package/src/services/chunk-processor.d.ts.map +1 -1
  90. package/src/services/chunk-processor.js +3 -3
  91. package/src/services/chunk-processor.js.map +1 -1
  92. package/src/services/ecies/service.d.ts +3 -0
  93. package/src/services/ecies/service.d.ts.map +1 -1
  94. package/src/services/ecies/service.js +6 -0
  95. package/src/services/ecies/service.js.map +1 -1
  96. package/src/services/ecies/single-recipient.d.ts +1 -1
  97. package/src/services/ecies/single-recipient.d.ts.map +1 -1
  98. package/src/services/ecies/single-recipient.js +1 -1
  99. package/src/services/ecies/single-recipient.js.map +1 -1
  100. package/src/services/encryption-stream.d.ts +3 -3
  101. package/src/services/encryption-stream.d.ts.map +1 -1
  102. package/src/services/encryption-stream.js +7 -7
  103. package/src/services/encryption-stream.js.map +1 -1
  104. package/src/services/index.d.ts +1 -0
  105. package/src/services/index.d.ts.map +1 -1
  106. package/src/services/index.js.map +1 -1
  107. package/src/services/multi-recipient-processor.d.ts +2 -2
  108. package/src/services/multi-recipient-processor.d.ts.map +1 -1
  109. package/src/services/multi-recipient-processor.js +4 -4
  110. package/src/services/multi-recipient-processor.js.map +1 -1
  111. package/src/services/voting.service.d.ts.map +1 -1
  112. package/src/services/voting.service.js +4 -4
  113. package/src/services/voting.service.js.map +1 -1
  114. package/src/test-mocks/mock-frontend-member.d.ts +1 -1
  115. package/src/test-mocks/mock-frontend-member.d.ts.map +1 -1
  116. package/src/test-mocks/mock-frontend-member.js +1 -1
  117. package/src/test-mocks/mock-frontend-member.js.map +1 -1
  118. package/src/types.d.ts +1 -1
  119. package/src/types.d.ts.map +1 -1
@@ -0,0 +1,455 @@
1
+ /**
2
+ * Voting Poll System Interfaces
3
+ *
4
+ * Common interfaces for the voting poll system that must be implemented
5
+ * consistently across ecies-lib (browser) and node-ecies-lib (Node.js).
6
+ *
7
+ * These interfaces ensure type safety and API consistency across platforms,
8
+ * enabling cross-platform voting applications with identical behavior.
9
+ */
10
+ import type { PublicKey, PrivateKey, KeyPair } from 'paillier-bigint';
11
+ import type { PlatformBuffer } from './platform-buffer';
12
+ /**
13
+ * Voting methods supported by the poll system.
14
+ * See VotingMethod in lib/voting/types.ts for detailed descriptions.
15
+ */
16
+ /**
17
+ * Voting methods supported by the poll system
18
+ */
19
+ export declare enum VotingMethod {
20
+ Plurality = "plurality",
21
+ Approval = "approval",
22
+ Weighted = "weighted",
23
+ Borda = "borda",
24
+ Score = "score",
25
+ YesNo = "yes-no",
26
+ YesNoAbstain = "yes-no-abstain",
27
+ Supermajority = "supermajority",
28
+ RankedChoice = "ranked-choice",
29
+ TwoRound = "two-round",
30
+ STAR = "star",
31
+ STV = "stv",
32
+ Quadratic = "quadratic",
33
+ Consensus = "consensus",
34
+ ConsentBased = "consent-based"
35
+ }
36
+ /**
37
+ * Vote receipt proving participation.
38
+ * Cryptographically signed proof that a vote was cast.
39
+ */
40
+ export interface IVoteReceipt {
41
+ /** Unique identifier of the voter */
42
+ voterId: PlatformBuffer;
43
+ /** Unique identifier of the poll */
44
+ pollId: PlatformBuffer;
45
+ /** Unix timestamp when vote was cast */
46
+ timestamp: number;
47
+ /** Cryptographic signature from poll authority */
48
+ signature: PlatformBuffer;
49
+ /** Random nonce for uniqueness */
50
+ nonce: PlatformBuffer;
51
+ }
52
+ /**
53
+ * Encrypted vote data using Paillier homomorphic encryption.
54
+ * Structure varies by voting method.
55
+ */
56
+ export interface IEncryptedVote {
57
+ /** Single choice index (for Plurality, Weighted, etc.) */
58
+ choiceIndex?: number;
59
+ /** Multiple choice indices (for Approval voting) */
60
+ choices?: number[];
61
+ /** Ranked choice indices in preference order (for RCV, Borda) */
62
+ rankings?: number[];
63
+ /** Vote weight (for Weighted voting) */
64
+ weight?: bigint;
65
+ /** Score value 0-10 (for Score voting) */
66
+ score?: number;
67
+ /** Array of encrypted vote values (one per choice) */
68
+ encrypted: bigint[];
69
+ /** Plaintext vote data (only for insecure methods) */
70
+ plaintext?: IPlaintextVote;
71
+ }
72
+ /**
73
+ * Plaintext vote data for insecure voting methods.
74
+ * WARNING: Only use for Quadratic, Consensus, or ConsentBased methods.
75
+ */
76
+ export interface IPlaintextVote {
77
+ /** Unique identifier of the voter */
78
+ voterId: PlatformBuffer;
79
+ /** Single choice index */
80
+ choiceIndex?: number;
81
+ /** Multiple choice indices */
82
+ choices?: number[];
83
+ /** Vote weight */
84
+ weight?: bigint;
85
+ /** Objection text (for consent-based voting) */
86
+ objection?: string;
87
+ }
88
+ /**
89
+ * Results of a completed poll after tallying.
90
+ * Includes winner(s), tallies, and round-by-round data for multi-round methods.
91
+ */
92
+ export interface IPollResults {
93
+ /** Voting method used */
94
+ method: VotingMethod;
95
+ /** Array of choice names */
96
+ choices: string[];
97
+ /** Index of winning choice (undefined if tie) */
98
+ winner?: number;
99
+ /** Indices of tied winners (for ties or multi-winner methods) */
100
+ winners?: number[];
101
+ /** Indices of eliminated choices (for RCV) */
102
+ eliminated?: number[];
103
+ /** Round-by-round results (for multi-round methods) */
104
+ rounds?: IRoundResult[];
105
+ /** Final vote tallies for each choice */
106
+ tallies: bigint[];
107
+ /** Total number of unique voters */
108
+ voterCount: number;
109
+ }
110
+ /**
111
+ * Results from a single round of multi-round voting.
112
+ * Used in RCV, Two-Round, STAR, and STV methods.
113
+ */
114
+ export interface IRoundResult {
115
+ /** Round number (1-indexed) */
116
+ round: number;
117
+ /** Vote tallies for this round */
118
+ tallies: bigint[];
119
+ /** Index of choice eliminated this round (if any) */
120
+ eliminated?: number;
121
+ /** Index of winner determined this round (if any) */
122
+ winner?: number;
123
+ }
124
+ /**
125
+ * Configuration for supermajority voting.
126
+ * Defines the required threshold as a fraction (e.g., 2/3, 3/4).
127
+ */
128
+ export interface ISupermajorityConfig {
129
+ /** Numerator of the fraction (e.g., 2 for 2/3) */
130
+ numerator: number;
131
+ /** Denominator of the fraction (e.g., 3 for 2/3) */
132
+ denominator: number;
133
+ }
134
+ /**
135
+ * Member interface for voting operations.
136
+ * Extends base member with voting-specific capabilities.
137
+ */
138
+ export interface IVotingMember {
139
+ /** Unique identifier of the member */
140
+ readonly id: PlatformBuffer;
141
+ /** ECDSA public key for signing */
142
+ readonly publicKey: PlatformBuffer;
143
+ /** Paillier public key for vote encryption (optional) */
144
+ readonly votingPublicKey?: PublicKey;
145
+ /** Paillier private key for vote decryption (optional) */
146
+ readonly votingPrivateKey?: PrivateKey;
147
+ /**
148
+ * Sign data with member's private key.
149
+ * @param data - Data to sign
150
+ * @returns Signature
151
+ */
152
+ sign(data: PlatformBuffer): PlatformBuffer;
153
+ /**
154
+ * Verify signature against data.
155
+ * @param signature - Signature to verify
156
+ * @param data - Original data
157
+ * @returns True if signature is valid
158
+ */
159
+ verify(signature: PlatformBuffer, data: PlatformBuffer): boolean;
160
+ }
161
+ /**
162
+ * Poll interface for vote aggregation and management.
163
+ * Holds encrypted votes and issues receipts, but cannot decrypt votes.
164
+ */
165
+ export interface IPoll {
166
+ /** Unique identifier of the poll */
167
+ readonly id: PlatformBuffer;
168
+ /** Array of choice names */
169
+ readonly choices: ReadonlyArray<string>;
170
+ /** Voting method used */
171
+ readonly method: VotingMethod;
172
+ /** Whether poll is closed to new votes */
173
+ readonly isClosed: boolean;
174
+ /** Total number of unique voters */
175
+ readonly voterCount: number;
176
+ /** Unix timestamp when poll was created */
177
+ readonly createdAt: number;
178
+ /** Unix timestamp when poll was closed (undefined if open) */
179
+ readonly closedAt: number | undefined;
180
+ /**
181
+ * Cast a vote in the poll.
182
+ * @param voter - Member casting the vote
183
+ * @param vote - Encrypted vote data
184
+ * @returns Vote receipt
185
+ * @throws Error if poll is closed or voter already voted
186
+ */
187
+ vote(voter: IVotingMember, vote: IEncryptedVote): IVoteReceipt;
188
+ /**
189
+ * Verify a vote receipt is valid.
190
+ * @param voter - Member who cast the vote
191
+ * @param receipt - Receipt to verify
192
+ * @returns True if receipt is valid
193
+ */
194
+ verifyReceipt(voter: IVotingMember, receipt: IVoteReceipt): boolean;
195
+ /**
196
+ * Close the poll to new votes.
197
+ * @throws Error if poll is already closed
198
+ */
199
+ close(): void;
200
+ /**
201
+ * Get encrypted votes for tallying (read-only).
202
+ * @returns Map of voter ID to encrypted vote data
203
+ */
204
+ getEncryptedVotes(): ReadonlyMap<string, readonly bigint[]>;
205
+ }
206
+ /**
207
+ * Vote encoder interface for encrypting votes.
208
+ * Converts vote choices into encrypted Paillier ciphertexts.
209
+ */
210
+ export interface IVoteEncoder {
211
+ /**
212
+ * Encode a plurality vote (single choice).
213
+ * @param choiceIndex - Index of chosen option
214
+ * @param choiceCount - Total number of choices
215
+ * @returns Encrypted vote
216
+ */
217
+ encodePlurality(choiceIndex: number, choiceCount: number): IEncryptedVote;
218
+ /**
219
+ * Encode an approval vote (multiple choices).
220
+ * @param choices - Indices of approved options
221
+ * @param choiceCount - Total number of choices
222
+ * @returns Encrypted vote
223
+ */
224
+ encodeApproval(choices: number[], choiceCount: number): IEncryptedVote;
225
+ /**
226
+ * Encode a weighted vote.
227
+ * @param choiceIndex - Index of chosen option
228
+ * @param weight - Vote weight (must be positive)
229
+ * @param choiceCount - Total number of choices
230
+ * @returns Encrypted vote
231
+ */
232
+ encodeWeighted(choiceIndex: number, weight: bigint, choiceCount: number): IEncryptedVote;
233
+ /**
234
+ * Encode a Borda count vote (ranked with points).
235
+ * @param rankings - Indices in preference order
236
+ * @param choiceCount - Total number of choices
237
+ * @returns Encrypted vote
238
+ */
239
+ encodeBorda(rankings: number[], choiceCount: number): IEncryptedVote;
240
+ /**
241
+ * Encode a ranked choice vote (for IRV).
242
+ * @param rankings - Indices in preference order
243
+ * @param choiceCount - Total number of choices
244
+ * @returns Encrypted vote
245
+ */
246
+ encodeRankedChoice(rankings: number[], choiceCount: number): IEncryptedVote;
247
+ /**
248
+ * Encode vote based on method.
249
+ * @param method - Voting method
250
+ * @param data - Vote data
251
+ * @param choiceCount - Total number of choices
252
+ * @returns Encrypted vote
253
+ */
254
+ encode(method: VotingMethod, data: {
255
+ choiceIndex?: number;
256
+ choices?: number[];
257
+ rankings?: number[];
258
+ weight?: bigint;
259
+ }, choiceCount: number): IEncryptedVote;
260
+ }
261
+ /**
262
+ * Poll tallier interface for decrypting and tallying votes.
263
+ * Holds private key and can decrypt results after poll closes.
264
+ */
265
+ export interface IPollTallier {
266
+ /**
267
+ * Tally votes and determine winner(s).
268
+ * @param poll - Poll to tally
269
+ * @returns Poll results
270
+ * @throws Error if poll is not closed
271
+ */
272
+ tally(poll: IPoll): IPollResults;
273
+ /**
274
+ * Tally ranked choice votes using IRV algorithm.
275
+ * @param poll - Poll to tally
276
+ * @returns Poll results with elimination rounds
277
+ */
278
+ tallyRankedChoice(poll: IPoll): IPollResults;
279
+ }
280
+ /**
281
+ * Poll factory interface for creating polls.
282
+ */
283
+ export interface IPollFactory {
284
+ /**
285
+ * Create a poll with specified method.
286
+ * @param choices - Array of choice names
287
+ * @param method - Voting method
288
+ * @param authority - Poll authority
289
+ * @param options - Optional configuration
290
+ * @returns New poll
291
+ */
292
+ create(choices: string[], method: VotingMethod, authority: IVotingMember, options?: {
293
+ maxWeight?: bigint;
294
+ }): IPoll;
295
+ /**
296
+ * Create a plurality poll.
297
+ * @param choices - Array of choice names
298
+ * @param authority - Poll authority
299
+ * @returns New poll
300
+ */
301
+ createPlurality(choices: string[], authority: IVotingMember): IPoll;
302
+ /**
303
+ * Create an approval voting poll.
304
+ * @param choices - Array of choice names
305
+ * @param authority - Poll authority
306
+ * @returns New poll
307
+ */
308
+ createApproval(choices: string[], authority: IVotingMember): IPoll;
309
+ /**
310
+ * Create a weighted voting poll.
311
+ * @param choices - Array of choice names
312
+ * @param authority - Poll authority
313
+ * @param maxWeight - Maximum vote weight
314
+ * @returns New poll
315
+ */
316
+ createWeighted(choices: string[], authority: IVotingMember, maxWeight: bigint): IPoll;
317
+ /**
318
+ * Create a Borda count poll.
319
+ * @param choices - Array of choice names
320
+ * @param authority - Poll authority
321
+ * @returns New poll
322
+ */
323
+ createBorda(choices: string[], authority: IVotingMember): IPoll;
324
+ /**
325
+ * Create a ranked choice poll.
326
+ * @param choices - Array of choice names
327
+ * @param authority - Poll authority
328
+ * @returns New poll
329
+ */
330
+ createRankedChoice(choices: string[], authority: IVotingMember): IPoll;
331
+ }
332
+ /**
333
+ * Options for deriving Paillier voting keys from ECDH keys.
334
+ */
335
+ export interface IVotingKeyDerivationOptions {
336
+ /** Elliptic curve name (default: 'secp256k1') */
337
+ curveName?: string;
338
+ /** Public key magic byte (default: 0x04) */
339
+ publicKeyMagic?: number;
340
+ /** Raw public key length (default: 64) */
341
+ rawPublicKeyLength?: number;
342
+ /** Public key length with prefix (default: 65) */
343
+ publicKeyLength?: number;
344
+ /** HMAC algorithm (default: 'sha512') */
345
+ hmacAlgorithm?: string;
346
+ /** HKDF info string (default: 'PaillierPrimeGen') */
347
+ hkdfInfo?: string;
348
+ /** HKDF output length (default: 64) */
349
+ hkdfLength?: number;
350
+ /** Key pair bit length (default: 3072) */
351
+ keypairBitLength?: number;
352
+ /** Prime test iterations (default: 256) */
353
+ primeTestIterations?: number;
354
+ /** Max prime generation attempts (default: 20000) */
355
+ maxPrimeAttempts?: number;
356
+ }
357
+ /**
358
+ * Security level classification for voting methods.
359
+ * Determines cryptographic security guarantees.
360
+ */
361
+ export declare enum SecurityLevel {
362
+ /** Fully homomorphic - no intermediate decryption required */
363
+ FullyHomomorphic = "fully-homomorphic",
364
+ /** Multi-round - requires intermediate decryption between rounds */
365
+ MultiRound = "multi-round",
366
+ /** Insecure - cannot be made secure with Paillier encryption */
367
+ Insecure = "insecure"
368
+ }
369
+ /**
370
+ * Voting security validator interface.
371
+ * Validates voting methods against security requirements.
372
+ */
373
+ export interface IVotingSecurityValidator {
374
+ /**
375
+ * Check if voting method is fully secure (no intermediate decryption).
376
+ * @param method - Voting method to check
377
+ * @returns True if method is fully homomorphic
378
+ */
379
+ isFullySecure(method: VotingMethod): boolean;
380
+ /**
381
+ * Check if voting method requires multiple rounds.
382
+ * @param method - Voting method to check
383
+ * @returns True if method requires intermediate decryption
384
+ */
385
+ requiresMultipleRounds(method: VotingMethod): boolean;
386
+ /**
387
+ * Get security level for voting method.
388
+ * @param method - Voting method to check
389
+ * @returns Security level classification
390
+ */
391
+ getSecurityLevel(method: VotingMethod): SecurityLevel;
392
+ /**
393
+ * Validate voting method against security requirements.
394
+ * Throws error if method doesn't meet requirements.
395
+ * @param method - Voting method to validate
396
+ * @param options - Validation options
397
+ * @throws Error if validation fails
398
+ */
399
+ validate(method: VotingMethod, options?: {
400
+ requireFullySecure?: boolean;
401
+ allowInsecure?: boolean;
402
+ }): void;
403
+ }
404
+ /**
405
+ * Integrated ECIES service with voting support.
406
+ * Provides access to voting key derivation and serialization.
407
+ */
408
+ export interface IECIESServiceWithVoting {
409
+ /** Voting service accessor */
410
+ readonly voting: {
411
+ /**
412
+ * Derive Paillier voting keys from ECDH key pair.
413
+ * @param ecdhPrivateKey - ECDH private key
414
+ * @param ecdhPublicKey - ECDH public key
415
+ * @param options - Derivation options
416
+ * @returns Paillier key pair
417
+ */
418
+ deriveVotingKeysFromECDH(ecdhPrivateKey: PlatformBuffer, ecdhPublicKey: PlatformBuffer, options?: IVotingKeyDerivationOptions): Promise<KeyPair>;
419
+ /**
420
+ * Generate deterministic key pair from seed.
421
+ * WARNING: For testing only!
422
+ * @param seed - Random seed (min 32 bytes)
423
+ * @param bitLength - Key bit length
424
+ * @param iterations - Prime test iterations
425
+ * @returns Paillier key pair
426
+ */
427
+ generateDeterministicKeyPair(seed: PlatformBuffer, bitLength?: number, iterations?: number): Promise<KeyPair>;
428
+ /**
429
+ * Serialize public key to buffer.
430
+ * @param publicKey - Public key
431
+ * @returns Serialized buffer
432
+ */
433
+ votingPublicKeyToBuffer(publicKey: PublicKey): PlatformBuffer | Promise<PlatformBuffer>;
434
+ /**
435
+ * Deserialize public key from buffer.
436
+ * @param buffer - Serialized buffer
437
+ * @returns Public key
438
+ */
439
+ bufferToVotingPublicKey(buffer: PlatformBuffer): Promise<PublicKey>;
440
+ /**
441
+ * Serialize private key to buffer.
442
+ * @param privateKey - Private key
443
+ * @returns Serialized buffer
444
+ */
445
+ votingPrivateKeyToBuffer(privateKey: PrivateKey): PlatformBuffer;
446
+ /**
447
+ * Deserialize private key from buffer.
448
+ * @param buffer - Serialized buffer
449
+ * @param publicKey - Corresponding public key
450
+ * @returns Private key
451
+ */
452
+ bufferToVotingPrivateKey(buffer: PlatformBuffer, publicKey: PublicKey): Promise<PrivateKey>;
453
+ };
454
+ }
455
+ //# sourceMappingURL=voting-poll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voting-poll.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/voting-poll.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /**
3
+ * Voting Poll System Interfaces
4
+ *
5
+ * Common interfaces for the voting poll system that must be implemented
6
+ * consistently across ecies-lib (browser) and node-ecies-lib (Node.js).
7
+ *
8
+ * These interfaces ensure type safety and API consistency across platforms,
9
+ * enabling cross-platform voting applications with identical behavior.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SecurityLevel = exports.VotingMethod = void 0;
13
+ /**
14
+ * Voting methods supported by the poll system.
15
+ * See VotingMethod in lib/voting/types.ts for detailed descriptions.
16
+ */
17
+ /**
18
+ * Voting methods supported by the poll system
19
+ */
20
+ var VotingMethod;
21
+ (function (VotingMethod) {
22
+ // Fully homomorphic (single-round, privacy-preserving)
23
+ VotingMethod["Plurality"] = "plurality";
24
+ VotingMethod["Approval"] = "approval";
25
+ VotingMethod["Weighted"] = "weighted";
26
+ VotingMethod["Borda"] = "borda";
27
+ VotingMethod["Score"] = "score";
28
+ VotingMethod["YesNo"] = "yes-no";
29
+ VotingMethod["YesNoAbstain"] = "yes-no-abstain";
30
+ VotingMethod["Supermajority"] = "supermajority";
31
+ // Multi-round (requires decryption between rounds)
32
+ VotingMethod["RankedChoice"] = "ranked-choice";
33
+ VotingMethod["TwoRound"] = "two-round";
34
+ VotingMethod["STAR"] = "star";
35
+ VotingMethod["STV"] = "stv";
36
+ // Insecure (requires non-additive operations)
37
+ VotingMethod["Quadratic"] = "quadratic";
38
+ VotingMethod["Consensus"] = "consensus";
39
+ VotingMethod["ConsentBased"] = "consent-based";
40
+ })(VotingMethod || (exports.VotingMethod = VotingMethod = {}));
41
+ /**
42
+ * Security level classification for voting methods.
43
+ * Determines cryptographic security guarantees.
44
+ */
45
+ var SecurityLevel;
46
+ (function (SecurityLevel) {
47
+ /** Fully homomorphic - no intermediate decryption required */
48
+ SecurityLevel["FullyHomomorphic"] = "fully-homomorphic";
49
+ /** Multi-round - requires intermediate decryption between rounds */
50
+ SecurityLevel["MultiRound"] = "multi-round";
51
+ /** Insecure - cannot be made secure with Paillier encryption */
52
+ SecurityLevel["Insecure"] = "insecure";
53
+ })(SecurityLevel || (exports.SecurityLevel = SecurityLevel = {}));
54
+ //# sourceMappingURL=voting-poll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voting-poll.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/voting-poll.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAKH;;;GAGG;AAEH;;GAEG;AACH,IAAY,YAqBX;AArBD,WAAY,YAAY;IACtB,uDAAuD;IACvD,uCAAuB,CAAA;IACvB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,+BAAe,CAAA;IACf,+BAAe,CAAA;IACf,gCAAgB,CAAA;IAChB,+CAA+B,CAAA;IAC/B,+CAA+B,CAAA;IAE/B,mDAAmD;IACnD,8CAA8B,CAAA;IAC9B,sCAAsB,CAAA;IACtB,6BAAa,CAAA;IACb,2BAAW,CAAA;IAEX,8CAA8C;IAC9C,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,8CAA8B,CAAA;AAChC,CAAC,EArBW,YAAY,4BAAZ,YAAY,QAqBvB;AAkWD;;;GAGG;AACH,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,8DAA8D;IAC9D,uDAAsC,CAAA;IACtC,oEAAoE;IACpE,2CAA0B,CAAA;IAC1B,gEAAgE;IAChE,sCAAqB,CAAA;AACvB,CAAC,EAPW,aAAa,6BAAb,aAAa,QAOxB"}
@@ -26,10 +26,6 @@ export declare class IsolatedPrivateKey extends PrivateKey implements IIsolatedP
26
26
  */
27
27
  private readonly _originalPublicKey;
28
28
  constructor(lambda: bigint, mu: bigint, publicKey: IsolatedPublicKey);
29
- /**
30
- * Converts hex string to Uint8Array
31
- */
32
- private hexToUint8Array;
33
29
  /**
34
30
  * Converts Uint8Array to hex string
35
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"isolated-private.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/isolated-private.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,qBAAa,kBACX,SAAQ,UACR,YAAW,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC;IAEnD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAa;IAE5C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAa;IAEjD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;gBAE3C,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB;IAepE;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACU,YAAY,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiEpE;;OAEG;IACM,OAAO,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM;IAInD;;OAEG;IACI,gBAAgB,IAAI,UAAU;IAIrC;;OAEG;IACI,qBAAqB,IAAI,UAAU;IAI1C;;OAEG;IACI,oBAAoB,IAAI,iBAAiB;IAIhD;;;OAGG;IACI,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGlE"}
1
+ {"version":3,"file":"isolated-private.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/isolated-private.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,qBAAa,kBACX,SAAQ,UACR,YAAW,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC;IAEnD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAa;IAE5C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAa;IAEjD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;gBAE3C,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB;IAepE;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACU,YAAY,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiEpE;;OAEG;IACM,OAAO,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM;IAInD;;OAEG;IACI,gBAAgB,IAAI,UAAU;IAIrC;;OAEG;IACI,qBAAqB,IAAI,UAAU;IAI1C;;OAEG;IACI,oBAAoB,IAAI,iBAAiB;IAIhD;;;OAGG;IACI,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGlE"}
@@ -42,19 +42,6 @@ class IsolatedPrivateKey extends paillier_bigint_1.PrivateKey {
42
42
  this._originalInstanceId = publicKey.getInstanceId();
43
43
  this._originalPublicKey = publicKey;
44
44
  }
45
- /**
46
- * Converts hex string to Uint8Array
47
- */
48
- hexToUint8Array(hex) {
49
- if (hex.length % 2 !== 0) {
50
- hex = '0' + hex;
51
- }
52
- const bytes = new Uint8Array(hex.length / 2);
53
- for (let i = 0; i < hex.length; i += 2) {
54
- bytes[i / 2] = parseInt(hex.substr(i, 2), 16);
55
- }
56
- return bytes;
57
- }
58
45
  /**
59
46
  * Converts Uint8Array to hex string
60
47
  */
@@ -1 +1 @@
1
- {"version":3,"file":"isolated-private.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/isolated-private.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isolated-private.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/isolated-private.ts"],"names":[],"mappings":"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"}
@@ -23,16 +23,18 @@ export declare class IsolatedPublicKey extends PublicKey implements IIsolatedPub
23
23
  readonly keyId: Uint8Array;
24
24
  /**
25
25
  * Original instance ID generated at construction time
26
+ * @deprecated Currently unused, may be used for instance tracking in future
26
27
  */
27
- private readonly _originalInstanceId;
28
+ private readonly ___originalInstanceId;
28
29
  /**
29
30
  * Current instance ID (can be updated via updateInstanceId())
30
31
  */
31
32
  private _currentInstanceId;
32
33
  /**
33
34
  * Unique salt used for instance ID generation
35
+ * @deprecated Currently stored but not actively used
34
36
  */
35
- private readonly uniqueInstanceSalt;
37
+ private readonly __uniqueInstanceSalt;
36
38
  /**
37
39
  * Updates the current instance ID to a new random value.
38
40
  * This invalidates all previously encrypted ciphertexts.
@@ -1 +1 @@
1
- {"version":3,"file":"isolated-public.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/isolated-public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;;;;;;;;;GAWG;AACH,qBAAa,iBACX,SAAQ,SACR,YAAW,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC;IAElD;;OAEG;WACW,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,IAAI,iBAAiB;IAI3E;;OAEG;IACH,SAAgB,KAAK,EAAE,UAAU,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAa;IAEjD;;OAEG;IACH,OAAO,CAAC,kBAAkB,CAAa;IAEvC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAa;IAEhD;;;OAGG;IACU,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9C;;OAEG;YACW,kBAAkB;IAuBhC;;OAEG;YACW,WAAW;IAKzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,eAAe;gBAMX,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAiBnD;;OAEG;WACiB,MAAM,CACxB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,iBAAiB,CAAC;IA4C7B;;;OAGG;WACW,UAAU,CACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,UAAU,GACrB,iBAAiB;IA8BpB;;OAEG;IACI,QAAQ,IAAI,UAAU;IAI7B;;OAEG;IACI,aAAa,IAAI,UAAU;IAIlC;;;OAGG;YACW,aAAa;IAoC3B;;;OAGG;IACU,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA4CvE;;OAEG;IACU,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrD;;OAEG;IACM,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAIpC;;OAEG;IACU,aAAa,CACxB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAmBlB;;OAEG;IACM,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAIjE;;OAEG;IACU,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBjE;;OAEG;IACM,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAIjD;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAc9C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;OAGG;IACI,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD;;;OAGG;IACI,gBAAgB,CACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAIlB;;;OAGG;IACI,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9D;;;OAGG;IACI,WAAW,IAAI,IAAI;CAG3B"}
1
+ {"version":3,"file":"isolated-public.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/isolated-public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;;;;;;;;;GAWG;AACH,qBAAa,iBACX,SAAQ,SACR,YAAW,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC;IAElD;;OAEG;WACW,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,IAAI,iBAAiB;IAI3E;;OAEG;IACH,SAAgB,KAAK,EAAE,UAAU,CAAC;IAElC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAa;IAEnD;;OAEG;IACH,OAAO,CAAC,kBAAkB,CAAa;IAEvC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAa;IAElD;;;OAGG;IACU,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9C;;OAEG;YACW,kBAAkB;IAuBhC;;OAEG;YACW,WAAW;IAQzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,eAAe;gBAMX,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAiBnD;;OAEG;WACiB,MAAM,CACxB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,iBAAiB,CAAC;IA4C7B;;;OAGG;WACW,UAAU,CACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,UAAU,GACrB,iBAAiB;IA8BpB;;OAEG;IACI,QAAQ,IAAI,UAAU;IAI7B;;OAEG;IACI,aAAa,IAAI,UAAU;IAIlC;;;OAGG;YACW,aAAa;IAoC3B;;;OAGG;IACU,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA4CvE;;OAEG;IACU,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrD;;OAEG;IACM,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAIpC;;OAEG;IACU,aAAa,CACxB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAmBlB;;OAEG;IACM,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAIjE;;OAEG;IACU,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBjE;;OAEG;IACM,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAIjD;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAc9C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;OAGG;IACI,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD;;;OAGG;IACI,gBAAgB,CACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAIlB;;;OAGG;IACI,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9D;;;OAGG;IACI,WAAW,IAAI,IAAI;CAG3B"}