@digitaldefiance/node-ecies-lib 4.6.4 → 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.
- package/package.json +2 -2
- package/src/constants.d.ts.map +1 -1
- package/src/constants.js.map +1 -1
- package/src/index.d.ts +1 -1
- package/src/index.d.ts.map +1 -1
- package/src/index.js +0 -1
- package/src/index.js.map +1 -1
- package/src/lib/index.d.ts +1 -0
- package/src/lib/index.d.ts.map +1 -1
- package/src/lib/index.js +1 -0
- package/src/lib/index.js.map +1 -1
- package/src/lib/voting/audit.d.ts +44 -0
- package/src/lib/voting/audit.d.ts.map +1 -0
- package/src/lib/voting/audit.js +129 -0
- package/src/lib/voting/audit.js.map +1 -0
- package/src/lib/voting/encoder.d.ts +22 -0
- package/src/lib/voting/encoder.d.ts.map +1 -0
- package/src/lib/voting/encoder.js +115 -0
- package/src/lib/voting/encoder.js.map +1 -0
- package/src/lib/voting/factory.d.ts +14 -0
- package/src/lib/voting/factory.d.ts.map +1 -0
- package/src/lib/voting/factory.js +36 -0
- package/src/lib/voting/factory.js.map +1 -0
- package/src/lib/voting/index.d.ts +11 -0
- package/src/lib/voting/index.d.ts.map +1 -0
- package/src/lib/voting/index.js +24 -0
- package/src/lib/voting/index.js.map +1 -0
- package/src/lib/voting/poll-core.d.ts +34 -0
- package/src/lib/voting/poll-core.d.ts.map +1 -0
- package/src/lib/voting/poll-core.js +183 -0
- package/src/lib/voting/poll-core.js.map +1 -0
- package/src/lib/voting/security.d.ts +21 -0
- package/src/lib/voting/security.d.ts.map +1 -0
- package/src/lib/voting/security.js +54 -0
- package/src/lib/voting/security.js.map +1 -0
- package/src/lib/voting/tallier.d.ts +27 -0
- package/src/lib/voting/tallier.d.ts.map +1 -0
- package/src/lib/voting/tallier.js +373 -0
- package/src/lib/voting/tallier.js.map +1 -0
- package/src/lib/voting/types.d.ts +66 -0
- package/src/lib/voting/types.d.ts.map +1 -0
- package/src/lib/voting/types.js +29 -0
- package/src/lib/voting/types.js.map +1 -0
- package/src/services/ecies/service.d.ts +4 -4
- package/src/services/progress-tracker.d.ts.map +1 -1
- package/src/services/progress-tracker.js.map +1 -1
- package/src/services/voting.service.d.ts +0 -3
- package/src/services/voting.service.d.ts.map +1 -1
- package/src/services/voting.service.js +2 -3
- package/src/services/voting.service.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digitaldefiance/node-ecies-lib",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.7.0",
|
|
4
4
|
"description": "Digital Defiance Node ECIES Library",
|
|
5
5
|
"homepage": "https://github.com/Digital-Defiance/node-ecies-lib",
|
|
6
6
|
"repository": {
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
}
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@digitaldefiance/ecies-lib": "4.
|
|
68
|
+
"@digitaldefiance/ecies-lib": "4.7.0",
|
|
69
69
|
"@digitaldefiance/express-suite-test-utils": "1.0.14",
|
|
70
70
|
"@digitaldefiance/i18n-lib": "3.8.16",
|
|
71
71
|
"@ethereumjs/wallet": "^10.0.0",
|
package/src/constants.d.ts.map
CHANGED
|
@@ -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;AAQpC,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;
|
|
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;AAQpC,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;;;;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"}
|
package/src/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/constants.ts"],"names":[],"mappings":";;;AA2DA,kEAEC;AAED,4EAuBC;AAhFD,0DAKoC;AAEpC,kEAA2F;AAC3F,iCAIgB;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/constants.ts"],"names":[],"mappings":"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"}
|
package/src/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export * from './lib';
|
|
|
4
4
|
export * from './constants';
|
|
5
5
|
export * from './enumerations';
|
|
6
6
|
export * from './i18n';
|
|
7
|
-
export
|
|
7
|
+
export type { IMember } from './interfaces';
|
|
8
8
|
export * from './member';
|
|
9
9
|
export * from './types';
|
|
10
10
|
export { AESGCMService } from './services/aes-gcm';
|
package/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AAGtB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AAGtB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,YAAY,EACV,UAAU,EACV,SAAS,EACT,OAAO,IAAI,eAAe,GAC3B,MAAM,iBAAiB,CAAC"}
|
package/src/index.js
CHANGED
|
@@ -10,7 +10,6 @@ tslib_1.__exportStar(require("./lib"), exports);
|
|
|
10
10
|
tslib_1.__exportStar(require("./constants"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./enumerations"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./i18n"), exports);
|
|
13
|
-
tslib_1.__exportStar(require("./interfaces"), exports);
|
|
14
13
|
tslib_1.__exportStar(require("./member"), exports);
|
|
15
14
|
tslib_1.__exportStar(require("./types"), exports);
|
|
16
15
|
// Services - explicit exports to avoid conflicts
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":";;;;AAAA,0BAA0B;AAC1B,qDAA2B;AAC3B,iDAAuB;AACvB,gDAAsB;AAEtB,4CAA4C;AAC5C,sDAA4B;AAC5B,yDAA+B;AAC/B,iDAAuB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":";;;;AAAA,0BAA0B;AAC1B,qDAA2B;AAC3B,iDAAuB;AACvB,gDAAsB;AAEtB,4CAA4C;AAC5C,sDAA4B;AAC5B,yDAA+B;AAC/B,iDAAuB;AAEvB,mDAAyB;AACzB,kDAAwB;AAExB,iDAAiD;AACjD,8CAAmD;AAA1C,wGAAA,aAAa,OAAA;AACtB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,2DAAiC;AACjC,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,kFAA+E;AAAtE,oIAAA,uBAAuB,OAAA;AAChC,4CAAkD;AAAzC,uGAAA,aAAa,OAAA;AACtB,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AACxB,oEAA0C;AAE1C,kCAAkC;AAClC,qDAAsD;AAA7C,oHAAA,iBAAiB,OAAA;AAC1B,uDAAwD;AAA/C,sHAAA,kBAAkB,OAAA"}
|
package/src/lib/index.d.ts
CHANGED
package/src/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
|
package/src/lib/index.js
CHANGED
|
@@ -4,4 +4,5 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
tslib_1.__exportStar(require("./crypto-container"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./invariant-validator"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./invariants"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./voting"), exports);
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
package/src/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,gEAAsC;AACtC,uDAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,gEAAsC;AACtC,uDAA6B;AAC7B,mDAAyB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { IMember } from '../../interfaces/member';
|
|
2
|
+
export declare enum AuditEventType {
|
|
3
|
+
PollCreated = "poll_created",
|
|
4
|
+
VoteCast = "vote_cast",
|
|
5
|
+
PollClosed = "poll_closed"
|
|
6
|
+
}
|
|
7
|
+
export interface AuditEntry {
|
|
8
|
+
readonly sequence: number;
|
|
9
|
+
readonly eventType: AuditEventType;
|
|
10
|
+
readonly timestamp: number;
|
|
11
|
+
readonly pollId: Buffer;
|
|
12
|
+
readonly voterIdHash?: Buffer;
|
|
13
|
+
readonly authorityId?: Buffer;
|
|
14
|
+
readonly previousHash: Buffer;
|
|
15
|
+
readonly entryHash: Buffer;
|
|
16
|
+
readonly signature: Buffer;
|
|
17
|
+
readonly metadata?: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
export interface AuditLog {
|
|
20
|
+
getEntries(): readonly AuditEntry[];
|
|
21
|
+
getEntriesForPoll(pollId: Buffer): readonly AuditEntry[];
|
|
22
|
+
verifyChain(): boolean;
|
|
23
|
+
verifyEntry(entry: AuditEntry): boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare class ImmutableAuditLog implements AuditLog {
|
|
26
|
+
private readonly entries;
|
|
27
|
+
private readonly authority;
|
|
28
|
+
private sequence;
|
|
29
|
+
constructor(authority: IMember);
|
|
30
|
+
recordPollCreated(pollId: Buffer, metadata?: Record<string, unknown>): AuditEntry;
|
|
31
|
+
recordVoteCast(pollId: Buffer, voterIdHash: Buffer, metadata?: Record<string, unknown>): AuditEntry;
|
|
32
|
+
recordPollClosed(pollId: Buffer, metadata?: Record<string, unknown>): AuditEntry;
|
|
33
|
+
getEntries(): readonly AuditEntry[];
|
|
34
|
+
getEntriesForPoll(pollId: Buffer): readonly AuditEntry[];
|
|
35
|
+
verifyChain(): boolean;
|
|
36
|
+
verifyEntry(entry: AuditEntry): boolean;
|
|
37
|
+
private appendEntry;
|
|
38
|
+
private computeEntryHash;
|
|
39
|
+
private serializeEntryForHashing;
|
|
40
|
+
private serializeEntryForSigning;
|
|
41
|
+
private getMicrosecondTimestamp;
|
|
42
|
+
private encodeNumber;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/audit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,oBAAY,cAAc;IACxB,WAAW,iBAAiB;IAC5B,QAAQ,cAAc;IACtB,UAAU,gBAAgB;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,IAAI,SAAS,UAAU,EAAE,CAAC;IACpC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CAAC;IACzD,WAAW,IAAI,OAAO,CAAC;IACvB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;CACzC;AAED,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAK;gBAET,SAAS,EAAE,OAAO;IAI9B,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,UAAU;IASb,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,UAAU;IASb,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,UAAU;IASb,UAAU,IAAI,SAAS,UAAU,EAAE;IAInC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE;IAOxD,WAAW,IAAI,OAAO;IAetB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAQvC,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,YAAY;CAKrB"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ImmutableAuditLog = exports.AuditEventType = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Immutable Audit Log for Government-Grade Voting
|
|
6
|
+
* Node.js optimized with native crypto
|
|
7
|
+
*/
|
|
8
|
+
const crypto_1 = require("crypto");
|
|
9
|
+
const perf_hooks_1 = require("perf_hooks");
|
|
10
|
+
var AuditEventType;
|
|
11
|
+
(function (AuditEventType) {
|
|
12
|
+
AuditEventType["PollCreated"] = "poll_created";
|
|
13
|
+
AuditEventType["VoteCast"] = "vote_cast";
|
|
14
|
+
AuditEventType["PollClosed"] = "poll_closed";
|
|
15
|
+
})(AuditEventType || (exports.AuditEventType = AuditEventType = {}));
|
|
16
|
+
class ImmutableAuditLog {
|
|
17
|
+
entries = [];
|
|
18
|
+
authority;
|
|
19
|
+
sequence = 0;
|
|
20
|
+
constructor(authority) {
|
|
21
|
+
this.authority = authority;
|
|
22
|
+
}
|
|
23
|
+
recordPollCreated(pollId, metadata) {
|
|
24
|
+
return this.appendEntry({
|
|
25
|
+
eventType: AuditEventType.PollCreated,
|
|
26
|
+
pollId,
|
|
27
|
+
authorityId: this.authority.id,
|
|
28
|
+
metadata,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
recordVoteCast(pollId, voterIdHash, metadata) {
|
|
32
|
+
return this.appendEntry({
|
|
33
|
+
eventType: AuditEventType.VoteCast,
|
|
34
|
+
pollId,
|
|
35
|
+
voterIdHash,
|
|
36
|
+
metadata,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
recordPollClosed(pollId, metadata) {
|
|
40
|
+
return this.appendEntry({
|
|
41
|
+
eventType: AuditEventType.PollClosed,
|
|
42
|
+
pollId,
|
|
43
|
+
authorityId: this.authority.id,
|
|
44
|
+
metadata,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
getEntries() {
|
|
48
|
+
return Object.freeze([...this.entries]);
|
|
49
|
+
}
|
|
50
|
+
getEntriesForPoll(pollId) {
|
|
51
|
+
const pollIdStr = pollId.toString('hex');
|
|
52
|
+
return Object.freeze(this.entries.filter((e) => e.pollId.toString('hex') === pollIdStr));
|
|
53
|
+
}
|
|
54
|
+
verifyChain() {
|
|
55
|
+
if (this.entries.length === 0)
|
|
56
|
+
return true;
|
|
57
|
+
for (let i = 0; i < this.entries.length; i++) {
|
|
58
|
+
const entry = this.entries[i];
|
|
59
|
+
const computedHash = this.computeEntryHash(entry);
|
|
60
|
+
if (!computedHash.equals(entry.entryHash))
|
|
61
|
+
return false;
|
|
62
|
+
if (!this.verifyEntry(entry))
|
|
63
|
+
return false;
|
|
64
|
+
if (i > 0) {
|
|
65
|
+
const prevEntry = this.entries[i - 1];
|
|
66
|
+
if (!entry.previousHash.equals(prevEntry.entryHash))
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
verifyEntry(entry) {
|
|
73
|
+
const data = this.serializeEntryForSigning(entry);
|
|
74
|
+
return this.authority.verify(entry.signature, data);
|
|
75
|
+
}
|
|
76
|
+
appendEntry(partial) {
|
|
77
|
+
const previousHash = this.entries.length > 0
|
|
78
|
+
? this.entries[this.entries.length - 1].entryHash
|
|
79
|
+
: Buffer.alloc(32);
|
|
80
|
+
const entry = {
|
|
81
|
+
sequence: this.sequence++,
|
|
82
|
+
timestamp: this.getMicrosecondTimestamp(),
|
|
83
|
+
previousHash,
|
|
84
|
+
...partial,
|
|
85
|
+
};
|
|
86
|
+
const entryHash = this.computeEntryHash(entry);
|
|
87
|
+
const data = this.serializeEntryForSigning({ ...entry, entryHash });
|
|
88
|
+
const signature = this.authority.sign(data);
|
|
89
|
+
const finalEntry = { ...entry, entryHash, signature };
|
|
90
|
+
this.entries.push(finalEntry);
|
|
91
|
+
return finalEntry;
|
|
92
|
+
}
|
|
93
|
+
computeEntryHash(entry) {
|
|
94
|
+
const data = this.serializeEntryForHashing(entry);
|
|
95
|
+
return (0, crypto_1.createHash)('sha256').update(data).digest();
|
|
96
|
+
}
|
|
97
|
+
serializeEntryForHashing(entry) {
|
|
98
|
+
const parts = [
|
|
99
|
+
this.encodeNumber(entry.sequence),
|
|
100
|
+
Buffer.from(entry.eventType, 'utf8'),
|
|
101
|
+
this.encodeNumber(entry.timestamp),
|
|
102
|
+
entry.pollId,
|
|
103
|
+
entry.previousHash,
|
|
104
|
+
];
|
|
105
|
+
if (entry.voterIdHash)
|
|
106
|
+
parts.push(entry.voterIdHash);
|
|
107
|
+
if (entry.authorityId)
|
|
108
|
+
parts.push(entry.authorityId);
|
|
109
|
+
if (entry.metadata)
|
|
110
|
+
parts.push(Buffer.from(JSON.stringify(entry.metadata), 'utf8'));
|
|
111
|
+
return Buffer.concat(parts);
|
|
112
|
+
}
|
|
113
|
+
serializeEntryForSigning(entry) {
|
|
114
|
+
return Buffer.concat([
|
|
115
|
+
this.serializeEntryForHashing(entry),
|
|
116
|
+
entry.entryHash,
|
|
117
|
+
]);
|
|
118
|
+
}
|
|
119
|
+
getMicrosecondTimestamp() {
|
|
120
|
+
return Math.floor(perf_hooks_1.performance.now() * 1000) + Date.now() * 1000;
|
|
121
|
+
}
|
|
122
|
+
encodeNumber(n) {
|
|
123
|
+
const buf = Buffer.alloc(8);
|
|
124
|
+
buf.writeBigUInt64BE(BigInt(n));
|
|
125
|
+
return buf;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.ImmutableAuditLog = ImmutableAuditLog;
|
|
129
|
+
//# sourceMappingURL=audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vote Encoder - Encrypts votes using Paillier homomorphic encryption
|
|
3
|
+
* Node.js optimized
|
|
4
|
+
*/
|
|
5
|
+
import type { PublicKey } from 'paillier-bigint';
|
|
6
|
+
import { VotingMethod, type EncryptedVote } from './types';
|
|
7
|
+
export declare class VoteEncoder {
|
|
8
|
+
private readonly votingPublicKey;
|
|
9
|
+
constructor(votingPublicKey: PublicKey);
|
|
10
|
+
encodePlurality(choiceIndex: number, choiceCount: number): EncryptedVote;
|
|
11
|
+
encodeApproval(choices: number[], choiceCount: number): EncryptedVote;
|
|
12
|
+
encodeWeighted(choiceIndex: number, weight: bigint, choiceCount: number): EncryptedVote;
|
|
13
|
+
encodeBorda(rankings: number[], choiceCount: number): EncryptedVote;
|
|
14
|
+
encodeRankedChoice(rankings: number[], choiceCount: number): EncryptedVote;
|
|
15
|
+
encode(method: VotingMethod, data: {
|
|
16
|
+
choiceIndex?: number;
|
|
17
|
+
choices?: number[];
|
|
18
|
+
rankings?: number[];
|
|
19
|
+
weight?: bigint;
|
|
20
|
+
}, choiceCount: number): EncryptedVote;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=encoder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/encoder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAE3D,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,SAAS;IAEvD,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;IAYxE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;IAarE,cAAc,CACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,aAAa;IAYhB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;IAgBnE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;IAc1E,MAAM,CACJ,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE;QACJ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,EACD,WAAW,EAAE,MAAM,GAClB,aAAa;CA+CjB"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VoteEncoder = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
class VoteEncoder {
|
|
6
|
+
votingPublicKey;
|
|
7
|
+
constructor(votingPublicKey) {
|
|
8
|
+
this.votingPublicKey = votingPublicKey;
|
|
9
|
+
}
|
|
10
|
+
encodePlurality(choiceIndex, choiceCount) {
|
|
11
|
+
const encrypted = [];
|
|
12
|
+
for (let i = 0; i < choiceCount; i++) {
|
|
13
|
+
encrypted.push(i === choiceIndex
|
|
14
|
+
? this.votingPublicKey.encrypt(1n)
|
|
15
|
+
: this.votingPublicKey.encrypt(0n));
|
|
16
|
+
}
|
|
17
|
+
return { choiceIndex, encrypted };
|
|
18
|
+
}
|
|
19
|
+
encodeApproval(choices, choiceCount) {
|
|
20
|
+
const choiceSet = new Set(choices);
|
|
21
|
+
const encrypted = [];
|
|
22
|
+
for (let i = 0; i < choiceCount; i++) {
|
|
23
|
+
encrypted.push(choiceSet.has(i)
|
|
24
|
+
? this.votingPublicKey.encrypt(1n)
|
|
25
|
+
: this.votingPublicKey.encrypt(0n));
|
|
26
|
+
}
|
|
27
|
+
return { choices, encrypted };
|
|
28
|
+
}
|
|
29
|
+
encodeWeighted(choiceIndex, weight, choiceCount) {
|
|
30
|
+
const encrypted = [];
|
|
31
|
+
for (let i = 0; i < choiceCount; i++) {
|
|
32
|
+
encrypted.push(i === choiceIndex
|
|
33
|
+
? this.votingPublicKey.encrypt(weight)
|
|
34
|
+
: this.votingPublicKey.encrypt(0n));
|
|
35
|
+
}
|
|
36
|
+
return { choiceIndex, weight, encrypted };
|
|
37
|
+
}
|
|
38
|
+
encodeBorda(rankings, choiceCount) {
|
|
39
|
+
const encrypted = new Array(choiceCount);
|
|
40
|
+
const points = BigInt(rankings.length);
|
|
41
|
+
for (let i = 0; i < choiceCount; i++) {
|
|
42
|
+
encrypted[i] = this.votingPublicKey.encrypt(0n);
|
|
43
|
+
}
|
|
44
|
+
for (let rank = 0; rank < rankings.length; rank++) {
|
|
45
|
+
const choiceIndex = rankings[rank];
|
|
46
|
+
const choicePoints = points - BigInt(rank);
|
|
47
|
+
encrypted[choiceIndex] = this.votingPublicKey.encrypt(choicePoints);
|
|
48
|
+
}
|
|
49
|
+
return { rankings, encrypted };
|
|
50
|
+
}
|
|
51
|
+
encodeRankedChoice(rankings, choiceCount) {
|
|
52
|
+
const encrypted = new Array(choiceCount);
|
|
53
|
+
for (let i = 0; i < choiceCount; i++) {
|
|
54
|
+
encrypted[i] = this.votingPublicKey.encrypt(0n);
|
|
55
|
+
}
|
|
56
|
+
for (let rank = 0; rank < rankings.length; rank++) {
|
|
57
|
+
const choiceIndex = rankings[rank];
|
|
58
|
+
encrypted[choiceIndex] = this.votingPublicKey.encrypt(BigInt(rank + 1));
|
|
59
|
+
}
|
|
60
|
+
return { rankings, encrypted };
|
|
61
|
+
}
|
|
62
|
+
encode(method, data, choiceCount) {
|
|
63
|
+
switch (method) {
|
|
64
|
+
case types_1.VotingMethod.Plurality:
|
|
65
|
+
if (data.choiceIndex === undefined)
|
|
66
|
+
throw new Error('Choice required');
|
|
67
|
+
return this.encodePlurality(data.choiceIndex, choiceCount);
|
|
68
|
+
case types_1.VotingMethod.Approval:
|
|
69
|
+
if (!data.choices)
|
|
70
|
+
throw new Error('Choices required');
|
|
71
|
+
return this.encodeApproval(data.choices, choiceCount);
|
|
72
|
+
case types_1.VotingMethod.Weighted:
|
|
73
|
+
if (data.choiceIndex === undefined || !data.weight) {
|
|
74
|
+
throw new Error('Choice and weight required');
|
|
75
|
+
}
|
|
76
|
+
return this.encodeWeighted(data.choiceIndex, data.weight, choiceCount);
|
|
77
|
+
case types_1.VotingMethod.Borda:
|
|
78
|
+
if (!data.rankings)
|
|
79
|
+
throw new Error('Rankings required');
|
|
80
|
+
return this.encodeBorda(data.rankings, choiceCount);
|
|
81
|
+
case types_1.VotingMethod.RankedChoice:
|
|
82
|
+
if (!data.rankings)
|
|
83
|
+
throw new Error('Rankings required');
|
|
84
|
+
return this.encodeRankedChoice(data.rankings, choiceCount);
|
|
85
|
+
case types_1.VotingMethod.Quadratic:
|
|
86
|
+
if (data.choiceIndex === undefined || !data.weight) {
|
|
87
|
+
throw new Error('Choice and weight required');
|
|
88
|
+
}
|
|
89
|
+
return this.encodeWeighted(data.choiceIndex, data.weight, choiceCount);
|
|
90
|
+
case types_1.VotingMethod.Consensus:
|
|
91
|
+
if (data.choiceIndex === undefined)
|
|
92
|
+
throw new Error('Choice required');
|
|
93
|
+
return this.encodePlurality(data.choiceIndex, choiceCount);
|
|
94
|
+
case types_1.VotingMethod.ConsentBased: {
|
|
95
|
+
if (data.choiceIndex === undefined)
|
|
96
|
+
throw new Error('Choice required');
|
|
97
|
+
const encrypted = [];
|
|
98
|
+
for (let i = 0; i < choiceCount; i++) {
|
|
99
|
+
encrypted.push(i === data.choiceIndex
|
|
100
|
+
? this.votingPublicKey.encrypt(data.weight || 1n)
|
|
101
|
+
: this.votingPublicKey.encrypt(0n));
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
choiceIndex: data.choiceIndex,
|
|
105
|
+
weight: data.weight,
|
|
106
|
+
encrypted,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
default:
|
|
110
|
+
throw new Error('Unknown voting method');
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.VoteEncoder = VoteEncoder;
|
|
115
|
+
//# sourceMappingURL=encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/encoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IMember } from '../../interfaces/member';
|
|
2
|
+
import { Poll } from './poll-core';
|
|
3
|
+
import { VotingMethod } from './types';
|
|
4
|
+
export declare class PollFactory {
|
|
5
|
+
static create(choices: string[], method: VotingMethod, authority: IMember, options?: {
|
|
6
|
+
maxWeight?: bigint;
|
|
7
|
+
}): Poll;
|
|
8
|
+
static createPlurality(choices: string[], authority: IMember): Poll;
|
|
9
|
+
static createApproval(choices: string[], authority: IMember): Poll;
|
|
10
|
+
static createWeighted(choices: string[], authority: IMember, maxWeight: bigint): Poll;
|
|
11
|
+
static createBorda(choices: string[], authority: IMember): Poll;
|
|
12
|
+
static createRankedChoice(choices: string[], authority: IMember): Poll;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/factory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,qBAAa,WAAW;IACtB,MAAM,CAAC,MAAM,CACX,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/B,IAAI;IAcP,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAInE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAIlE,MAAM,CAAC,cAAc,CACnB,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,MAAM,GAChB,IAAI;IAMP,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAI/D,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;CAGvE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PollFactory = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Poll Factory - Node.js optimized
|
|
6
|
+
*/
|
|
7
|
+
const crypto_1 = require("crypto");
|
|
8
|
+
const poll_core_1 = require("./poll-core");
|
|
9
|
+
const types_1 = require("./types");
|
|
10
|
+
class PollFactory {
|
|
11
|
+
static create(choices, method, authority, options) {
|
|
12
|
+
if (!authority.votingPublicKey)
|
|
13
|
+
throw new Error('Authority must have voting public key');
|
|
14
|
+
const id = (0, crypto_1.randomBytes)(16);
|
|
15
|
+
return new poll_core_1.Poll(id, choices, method, authority, authority.votingPublicKey, options?.maxWeight);
|
|
16
|
+
}
|
|
17
|
+
static createPlurality(choices, authority) {
|
|
18
|
+
return this.create(choices, types_1.VotingMethod.Plurality, authority);
|
|
19
|
+
}
|
|
20
|
+
static createApproval(choices, authority) {
|
|
21
|
+
return this.create(choices, types_1.VotingMethod.Approval, authority);
|
|
22
|
+
}
|
|
23
|
+
static createWeighted(choices, authority, maxWeight) {
|
|
24
|
+
return this.create(choices, types_1.VotingMethod.Weighted, authority, {
|
|
25
|
+
maxWeight,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
static createBorda(choices, authority) {
|
|
29
|
+
return this.create(choices, types_1.VotingMethod.Borda, authority);
|
|
30
|
+
}
|
|
31
|
+
static createRankedChoice(choices, authority) {
|
|
32
|
+
return this.create(choices, types_1.VotingMethod.RankedChoice, authority);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.PollFactory = PollFactory;
|
|
36
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/factory.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,mCAAqC;AAIrC,2CAAmC;AACnC,mCAAuC;AAEvC,MAAa,WAAW;IACtB,MAAM,CAAC,MAAM,CACX,OAAiB,EACjB,MAAoB,EACpB,SAAkB,EAClB,OAAgC;QAEhC,IAAI,CAAC,SAAS,CAAC,eAAe;YAC5B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,MAAM,EAAE,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC;QAC3B,OAAO,IAAI,gBAAI,CACb,EAAE,EACF,OAAO,EACP,MAAM,EACN,SAAS,EACT,SAAS,CAAC,eAAe,EACzB,OAAO,EAAE,SAAS,CACnB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,SAAkB;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,OAAiB,EAAE,SAAkB;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,cAAc,CACnB,OAAiB,EACjB,SAAkB,EAClB,SAAiB;QAEjB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAY,CAAC,QAAQ,EAAE,SAAS,EAAE;YAC5D,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAiB,EAAE,SAAkB;QACtD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,OAAiB,EAAE,SAAkB;QAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;CACF;AA7CD,kCA6CC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secure Voting System - Node.js Optimized
|
|
3
|
+
*/
|
|
4
|
+
export { Poll } from './poll-core';
|
|
5
|
+
export { VoteEncoder } from './encoder';
|
|
6
|
+
export { PollTallier } from './tallier';
|
|
7
|
+
export { PollFactory } from './factory';
|
|
8
|
+
export { VotingSecurityValidator, VOTING_SECURITY, SecurityLevel, } from './security';
|
|
9
|
+
export { ImmutableAuditLog, AuditEventType, type AuditEntry, type AuditLog, } from './audit';
|
|
10
|
+
export { VotingMethod, type VoteReceipt, type PollResults, type RoundResult, type EncryptedVote, type SupermajorityConfig, type PlaintextVote, } from './types';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,KAAK,UAAU,EACf,KAAK,QAAQ,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Secure Voting System - Node.js Optimized
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.VotingMethod = exports.AuditEventType = exports.ImmutableAuditLog = exports.SecurityLevel = exports.VOTING_SECURITY = exports.VotingSecurityValidator = exports.PollFactory = exports.PollTallier = exports.VoteEncoder = exports.Poll = void 0;
|
|
7
|
+
var poll_core_1 = require("./poll-core");
|
|
8
|
+
Object.defineProperty(exports, "Poll", { enumerable: true, get: function () { return poll_core_1.Poll; } });
|
|
9
|
+
var encoder_1 = require("./encoder");
|
|
10
|
+
Object.defineProperty(exports, "VoteEncoder", { enumerable: true, get: function () { return encoder_1.VoteEncoder; } });
|
|
11
|
+
var tallier_1 = require("./tallier");
|
|
12
|
+
Object.defineProperty(exports, "PollTallier", { enumerable: true, get: function () { return tallier_1.PollTallier; } });
|
|
13
|
+
var factory_1 = require("./factory");
|
|
14
|
+
Object.defineProperty(exports, "PollFactory", { enumerable: true, get: function () { return factory_1.PollFactory; } });
|
|
15
|
+
var security_1 = require("./security");
|
|
16
|
+
Object.defineProperty(exports, "VotingSecurityValidator", { enumerable: true, get: function () { return security_1.VotingSecurityValidator; } });
|
|
17
|
+
Object.defineProperty(exports, "VOTING_SECURITY", { enumerable: true, get: function () { return security_1.VOTING_SECURITY; } });
|
|
18
|
+
Object.defineProperty(exports, "SecurityLevel", { enumerable: true, get: function () { return security_1.SecurityLevel; } });
|
|
19
|
+
var audit_1 = require("./audit");
|
|
20
|
+
Object.defineProperty(exports, "ImmutableAuditLog", { enumerable: true, get: function () { return audit_1.ImmutableAuditLog; } });
|
|
21
|
+
Object.defineProperty(exports, "AuditEventType", { enumerable: true, get: function () { return audit_1.AuditEventType; } });
|
|
22
|
+
var types_1 = require("./types");
|
|
23
|
+
Object.defineProperty(exports, "VotingMethod", { enumerable: true, get: function () { return types_1.VotingMethod; } });
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yCAAmC;AAA1B,iGAAA,IAAI,OAAA;AACb,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AACpB,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AACpB,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AACpB,uCAIoB;AAHlB,mHAAA,uBAAuB,OAAA;AACvB,2GAAA,eAAe,OAAA;AACf,yGAAA,aAAa,OAAA;AAEf,iCAKiB;AAJf,0GAAA,iBAAiB,OAAA;AACjB,uGAAA,cAAc,OAAA;AAIhB,iCAQiB;AAPf,qGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { PublicKey } from 'paillier-bigint';
|
|
2
|
+
import type { IMember } from '../../interfaces/member';
|
|
3
|
+
import { type AuditLog } from './audit';
|
|
4
|
+
import { VotingMethod, type VoteReceipt, type EncryptedVote } from './types';
|
|
5
|
+
export declare class Poll {
|
|
6
|
+
private readonly _id;
|
|
7
|
+
private readonly _choices;
|
|
8
|
+
private readonly _method;
|
|
9
|
+
private readonly _authority;
|
|
10
|
+
private readonly ___votingPublicKey;
|
|
11
|
+
private readonly _votes;
|
|
12
|
+
private readonly _receipts;
|
|
13
|
+
private readonly _createdAt;
|
|
14
|
+
private _closedAt?;
|
|
15
|
+
private _maxWeight?;
|
|
16
|
+
private readonly _auditLog;
|
|
17
|
+
constructor(id: Buffer, choices: string[], method: VotingMethod, authority: IMember, votingPublicKey: PublicKey, maxWeight?: bigint, allowInsecure?: boolean);
|
|
18
|
+
get id(): Buffer;
|
|
19
|
+
get choices(): ReadonlyArray<string>;
|
|
20
|
+
get method(): VotingMethod;
|
|
21
|
+
get isClosed(): boolean;
|
|
22
|
+
get voterCount(): number;
|
|
23
|
+
get createdAt(): number;
|
|
24
|
+
get closedAt(): number | undefined;
|
|
25
|
+
get auditLog(): AuditLog;
|
|
26
|
+
vote(voter: IMember, vote: EncryptedVote): VoteReceipt;
|
|
27
|
+
verifyReceipt(voter: IMember, receipt: VoteReceipt): boolean;
|
|
28
|
+
close(): void;
|
|
29
|
+
getEncryptedVotes(): ReadonlyMap<string, readonly bigint[]>;
|
|
30
|
+
private _validateVote;
|
|
31
|
+
private _generateReceipt;
|
|
32
|
+
private _receiptData;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=poll-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poll-core.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/poll-core.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7E,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;gBAG5C,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,OAAO,EAClB,eAAe,EAAE,SAAS,EAC1B,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,OAAO;IAqBzB,IAAI,EAAE,IAAI,MAAM,CAEf;IACD,IAAI,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAEnC;IACD,IAAI,MAAM,IAAI,YAAY,CAEzB;IACD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,UAAU,IAAI,MAAM,CAEvB;IACD,IAAI,SAAS,IAAI,MAAM,CAEtB;IACD,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IACD,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW;IAatD,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO;IAW5D,KAAK,IAAI,IAAI;IASb,iBAAiB,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAmB3D,OAAO,CAAC,aAAa;IAuCrB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,YAAY;CAUrB"}
|