@digitaldefiance/ecies-lib 4.5.18 → 4.6.1

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 (69) hide show
  1. package/package.json +1 -1
  2. package/src/constants.d.ts +7 -0
  3. package/src/constants.d.ts.map +1 -1
  4. package/src/constants.js +25 -1
  5. package/src/constants.js.map +1 -1
  6. package/src/enumerations/index.d.ts +1 -0
  7. package/src/enumerations/index.d.ts.map +1 -1
  8. package/src/enumerations/index.js +1 -0
  9. package/src/enumerations/index.js.map +1 -1
  10. package/src/enumerations/voting-error-type.d.ts +37 -0
  11. package/src/enumerations/voting-error-type.d.ts.map +1 -0
  12. package/src/enumerations/voting-error-type.js +48 -0
  13. package/src/enumerations/voting-error-type.js.map +1 -0
  14. package/src/errors/index.d.ts +1 -0
  15. package/src/errors/index.d.ts.map +1 -1
  16. package/src/errors/index.js +1 -0
  17. package/src/errors/index.js.map +1 -1
  18. package/src/errors/voting.d.ts +16 -0
  19. package/src/errors/voting.d.ts.map +1 -0
  20. package/src/errors/voting.js +25 -0
  21. package/src/errors/voting.js.map +1 -0
  22. package/src/index.d.ts +2 -0
  23. package/src/index.d.ts.map +1 -1
  24. package/src/index.js +2 -0
  25. package/src/index.js.map +1 -1
  26. package/src/interfaces/constants.d.ts +2 -0
  27. package/src/interfaces/constants.d.ts.map +1 -1
  28. package/src/interfaces/ecies-library.d.ts +259 -0
  29. package/src/interfaces/ecies-library.d.ts.map +1 -0
  30. package/src/interfaces/ecies-library.js +9 -0
  31. package/src/interfaces/ecies-library.js.map +1 -0
  32. package/src/interfaces/index.d.ts +5 -0
  33. package/src/interfaces/index.d.ts.map +1 -1
  34. package/src/interfaces/index.js +5 -0
  35. package/src/interfaces/index.js.map +1 -1
  36. package/src/interfaces/isolated-keys.d.ts +83 -0
  37. package/src/interfaces/isolated-keys.d.ts.map +1 -0
  38. package/src/interfaces/isolated-keys.js +8 -0
  39. package/src/interfaces/isolated-keys.js.map +1 -0
  40. package/src/interfaces/member.d.ts +25 -21
  41. package/src/interfaces/member.d.ts.map +1 -1
  42. package/src/interfaces/platform-buffer.d.ts +9 -0
  43. package/src/interfaces/platform-buffer.d.ts.map +1 -0
  44. package/src/interfaces/platform-buffer.js +3 -0
  45. package/src/interfaces/platform-buffer.js.map +1 -0
  46. package/src/interfaces/voting-consts.d.ts +82 -0
  47. package/src/interfaces/voting-consts.d.ts.map +1 -0
  48. package/src/interfaces/voting-consts.js +3 -0
  49. package/src/interfaces/voting-consts.js.map +1 -0
  50. package/src/interfaces/voting-service.d.ts +131 -0
  51. package/src/interfaces/voting-service.d.ts.map +1 -0
  52. package/src/interfaces/voting-service.js +10 -0
  53. package/src/interfaces/voting-service.js.map +1 -0
  54. package/src/isolated-private.d.ts +67 -0
  55. package/src/isolated-private.d.ts.map +1 -0
  56. package/src/isolated-private.js +155 -0
  57. package/src/isolated-private.js.map +1 -0
  58. package/src/isolated-public.d.ts +138 -0
  59. package/src/isolated-public.d.ts.map +1 -0
  60. package/src/isolated-public.js +362 -0
  61. package/src/isolated-public.js.map +1 -0
  62. package/src/services/index.d.ts +1 -1
  63. package/src/services/index.d.ts.map +1 -1
  64. package/src/services/index.js +1 -11
  65. package/src/services/index.js.map +1 -1
  66. package/src/services/voting.service.d.ts +32 -2
  67. package/src/services/voting.service.d.ts.map +1 -1
  68. package/src/services/voting.service.js +230 -27
  69. package/src/services/voting.service.js.map +1 -1
@@ -0,0 +1,362 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IsolatedPublicKey = void 0;
4
+ const paillier_bigint_1 = require("paillier-bigint");
5
+ const constants_1 = require("./constants");
6
+ const voting_error_type_1 = require("./enumerations/voting-error-type");
7
+ const voting_1 = require("./errors/voting");
8
+ /**
9
+ * IsolatedPublicKey extends Paillier PublicKey with instance isolation capabilities.
10
+ *
11
+ * This class provides:
12
+ * - keyId: A deterministic SHA-256 hash of the public key 'n' value for verification
13
+ * - instanceId: A unique identifier per key instance to prevent cross-instance operations
14
+ * - HMAC-tagged ciphertexts that bind encrypted values to a specific key instance
15
+ *
16
+ * Instance isolation ensures that ciphertexts encrypted with one instance cannot be
17
+ * used with another instance, even if they share the same underlying key material.
18
+ * This is critical for voting systems where ballot tampering must be prevented.
19
+ */
20
+ class IsolatedPublicKey extends paillier_bigint_1.PublicKey {
21
+ /**
22
+ * Type guard to check if a PublicKey is an IsolatedPublicKey
23
+ */
24
+ static isIsolatedPublicKey(key) {
25
+ return key instanceof IsolatedPublicKey;
26
+ }
27
+ /**
28
+ * Deterministic identifier derived from the public key (SHA-256 of 'n')
29
+ */
30
+ keyId;
31
+ /**
32
+ * Original instance ID generated at construction time
33
+ */
34
+ _originalInstanceId;
35
+ /**
36
+ * Current instance ID (can be updated via updateInstanceId())
37
+ */
38
+ _currentInstanceId;
39
+ /**
40
+ * Unique salt used for instance ID generation
41
+ */
42
+ uniqueInstanceSalt;
43
+ /**
44
+ * Updates the current instance ID to a new random value.
45
+ * This invalidates all previously encrypted ciphertexts.
46
+ */
47
+ async updateInstanceId() {
48
+ const randomSalt = new Uint8Array(32);
49
+ crypto.getRandomValues(randomSalt);
50
+ this._currentInstanceId = await this.generateInstanceId(this.keyId, this.n, randomSalt);
51
+ }
52
+ /**
53
+ * Generates a deterministic instance ID from keyId, n, and a unique salt
54
+ */
55
+ async generateInstanceId(keyId, n, uniqueInstanceSalt) {
56
+ // Convert n to hex string with proper padding
57
+ const nHex = n
58
+ .toString(constants_1.VOTING.KEY_RADIX)
59
+ .padStart(constants_1.VOTING.PUB_KEY_OFFSET, '0');
60
+ const nBytes = this.hexToUint8Array(nHex);
61
+ // Concatenate keyId + nBytes + salt
62
+ const combined = new Uint8Array(keyId.length + nBytes.length + uniqueInstanceSalt.length);
63
+ combined.set(keyId, 0);
64
+ combined.set(nBytes, keyId.length);
65
+ combined.set(uniqueInstanceSalt, keyId.length + nBytes.length);
66
+ // Return async hash
67
+ return this.sha256Async(combined);
68
+ }
69
+ /**
70
+ * Async SHA-256 hash using Web Crypto API
71
+ */
72
+ async sha256Async(data) {
73
+ const hashBuffer = await crypto.subtle.digest('SHA-256', data);
74
+ return new Uint8Array(hashBuffer);
75
+ }
76
+ /**
77
+ * Converts hex string to Uint8Array
78
+ */
79
+ hexToUint8Array(hex) {
80
+ if (hex.length % 2 !== 0) {
81
+ hex = '0' + hex;
82
+ }
83
+ const bytes = new Uint8Array(hex.length / 2);
84
+ for (let i = 0; i < hex.length; i += 2) {
85
+ bytes[i / 2] = parseInt(hex.substr(i, 2), 16);
86
+ }
87
+ return bytes;
88
+ }
89
+ /**
90
+ * Converts Uint8Array to hex string
91
+ */
92
+ uint8ArrayToHex(bytes) {
93
+ return Array.from(bytes)
94
+ .map((b) => b.toString(16).padStart(2, '0'))
95
+ .join('');
96
+ }
97
+ constructor(n, g, keyId) {
98
+ super(n, g);
99
+ this.keyId = keyId;
100
+ // Generate unique salt for this instance
101
+ const uniqueInstanceSalt = new Uint8Array(32);
102
+ crypto.getRandomValues(uniqueInstanceSalt);
103
+ this.uniqueInstanceSalt = uniqueInstanceSalt;
104
+ // Generate instance IDs (this is problematic with sync constructor)
105
+ // We'll need to handle this differently
106
+ this._originalInstanceId = new Uint8Array(32); // Placeholder
107
+ this._currentInstanceId = new Uint8Array(32); // Placeholder
108
+ // TODO: This needs to be refactored to use async factory method
109
+ }
110
+ /**
111
+ * Static factory method to create IsolatedPublicKey asynchronously
112
+ */
113
+ static async create(n, g, keyId) {
114
+ const key = new IsolatedPublicKey(n, g, keyId);
115
+ // Generate unique salt
116
+ const uniqueInstanceSalt = new Uint8Array(32);
117
+ crypto.getRandomValues(uniqueInstanceSalt);
118
+ // Generate instance ID asynchronously
119
+ const nHex = n
120
+ .toString(constants_1.VOTING.KEY_RADIX)
121
+ .padStart(constants_1.VOTING.PUB_KEY_OFFSET, '0');
122
+ const nBytes = key.hexToUint8Array(nHex);
123
+ const combined = new Uint8Array(keyId.length + nBytes.length + uniqueInstanceSalt.length);
124
+ combined.set(keyId, 0);
125
+ combined.set(nBytes, keyId.length);
126
+ combined.set(uniqueInstanceSalt, keyId.length + nBytes.length);
127
+ const instanceId = await key.sha256Async(combined);
128
+ // Use Object.defineProperty to set readonly fields
129
+ Object.defineProperty(key, 'uniqueInstanceSalt', {
130
+ value: uniqueInstanceSalt,
131
+ writable: false,
132
+ enumerable: true,
133
+ configurable: false,
134
+ });
135
+ Object.defineProperty(key, '_originalInstanceId', {
136
+ value: instanceId,
137
+ writable: false,
138
+ enumerable: false,
139
+ configurable: false,
140
+ });
141
+ Object.defineProperty(key, '_currentInstanceId', {
142
+ value: new Uint8Array(instanceId),
143
+ writable: true,
144
+ enumerable: false,
145
+ configurable: false,
146
+ });
147
+ return key;
148
+ }
149
+ /**
150
+ * Static factory method to create IsolatedPublicKey from deserialized data
151
+ * Used when reconstructing a key from a buffer with a stored instanceId
152
+ */
153
+ static fromBuffer(n, g, keyId, instanceId) {
154
+ const key = new IsolatedPublicKey(n, g, keyId);
155
+ // For deserialized keys, we don't have the original salt
156
+ // Set uniqueInstanceSalt to empty array
157
+ const uniqueInstanceSalt = new Uint8Array(0);
158
+ // Use Object.defineProperty to set readonly fields
159
+ Object.defineProperty(key, 'uniqueInstanceSalt', {
160
+ value: uniqueInstanceSalt,
161
+ writable: false,
162
+ enumerable: true,
163
+ configurable: false,
164
+ });
165
+ Object.defineProperty(key, '_originalInstanceId', {
166
+ value: instanceId,
167
+ writable: false,
168
+ enumerable: false,
169
+ configurable: false,
170
+ });
171
+ Object.defineProperty(key, '_currentInstanceId', {
172
+ value: new Uint8Array(instanceId),
173
+ writable: true,
174
+ enumerable: false,
175
+ configurable: false,
176
+ });
177
+ return key;
178
+ }
179
+ /**
180
+ * Returns a copy of the keyId
181
+ */
182
+ getKeyId() {
183
+ return new Uint8Array(this.keyId);
184
+ }
185
+ /**
186
+ * Returns a copy of the current instance ID
187
+ */
188
+ getInstanceId() {
189
+ return new Uint8Array(this._currentInstanceId);
190
+ }
191
+ /**
192
+ * Tags a ciphertext with an HMAC using keyId + instanceId
193
+ * Returns a new bigint with the HMAC appended
194
+ */
195
+ async tagCiphertext(ciphertext) {
196
+ // Create HMAC key from keyId + instanceId
197
+ const hmacKeyMaterial = new Uint8Array(this.keyId.length + this._currentInstanceId.length);
198
+ hmacKeyMaterial.set(this.keyId, 0);
199
+ hmacKeyMaterial.set(this._currentInstanceId, this.keyId.length);
200
+ // Import HMAC key
201
+ const hmacKey = await crypto.subtle.importKey('raw', hmacKeyMaterial, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
202
+ // Sign the ciphertext
203
+ const ciphertextHex = ciphertext.toString(constants_1.VOTING.KEY_RADIX);
204
+ const ciphertextBytes = new TextEncoder().encode(ciphertextHex);
205
+ const signature = await crypto.subtle.sign('HMAC', hmacKey, ciphertextBytes);
206
+ const signatureBytes = new Uint8Array(signature);
207
+ const signatureHex = this.uint8ArrayToHex(signatureBytes);
208
+ // Pad ciphertext and append HMAC
209
+ const hmacLength = 64; // 256 bits = 64 hex chars
210
+ const paddedCiphertext = ciphertextHex.padStart(hmacLength * 2, '0');
211
+ const taggedCiphertextString = paddedCiphertext + signatureHex;
212
+ return BigInt(`0x${taggedCiphertextString}`);
213
+ }
214
+ /**
215
+ * Extracts and validates the instance ID from a tagged ciphertext
216
+ * Returns the instance ID if valid, or zero-filled array if invalid
217
+ */
218
+ async extractInstanceId(ciphertext) {
219
+ try {
220
+ const hmacLength = 64;
221
+ const ciphertextString = ciphertext.toString(16);
222
+ const receivedHmac = ciphertextString.slice(-hmacLength);
223
+ const calculatedCiphertext = BigInt(`0x${ciphertextString.slice(0, -hmacLength)}`);
224
+ // Create HMAC key from keyId + current instanceId
225
+ const hmacKeyMaterial = new Uint8Array(this.keyId.length + this._currentInstanceId.length);
226
+ hmacKeyMaterial.set(this.keyId, 0);
227
+ hmacKeyMaterial.set(this._currentInstanceId, this.keyId.length);
228
+ const hmacKey = await crypto.subtle.importKey('raw', hmacKeyMaterial, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
229
+ // Calculate expected HMAC
230
+ const ciphertextHex = calculatedCiphertext.toString(constants_1.VOTING.KEY_RADIX);
231
+ const ciphertextBytes = new TextEncoder().encode(ciphertextHex);
232
+ const signature = await crypto.subtle.sign('HMAC', hmacKey, ciphertextBytes);
233
+ const expectedHmac = this.uint8ArrayToHex(new Uint8Array(signature));
234
+ // If HMAC matches, return current instance ID
235
+ return receivedHmac === expectedHmac
236
+ ? new Uint8Array(this._currentInstanceId)
237
+ : new Uint8Array([0]);
238
+ }
239
+ catch (_error) {
240
+ // If any error occurs, return invalid instance ID
241
+ return new Uint8Array([0]);
242
+ }
243
+ }
244
+ /**
245
+ * Encrypts a message and tags it with instance HMAC
246
+ */
247
+ async encryptAsync(m) {
248
+ await this.verifyKeyIdAsync();
249
+ const ciphertext = super.encrypt(m);
250
+ return this.tagCiphertext(ciphertext);
251
+ }
252
+ /**
253
+ * Synchronous encrypt override (throws error - use encryptAsync instead)
254
+ */
255
+ encrypt(_m) {
256
+ throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.KeyPairValidationFailed);
257
+ }
258
+ /**
259
+ * Multiplies a ciphertext by a constant, preserving instance HMAC
260
+ */
261
+ async multiplyAsync(ciphertext, constant) {
262
+ await this.verifyKeyIdAsync();
263
+ const instanceId = await this.extractInstanceId(ciphertext);
264
+ // Check if instance IDs match
265
+ if (!this.uint8ArrayEquals(instanceId, this._currentInstanceId)) {
266
+ throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InstanceIdMismatch);
267
+ }
268
+ const hmacLength = 64;
269
+ const ciphertextString = ciphertext.toString(constants_1.VOTING.KEY_RADIX);
270
+ const actualCiphertext = BigInt(`0x${ciphertextString.slice(0, -hmacLength)}`);
271
+ const product = super.multiply(actualCiphertext, constant);
272
+ return this.tagCiphertext(product);
273
+ }
274
+ /**
275
+ * Synchronous multiply override (throws error - use multiplyAsync instead)
276
+ */
277
+ multiply(_ciphertext, _constant) {
278
+ throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.KeyPairValidationFailed);
279
+ }
280
+ /**
281
+ * Adds two ciphertexts, preserving instance HMAC
282
+ */
283
+ async additionAsync(a, b) {
284
+ await this.verifyKeyIdAsync();
285
+ const aInstanceID = await this.extractInstanceId(a);
286
+ const bInstanceID = await this.extractInstanceId(b);
287
+ if (!this.uint8ArrayEquals(aInstanceID, this._currentInstanceId) ||
288
+ !this.uint8ArrayEquals(bInstanceID, this._currentInstanceId)) {
289
+ throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InstanceIdMismatch);
290
+ }
291
+ const hmacLength = 64;
292
+ const aCiphertextString = a.toString(constants_1.VOTING.KEY_RADIX);
293
+ const bCiphertextString = b.toString(constants_1.VOTING.KEY_RADIX);
294
+ const aCiphertext = BigInt(`0x${aCiphertextString.slice(0, -hmacLength)}`);
295
+ const bCiphertext = BigInt(`0x${bCiphertextString.slice(0, -hmacLength)}`);
296
+ const sum = super.addition(aCiphertext, bCiphertext);
297
+ return this.tagCiphertext(sum);
298
+ }
299
+ /**
300
+ * Synchronous addition override (throws error - use additionAsync instead)
301
+ */
302
+ addition(_a, _b) {
303
+ throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.KeyPairValidationFailed);
304
+ }
305
+ /**
306
+ * Verifies that the keyId matches the SHA-256 hash of the public key 'n'
307
+ */
308
+ async verifyKeyIdAsync() {
309
+ const nHex = this.n
310
+ .toString(constants_1.VOTING.KEY_RADIX)
311
+ .padStart(constants_1.VOTING.PUB_KEY_OFFSET, '0');
312
+ // Encode the hex string as UTF-8 bytes (not parse as hex digits)
313
+ const encoder = new TextEncoder();
314
+ const nBytes = encoder.encode(nHex);
315
+ const computedKeyId = await this.sha256Async(nBytes);
316
+ if (!this.uint8ArrayEquals(this.keyId, computedKeyId)) {
317
+ throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPublicKeyIdMismatch);
318
+ }
319
+ }
320
+ /**
321
+ * Compares two Uint8Arrays for equality
322
+ */
323
+ uint8ArrayEquals(a, b) {
324
+ if (a.length !== b.length)
325
+ return false;
326
+ for (let i = 0; i < a.length; i++) {
327
+ if (a[i] !== b[i])
328
+ return false;
329
+ }
330
+ return true;
331
+ }
332
+ /**
333
+ * Encrypts a message and tags it with instance HMAC
334
+ * Implements both sync and async interfaces
335
+ */
336
+ encryptIsolated(m) {
337
+ return this.encryptAsync(m);
338
+ }
339
+ /**
340
+ * Multiplies a ciphertext by a constant, preserving instance HMAC
341
+ * Implements both sync and async interfaces
342
+ */
343
+ multiplyIsolated(ciphertext, constant) {
344
+ return this.multiplyAsync(ciphertext, constant);
345
+ }
346
+ /**
347
+ * Adds two ciphertexts, preserving instance HMAC
348
+ * Implements both sync and async interfaces
349
+ */
350
+ additionIsolated(a, b) {
351
+ return this.additionAsync(a, b);
352
+ }
353
+ /**
354
+ * Verifies that the keyId matches the SHA-256 hash of the public key 'n'
355
+ * Sync version for interface compatibility
356
+ */
357
+ verifyKeyId() {
358
+ throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.KeyPairValidationFailed);
359
+ }
360
+ }
361
+ exports.IsolatedPublicKey = IsolatedPublicKey;
362
+ //# sourceMappingURL=isolated-public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolated-public.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/isolated-public.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,6 @@ export * from './password-login';
7
7
  export * from './pbkdf2';
8
8
  export * from './progress-tracker';
9
9
  export * from './resumable-encryption';
10
- export { VotingService, hkdf, millerRabinTest, modPow, modInverse, gcd, lcm, SecureDeterministicDRBG, generateDeterministicPrime, generateDeterministicKeyPair, deriveVotingKeysFromECDH, type DeriveVotingKeysOptions, } from './voting.service';
10
+ export { VotingService } from './voting.service';
11
11
  export * from './xor';
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,aAAa,EACb,IAAI,EACJ,eAAe,EACf,MAAM,EACN,UAAU,EACV,GAAG,EACH,GAAG,EACH,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,cAAc,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,cAAc,OAAO,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deriveVotingKeysFromECDH = exports.generateDeterministicKeyPair = exports.generateDeterministicPrime = exports.SecureDeterministicDRBG = exports.lcm = exports.gcd = exports.modInverse = exports.modPow = exports.millerRabinTest = exports.hkdf = exports.VotingService = void 0;
3
+ exports.VotingService = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  tslib_1.__exportStar(require("./aes-gcm"), exports);
6
6
  tslib_1.__exportStar(require("./chunk-processor"), exports);
@@ -13,15 +13,5 @@ tslib_1.__exportStar(require("./progress-tracker"), exports);
13
13
  tslib_1.__exportStar(require("./resumable-encryption"), exports);
14
14
  var voting_service_1 = require("./voting.service");
15
15
  Object.defineProperty(exports, "VotingService", { enumerable: true, get: function () { return voting_service_1.VotingService; } });
16
- Object.defineProperty(exports, "hkdf", { enumerable: true, get: function () { return voting_service_1.hkdf; } });
17
- Object.defineProperty(exports, "millerRabinTest", { enumerable: true, get: function () { return voting_service_1.millerRabinTest; } });
18
- Object.defineProperty(exports, "modPow", { enumerable: true, get: function () { return voting_service_1.modPow; } });
19
- Object.defineProperty(exports, "modInverse", { enumerable: true, get: function () { return voting_service_1.modInverse; } });
20
- Object.defineProperty(exports, "gcd", { enumerable: true, get: function () { return voting_service_1.gcd; } });
21
- Object.defineProperty(exports, "lcm", { enumerable: true, get: function () { return voting_service_1.lcm; } });
22
- Object.defineProperty(exports, "SecureDeterministicDRBG", { enumerable: true, get: function () { return voting_service_1.SecureDeterministicDRBG; } });
23
- Object.defineProperty(exports, "generateDeterministicPrime", { enumerable: true, get: function () { return voting_service_1.generateDeterministicPrime; } });
24
- Object.defineProperty(exports, "generateDeterministicKeyPair", { enumerable: true, get: function () { return voting_service_1.generateDeterministicKeyPair; } });
25
- Object.defineProperty(exports, "deriveVotingKeysFromECDH", { enumerable: true, get: function () { return voting_service_1.deriveVotingKeysFromECDH; } });
26
16
  tslib_1.__exportStar(require("./xor"), exports);
27
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/index.ts"],"names":[],"mappings":";;;;AAAA,oDAA0B;AAC1B,4DAAkC;AAClC,kDAAwB;AACxB,8DAAoC;AACpC,sEAA4C;AAC5C,2DAAiC;AACjC,mDAAyB;AACzB,6DAAmC;AACnC,iEAAuC;AACvC,mDAa0B;AAZxB,+GAAA,aAAa,OAAA;AACb,sGAAA,IAAI,OAAA;AACJ,iHAAA,eAAe,OAAA;AACf,wGAAA,MAAM,OAAA;AACN,4GAAA,UAAU,OAAA;AACV,qGAAA,GAAG,OAAA;AACH,qGAAA,GAAG,OAAA;AACH,yHAAA,uBAAuB,OAAA;AACvB,4HAAA,0BAA0B,OAAA;AAC1B,8HAAA,4BAA4B,OAAA;AAC5B,0HAAA,wBAAwB,OAAA;AAG1B,gDAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/index.ts"],"names":[],"mappings":";;;;AAAA,oDAA0B;AAC1B,4DAAkC;AAClC,kDAAwB;AACxB,8DAAoC;AACpC,sEAA4C;AAC5C,2DAAiC;AACjC,mDAAyB;AACzB,6DAAmC;AACnC,iEAAuC;AACvC,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,gDAAsB"}
@@ -4,6 +4,9 @@
4
4
  * Uses @noble/secp256k1 for ECDH (matching Node.js implementation).
5
5
  */
6
6
  import type { KeyPair, PrivateKey, PublicKey } from 'paillier-bigint';
7
+ import type { IVotingService } from '../interfaces/voting-service';
8
+ import { IsolatedPrivateKey } from '../isolated-private';
9
+ import { IsolatedPublicKey } from '../isolated-public';
7
10
  /**
8
11
  * Configuration options for deriving Paillier voting keys from ECDH keys.
9
12
  */
@@ -162,7 +165,7 @@ export declare function deriveVotingKeysFromECDH(ecdhPrivKey: Uint8Array, ecdhPu
162
165
  * For detailed security analysis, see:
163
166
  * docs/SECURITY_ANALYSIS_ECIES_PAILLIER_BRIDGE.md
164
167
  */
165
- export declare class VotingService {
168
+ export declare class VotingService implements IVotingService {
166
169
  private static instance?;
167
170
  /**
168
171
  * Get singleton instance of VotingService
@@ -215,17 +218,20 @@ export declare class VotingService {
215
218
  createDRBG(seed: Uint8Array, hmacAlgorithm?: string): Promise<SecureDeterministicDRBG>;
216
219
  /**
217
220
  * Serialize a Paillier public key to Uint8Array
221
+ * Format: [magic:4][version:1][keyId:32][n_length:4][n:variable]
218
222
  *
219
223
  * SECURITY: Public keys are safe to share. This serialization
220
224
  * format is deterministic and preserves all key information.
221
225
  */
222
- votingPublicKeyToBuffer(publicKey: PublicKey): Uint8Array;
226
+ votingPublicKeyToBuffer(publicKey: PublicKey): Promise<Uint8Array>;
223
227
  /**
224
228
  * Deserialize a Paillier public key from Uint8Array
229
+ * Format: [magic:4][version:1][keyId:32][n_length:4][n:variable]
225
230
  */
226
231
  bufferToVotingPublicKey(buffer: Uint8Array): Promise<PublicKey>;
227
232
  /**
228
233
  * Serialize a Paillier private key to Uint8Array
234
+ * Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable]
229
235
  *
230
236
  * SECURITY WARNING: Private keys must be kept secret!
231
237
  * - Only serialize for secure storage or transmission
@@ -236,8 +242,32 @@ export declare class VotingService {
236
242
  votingPrivateKeyToBuffer(privateKey: PrivateKey): Uint8Array;
237
243
  /**
238
244
  * Deserialize a Paillier private key from Uint8Array
245
+ * Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable]
239
246
  */
240
247
  bufferToVotingPrivateKey(buffer: Uint8Array, publicKey: PublicKey): Promise<PrivateKey>;
248
+ /**
249
+ * Serialize an IsolatedPublicKey to Uint8Array
250
+ * Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable]
251
+ */
252
+ isolatedPublicKeyToBuffer(publicKey: IsolatedPublicKey): Uint8Array;
253
+ /**
254
+ * Deserialize an IsolatedPublicKey from Uint8Array
255
+ * Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable]
256
+ */
257
+ bufferToIsolatedPublicKey(buffer: Uint8Array): Promise<IsolatedPublicKey>;
258
+ /**
259
+ * Serialize an IsolatedPrivateKey to Uint8Array
260
+ * Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable]
261
+ */
262
+ isolatedPrivateKeyToBuffer(privateKey: IsolatedPrivateKey): Uint8Array;
263
+ /**
264
+ * Deserialize an IsolatedPrivateKey from Uint8Array
265
+ * Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable]
266
+ */
267
+ bufferToIsolatedPrivateKey(buffer: Uint8Array, publicKey: IsolatedPublicKey): Promise<IsolatedPrivateKey>;
268
+ private hexToUint8Array;
269
+ private sha256;
270
+ private uint8ArrayEquals;
241
271
  serializePublicKey(publicKey: PublicKey): Promise<Uint8Array>;
242
272
  deserializePublicKey(buffer: Uint8Array): Promise<PublicKey>;
243
273
  serializePrivateKey(privateKey: PrivateKey): Promise<Uint8Array>;
@@ -1 +1 @@
1
- {"version":3,"file":"voting.service.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/voting.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voting.service.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/voting.service.ts"],"names":[],"mappings":"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"}