@digitaldefiance/node-ecies-lib 4.8.1 → 4.8.2
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/builders/member-builder.d.ts +1 -1
- package/src/builders/member-builder.d.ts.map +1 -1
- package/src/builders/member-builder.js +3 -1
- package/src/builders/member-builder.js.map +1 -1
- package/src/interfaces/member-with-mnemonic.d.ts +3 -2
- package/src/interfaces/member-with-mnemonic.d.ts.map +1 -1
- package/src/interfaces/multi-encrypted-message.d.ts +2 -1
- package/src/interfaces/multi-encrypted-message.d.ts.map +1 -1
- package/src/interfaces/multi-encrypted-parsed-header.d.ts +3 -2
- package/src/interfaces/multi-encrypted-parsed-header.d.ts.map +1 -1
- package/src/interfaces/voting-poll.d.ts +32 -31
- package/src/interfaces/voting-poll.d.ts.map +1 -1
- package/src/interfaces/voting-poll.js.map +1 -1
- package/src/lib/voting/bulletin-board.d.ts +20 -19
- package/src/lib/voting/bulletin-board.d.ts.map +1 -1
- package/src/lib/voting/bulletin-board.js +13 -8
- package/src/lib/voting/bulletin-board.js.map +1 -1
- package/src/lib/voting/encoder.d.ts +8 -7
- package/src/lib/voting/encoder.d.ts.map +1 -1
- package/src/lib/voting/encoder.js.map +1 -1
- package/src/lib/voting/poll-core.d.ts +2 -2
- package/src/lib/voting/poll-core.d.ts.map +1 -1
- package/src/lib/voting/poll-core.js +6 -4
- package/src/lib/voting/poll-core.js.map +1 -1
- package/src/lib/voting/poll.d.ts +12 -11
- package/src/lib/voting/poll.d.ts.map +1 -1
- package/src/lib/voting/poll.js +5 -4
- package/src/lib/voting/poll.js.map +1 -1
- package/src/lib/voting/tallier.d.ts +4 -3
- package/src/lib/voting/tallier.d.ts.map +1 -1
- package/src/lib/voting/tallier.js.map +1 -1
- package/src/lib/voting/types.d.ts +8 -7
- package/src/lib/voting/types.d.ts.map +1 -1
- package/src/lib/voting/types.js.map +1 -1
- package/src/member.d.ts +1 -1
- package/src/member.d.ts.map +1 -1
- package/src/member.js +6 -5
- package/src/member.js.map +1 -1
- package/src/secure-buffer.d.ts.map +1 -1
- package/src/secure-buffer.js +2 -1
- package/src/secure-buffer.js.map +1 -1
- package/src/services/ecies/multi-recipient.d.ts +7 -6
- package/src/services/ecies/multi-recipient.d.ts.map +1 -1
- package/src/services/ecies/multi-recipient.js +15 -6
- package/src/services/ecies/multi-recipient.js.map +1 -1
- package/src/services/ecies/service.d.ts +13 -12
- package/src/services/ecies/service.d.ts.map +1 -1
- package/src/services/ecies/service.js.map +1 -1
- package/src/services/multi-recipient-processor.d.ts +12 -11
- package/src/services/multi-recipient-processor.d.ts.map +1 -1
- package/src/services/multi-recipient-processor.js +5 -1
- package/src/services/multi-recipient-processor.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digitaldefiance/node-ecies-lib",
|
|
3
|
-
"version": "4.8.
|
|
3
|
+
"version": "4.8.2",
|
|
4
4
|
"description": "Digital Defiance Node ECIES Library",
|
|
5
5
|
"homepage": "https://github.com/Digital-Defiance/node-ecies-lib",
|
|
6
6
|
"repository": {
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"license": "MIT",
|
|
58
58
|
"packageManager": "yarn@4.10.3",
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@digitaldefiance/ecies-lib": "4.8.
|
|
60
|
+
"@digitaldefiance/ecies-lib": "4.8.2",
|
|
61
61
|
"@digitaldefiance/express-suite-test-utils": "1.0.14",
|
|
62
62
|
"@digitaldefiance/i18n-lib": "3.8.16",
|
|
63
63
|
"@ethereumjs/wallet": "^10.0.0",
|
|
@@ -28,7 +28,7 @@ export declare class MemberBuilder {
|
|
|
28
28
|
* @param createdBy - Optional creator ID
|
|
29
29
|
* @returns Member with mnemonic
|
|
30
30
|
*/
|
|
31
|
-
static newMember(type: MemberType, name: string, email: EmailString | string, forceMnemonic?: SecureString, createdBy?:
|
|
31
|
+
static newMember<TID extends PlatformID = Buffer>(type: MemberType, name: string, email: EmailString | string, forceMnemonic?: SecureString, createdBy?: TID): IBackendMemberWithMnemonic<TID>;
|
|
32
32
|
/**
|
|
33
33
|
* Convenience factory method to create a member from JSON with default ECIESService
|
|
34
34
|
* @param json - JSON string representation of member
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/builders/member-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACb,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"member-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/builders/member-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACb,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,IAAI,CAAC,CAAa;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAC,CAAe;IAChC,OAAO,CAAC,SAAS,CAAC,CAAS;IAE3B,MAAM,CAAC,MAAM,IAAI,aAAa;IAI9B,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAK7C,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAKhC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK5B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAK5C,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAK1C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKtC,gBAAgB,IAAI,IAAI;IAcxB,KAAK,IAAI,0BAA0B;IA6BnC;;;;;;;;OAQG;IACH,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,UAAU,GAAG,MAAM,EAC9C,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,WAAW,GAAG,MAAM,EAC3B,aAAa,CAAC,EAAE,YAAY,EAC5B,SAAS,CAAC,EAAE,GAAG,GACd,0BAA0B,CAAC,GAAG,CAAC;IAclC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,UAAU,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;IAK3E;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,UAAU,GAAG,MAAM,EACjD,QAAQ,EAAE,YAAY,EACtB,UAAU,aAAkB,EAC5B,IAAI,SAAc,EAClB,KAAK,GAAE,WAAW,GAAG,MAA2B,GAC/C,MAAM,CAAC,GAAG,CAAC;CAYf"}
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MemberBuilder = void 0;
|
|
4
4
|
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
5
|
+
const constants_1 = require("../constants");
|
|
5
6
|
const ecies_i18n_factory_1 = require("../i18n/ecies-i18n-factory");
|
|
6
7
|
const node_ecies_i18n_setup_1 = require("../i18n/node-ecies-i18n-setup");
|
|
7
8
|
const member_1 = require("../member");
|
|
8
9
|
const ecies_1 = require("../services/ecies");
|
|
10
|
+
const Constants = (0, constants_1.getNodeRuntimeConfiguration)();
|
|
9
11
|
class MemberBuilder {
|
|
10
12
|
eciesService;
|
|
11
13
|
type;
|
|
@@ -68,7 +70,7 @@ class MemberBuilder {
|
|
|
68
70
|
* @returns Member with mnemonic
|
|
69
71
|
*/
|
|
70
72
|
static newMember(type, name, email, forceMnemonic, createdBy) {
|
|
71
|
-
const service = new ecies_1.ECIESService();
|
|
73
|
+
const service = new ecies_1.ECIESService(Constants);
|
|
72
74
|
const emailObj = typeof email === 'string' ? new ecies_lib_1.EmailString(email) : email;
|
|
73
75
|
return member_1.Member.newMember(service, type, name, emailObj, forceMnemonic, createdBy);
|
|
74
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-builder.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/builders/member-builder.ts"],"names":[],"mappings":";;;AAAA,0DAIoC;AAEpC,mEAGoC;AACpC,yEAAuE;AAGvE,sCAAmC;AACnC,6CAAiD;
|
|
1
|
+
{"version":3,"file":"member-builder.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/builders/member-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { SecureString } from '@digitaldefiance/ecies-lib';
|
|
2
2
|
import type { IMember } from './member';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import type { PlatformID } from './platform-id';
|
|
4
|
+
export interface IBackendMemberWithMnemonic<TID extends PlatformID = Buffer> {
|
|
5
|
+
member: IMember<TID>;
|
|
5
6
|
mnemonic: SecureString;
|
|
6
7
|
}
|
|
7
8
|
//# sourceMappingURL=member-with-mnemonic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-with-mnemonic.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/member-with-mnemonic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"member-with-mnemonic.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/member-with-mnemonic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,0BAA0B,CAAC,GAAG,SAAS,UAAU,GAAG,MAAM;IACzE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;CACxB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { IMultiEncryptedParsedHeader } from './multi-encrypted-parsed-header';
|
|
2
|
-
|
|
2
|
+
import type { PlatformID } from './platform-id';
|
|
3
|
+
export interface IMultiEncryptedMessage<TID extends PlatformID = Buffer> extends IMultiEncryptedParsedHeader<TID> {
|
|
3
4
|
/**
|
|
4
5
|
* The encrypted message.
|
|
5
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-encrypted-message.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/multi-encrypted-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-encrypted-message.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/multi-encrypted-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,sBAAsB,CACrC,GAAG,SAAS,UAAU,GAAG,MAAM,CAC/B,SAAQ,2BAA2B,CAAC,GAAG,CAAC;IACxC;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import type { PlatformID } from './platform-id';
|
|
2
|
+
export interface IMultiEncryptedParsedHeader<TID extends PlatformID = Buffer> {
|
|
2
3
|
/**
|
|
3
4
|
* The length of the data before encryption
|
|
4
5
|
*/
|
|
@@ -10,7 +11,7 @@ export interface IMultiEncryptedParsedHeader {
|
|
|
10
11
|
/**
|
|
11
12
|
* The IDs of the recipients
|
|
12
13
|
*/
|
|
13
|
-
readonly recipientIds:
|
|
14
|
+
readonly recipientIds: TID[];
|
|
14
15
|
/**
|
|
15
16
|
* An encrypted version of the symmetric key for each recipient
|
|
16
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-encrypted-parsed-header.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/multi-encrypted-parsed-header.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,2BAA2B;
|
|
1
|
+
{"version":3,"file":"multi-encrypted-parsed-header.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/multi-encrypted-parsed-header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,2BAA2B,CAAC,GAAG,SAAS,UAAU,GAAG,MAAM;IAC1E;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IACjC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* These interfaces ensure type safety and API consistency with the browser version.
|
|
6
6
|
*/
|
|
7
7
|
import type { PublicKey, PrivateKey, KeyPair } from 'paillier-bigint';
|
|
8
|
+
import type { PlatformID } from './platform-id';
|
|
8
9
|
/**
|
|
9
10
|
* Voting methods supported by the poll system
|
|
10
11
|
*/
|
|
@@ -29,11 +30,11 @@ export declare enum VotingMethod {
|
|
|
29
30
|
* Vote receipt proving participation.
|
|
30
31
|
* Cryptographically signed proof that a vote was cast.
|
|
31
32
|
*/
|
|
32
|
-
export interface IVoteReceipt {
|
|
33
|
+
export interface IVoteReceipt<TID extends PlatformID = Buffer> {
|
|
33
34
|
/** Unique identifier of the voter */
|
|
34
|
-
voterId:
|
|
35
|
+
voterId: TID;
|
|
35
36
|
/** Unique identifier of the poll */
|
|
36
|
-
pollId:
|
|
37
|
+
pollId: TID;
|
|
37
38
|
/** Unix timestamp when vote was cast */
|
|
38
39
|
timestamp: number;
|
|
39
40
|
/** Cryptographic signature from poll authority */
|
|
@@ -45,7 +46,7 @@ export interface IVoteReceipt {
|
|
|
45
46
|
* Encrypted vote data using Paillier homomorphic encryption.
|
|
46
47
|
* Structure varies by voting method.
|
|
47
48
|
*/
|
|
48
|
-
export interface IEncryptedVote {
|
|
49
|
+
export interface IEncryptedVote<TID extends PlatformID = Buffer> {
|
|
49
50
|
/** Single choice index (for Plurality, Weighted, etc.) */
|
|
50
51
|
choiceIndex?: number;
|
|
51
52
|
/** Multiple choice indices (for Approval voting) */
|
|
@@ -59,15 +60,15 @@ export interface IEncryptedVote {
|
|
|
59
60
|
/** Array of encrypted vote values (one per choice) */
|
|
60
61
|
encrypted: bigint[];
|
|
61
62
|
/** Plaintext vote data (only for insecure methods) */
|
|
62
|
-
plaintext?: IPlaintextVote
|
|
63
|
+
plaintext?: IPlaintextVote<TID>;
|
|
63
64
|
}
|
|
64
65
|
/**
|
|
65
66
|
* Plaintext vote data for insecure voting methods.
|
|
66
67
|
* WARNING: Only use for Quadratic, Consensus, or ConsentBased methods.
|
|
67
68
|
*/
|
|
68
|
-
export interface IPlaintextVote {
|
|
69
|
+
export interface IPlaintextVote<TID extends PlatformID = Buffer> {
|
|
69
70
|
/** Unique identifier of the voter */
|
|
70
|
-
voterId:
|
|
71
|
+
voterId: TID;
|
|
71
72
|
/** Single choice index */
|
|
72
73
|
choiceIndex?: number;
|
|
73
74
|
/** Multiple choice indices */
|
|
@@ -127,9 +128,9 @@ export interface ISupermajorityConfig {
|
|
|
127
128
|
* Member interface for voting operations.
|
|
128
129
|
* Extends base member with voting-specific capabilities.
|
|
129
130
|
*/
|
|
130
|
-
export interface IVotingMember {
|
|
131
|
+
export interface IVotingMember<TID extends PlatformID = Buffer> {
|
|
131
132
|
/** Unique identifier of the member */
|
|
132
|
-
readonly id:
|
|
133
|
+
readonly id: TID;
|
|
133
134
|
/** ECDSA public key for signing */
|
|
134
135
|
readonly publicKey: Buffer;
|
|
135
136
|
/** Paillier public key for vote encryption (optional) */
|
|
@@ -154,9 +155,9 @@ export interface IVotingMember {
|
|
|
154
155
|
* Poll interface for vote aggregation and management.
|
|
155
156
|
* Holds encrypted votes and issues receipts, but cannot decrypt votes.
|
|
156
157
|
*/
|
|
157
|
-
export interface IPoll {
|
|
158
|
+
export interface IPoll<TID extends PlatformID = Buffer> {
|
|
158
159
|
/** Unique identifier of the poll */
|
|
159
|
-
readonly id:
|
|
160
|
+
readonly id: TID;
|
|
160
161
|
/** Array of choice names */
|
|
161
162
|
readonly choices: ReadonlyArray<string>;
|
|
162
163
|
/** Voting method used */
|
|
@@ -176,14 +177,14 @@ export interface IPoll {
|
|
|
176
177
|
* @returns Vote receipt
|
|
177
178
|
* @throws Error if poll is closed or voter already voted
|
|
178
179
|
*/
|
|
179
|
-
vote(voter: IVotingMember
|
|
180
|
+
vote(voter: IVotingMember<TID>, vote: IEncryptedVote<TID>): IVoteReceipt<TID>;
|
|
180
181
|
/**
|
|
181
182
|
* Verify a vote receipt is valid.
|
|
182
183
|
* @param voter - Member who cast the vote
|
|
183
184
|
* @param receipt - Receipt to verify
|
|
184
185
|
* @returns True if receipt is valid
|
|
185
186
|
*/
|
|
186
|
-
verifyReceipt(voter: IVotingMember
|
|
187
|
+
verifyReceipt(voter: IVotingMember<TID>, receipt: IVoteReceipt<TID>): boolean;
|
|
187
188
|
/**
|
|
188
189
|
* Close the poll to new votes.
|
|
189
190
|
* @throws Error if poll is already closed
|
|
@@ -199,21 +200,21 @@ export interface IPoll {
|
|
|
199
200
|
* Vote encoder interface for encrypting votes.
|
|
200
201
|
* Converts vote choices into encrypted Paillier ciphertexts.
|
|
201
202
|
*/
|
|
202
|
-
export interface IVoteEncoder {
|
|
203
|
+
export interface IVoteEncoder<TID extends PlatformID = Buffer> {
|
|
203
204
|
/**
|
|
204
205
|
* Encode a plurality vote (single choice).
|
|
205
206
|
* @param choiceIndex - Index of chosen option
|
|
206
207
|
* @param choiceCount - Total number of choices
|
|
207
208
|
* @returns Encrypted vote
|
|
208
209
|
*/
|
|
209
|
-
encodePlurality(choiceIndex: number, choiceCount: number): IEncryptedVote
|
|
210
|
+
encodePlurality(choiceIndex: number, choiceCount: number): IEncryptedVote<TID>;
|
|
210
211
|
/**
|
|
211
212
|
* Encode an approval vote (multiple choices).
|
|
212
213
|
* @param choices - Indices of approved options
|
|
213
214
|
* @param choiceCount - Total number of choices
|
|
214
215
|
* @returns Encrypted vote
|
|
215
216
|
*/
|
|
216
|
-
encodeApproval(choices: number[], choiceCount: number): IEncryptedVote
|
|
217
|
+
encodeApproval(choices: number[], choiceCount: number): IEncryptedVote<TID>;
|
|
217
218
|
/**
|
|
218
219
|
* Encode a weighted vote.
|
|
219
220
|
* @param choiceIndex - Index of chosen option
|
|
@@ -221,21 +222,21 @@ export interface IVoteEncoder {
|
|
|
221
222
|
* @param choiceCount - Total number of choices
|
|
222
223
|
* @returns Encrypted vote
|
|
223
224
|
*/
|
|
224
|
-
encodeWeighted(choiceIndex: number, weight: bigint, choiceCount: number): IEncryptedVote
|
|
225
|
+
encodeWeighted(choiceIndex: number, weight: bigint, choiceCount: number): IEncryptedVote<TID>;
|
|
225
226
|
/**
|
|
226
227
|
* Encode a Borda count vote (ranked with points).
|
|
227
228
|
* @param rankings - Indices in preference order
|
|
228
229
|
* @param choiceCount - Total number of choices
|
|
229
230
|
* @returns Encrypted vote
|
|
230
231
|
*/
|
|
231
|
-
encodeBorda(rankings: number[], choiceCount: number): IEncryptedVote
|
|
232
|
+
encodeBorda(rankings: number[], choiceCount: number): IEncryptedVote<TID>;
|
|
232
233
|
/**
|
|
233
234
|
* Encode a ranked choice vote (for IRV).
|
|
234
235
|
* @param rankings - Indices in preference order
|
|
235
236
|
* @param choiceCount - Total number of choices
|
|
236
237
|
* @returns Encrypted vote
|
|
237
238
|
*/
|
|
238
|
-
encodeRankedChoice(rankings: number[], choiceCount: number): IEncryptedVote
|
|
239
|
+
encodeRankedChoice(rankings: number[], choiceCount: number): IEncryptedVote<TID>;
|
|
239
240
|
/**
|
|
240
241
|
* Encode vote based on method.
|
|
241
242
|
* @param method - Voting method
|
|
@@ -248,31 +249,31 @@ export interface IVoteEncoder {
|
|
|
248
249
|
choices?: number[];
|
|
249
250
|
rankings?: number[];
|
|
250
251
|
weight?: bigint;
|
|
251
|
-
}, choiceCount: number): IEncryptedVote
|
|
252
|
+
}, choiceCount: number): IEncryptedVote<TID>;
|
|
252
253
|
}
|
|
253
254
|
/**
|
|
254
255
|
* Poll tallier interface for decrypting and tallying votes.
|
|
255
256
|
* Holds private key and can decrypt results after poll closes.
|
|
256
257
|
*/
|
|
257
|
-
export interface IPollTallier {
|
|
258
|
+
export interface IPollTallier<TID extends PlatformID = Buffer> {
|
|
258
259
|
/**
|
|
259
260
|
* Tally votes and determine winner(s).
|
|
260
261
|
* @param poll - Poll to tally
|
|
261
262
|
* @returns Poll results
|
|
262
263
|
* @throws Error if poll is not closed
|
|
263
264
|
*/
|
|
264
|
-
tally(poll: IPoll): IPollResults;
|
|
265
|
+
tally(poll: IPoll<TID>): IPollResults;
|
|
265
266
|
/**
|
|
266
267
|
* Tally ranked choice votes using IRV algorithm.
|
|
267
268
|
* @param poll - Poll to tally
|
|
268
269
|
* @returns Poll results with elimination rounds
|
|
269
270
|
*/
|
|
270
|
-
tallyRankedChoice(poll: IPoll): IPollResults;
|
|
271
|
+
tallyRankedChoice(poll: IPoll<TID>): IPollResults;
|
|
271
272
|
}
|
|
272
273
|
/**
|
|
273
274
|
* Poll factory interface for creating polls.
|
|
274
275
|
*/
|
|
275
|
-
export interface IPollFactory {
|
|
276
|
+
export interface IPollFactory<TID extends PlatformID = Buffer> {
|
|
276
277
|
/**
|
|
277
278
|
* Create a poll with specified method.
|
|
278
279
|
* @param choices - Array of choice names
|
|
@@ -281,23 +282,23 @@ export interface IPollFactory {
|
|
|
281
282
|
* @param options - Optional configuration
|
|
282
283
|
* @returns New poll
|
|
283
284
|
*/
|
|
284
|
-
create(choices: string[], method: VotingMethod, authority: IVotingMember
|
|
285
|
+
create(choices: string[], method: VotingMethod, authority: IVotingMember<TID>, options?: {
|
|
285
286
|
maxWeight?: bigint;
|
|
286
|
-
}): IPoll
|
|
287
|
+
}): IPoll<TID>;
|
|
287
288
|
/**
|
|
288
289
|
* Create a plurality poll.
|
|
289
290
|
* @param choices - Array of choice names
|
|
290
291
|
* @param authority - Poll authority
|
|
291
292
|
* @returns New poll
|
|
292
293
|
*/
|
|
293
|
-
createPlurality(choices: string[], authority: IVotingMember): IPoll
|
|
294
|
+
createPlurality(choices: string[], authority: IVotingMember<TID>): IPoll<TID>;
|
|
294
295
|
/**
|
|
295
296
|
* Create an approval voting poll.
|
|
296
297
|
* @param choices - Array of choice names
|
|
297
298
|
* @param authority - Poll authority
|
|
298
299
|
* @returns New poll
|
|
299
300
|
*/
|
|
300
|
-
createApproval(choices: string[], authority: IVotingMember): IPoll
|
|
301
|
+
createApproval(choices: string[], authority: IVotingMember<TID>): IPoll<TID>;
|
|
301
302
|
/**
|
|
302
303
|
* Create a weighted voting poll.
|
|
303
304
|
* @param choices - Array of choice names
|
|
@@ -305,21 +306,21 @@ export interface IPollFactory {
|
|
|
305
306
|
* @param maxWeight - Maximum vote weight
|
|
306
307
|
* @returns New poll
|
|
307
308
|
*/
|
|
308
|
-
createWeighted(choices: string[], authority: IVotingMember
|
|
309
|
+
createWeighted(choices: string[], authority: IVotingMember<TID>, maxWeight: bigint): IPoll<TID>;
|
|
309
310
|
/**
|
|
310
311
|
* Create a Borda count poll.
|
|
311
312
|
* @param choices - Array of choice names
|
|
312
313
|
* @param authority - Poll authority
|
|
313
314
|
* @returns New poll
|
|
314
315
|
*/
|
|
315
|
-
createBorda(choices: string[], authority: IVotingMember): IPoll
|
|
316
|
+
createBorda(choices: string[], authority: IVotingMember<TID>): IPoll<TID>;
|
|
316
317
|
/**
|
|
317
318
|
* Create a ranked choice poll.
|
|
318
319
|
* @param choices - Array of choice names
|
|
319
320
|
* @param authority - Poll authority
|
|
320
321
|
* @returns New poll
|
|
321
322
|
*/
|
|
322
|
-
createRankedChoice(choices: string[], authority: IVotingMember): IPoll
|
|
323
|
+
createRankedChoice(choices: string[], authority: IVotingMember<TID>): IPoll<TID>;
|
|
323
324
|
}
|
|
324
325
|
/**
|
|
325
326
|
* Options for deriving Paillier voting keys from ECDH keys.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voting-poll.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/voting-poll.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEtE;;GAEG;AACH,oBAAY,YAAY;IAEtB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,WAAW;IAChB,YAAY,mBAAmB;IAC/B,aAAa,kBAAkB;IAG/B,YAAY,kBAAkB;IAC9B,QAAQ,cAAc;IACtB,IAAI,SAAS;IACb,GAAG,QAAQ;IAGX,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,YAAY,kBAAkB;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;
|
|
1
|
+
{"version":3,"file":"voting-poll.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/voting-poll.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voting-poll.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/voting-poll.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"voting-poll.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/voting-poll.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAMH;;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;AA2WD;;;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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import type { PlatformID } from '../../interfaces';
|
|
1
2
|
import type { IMember } from '../../interfaces/member';
|
|
2
|
-
export interface BulletinBoardEntry {
|
|
3
|
+
export interface BulletinBoardEntry<TID extends PlatformID = Buffer> {
|
|
3
4
|
/** Sequence number (monotonically increasing) */
|
|
4
5
|
readonly sequence: number;
|
|
5
6
|
/** Microsecond-precision timestamp */
|
|
6
7
|
readonly timestamp: number;
|
|
7
8
|
/** Poll identifier */
|
|
8
|
-
readonly pollId:
|
|
9
|
+
readonly pollId: TID;
|
|
9
10
|
/** Encrypted vote data */
|
|
10
11
|
readonly encryptedVote: bigint[];
|
|
11
12
|
/** Hash of voter ID (anonymized) */
|
|
@@ -17,9 +18,9 @@ export interface BulletinBoardEntry {
|
|
|
17
18
|
/** Authority signature */
|
|
18
19
|
readonly signature: Buffer;
|
|
19
20
|
}
|
|
20
|
-
export interface TallyProof {
|
|
21
|
+
export interface TallyProof<TID extends PlatformID = Buffer> {
|
|
21
22
|
/** Poll identifier */
|
|
22
|
-
readonly pollId:
|
|
23
|
+
readonly pollId: TID;
|
|
23
24
|
/** Final tallies */
|
|
24
25
|
readonly tallies: bigint[];
|
|
25
26
|
/** Choice names */
|
|
@@ -33,21 +34,21 @@ export interface TallyProof {
|
|
|
33
34
|
/** Authority signature */
|
|
34
35
|
readonly signature: Buffer;
|
|
35
36
|
}
|
|
36
|
-
export interface BulletinBoard {
|
|
37
|
+
export interface BulletinBoard<TID extends PlatformID = Buffer> {
|
|
37
38
|
/** Publish encrypted vote to bulletin board */
|
|
38
|
-
publishVote(pollId:
|
|
39
|
+
publishVote(pollId: TID, encryptedVote: bigint[], voterIdHash: Buffer): BulletinBoardEntry<TID>;
|
|
39
40
|
/** Publish tally with cryptographic proof */
|
|
40
|
-
publishTally(pollId:
|
|
41
|
+
publishTally(pollId: TID, tallies: bigint[], choices: string[], encryptedVotes: bigint[][]): TallyProof<TID>;
|
|
41
42
|
/** Get all entries for a poll */
|
|
42
|
-
getEntries(pollId:
|
|
43
|
+
getEntries(pollId: TID): readonly BulletinBoardEntry<TID>[];
|
|
43
44
|
/** Get all entries (entire bulletin board) */
|
|
44
|
-
getAllEntries(): readonly BulletinBoardEntry[];
|
|
45
|
+
getAllEntries(): readonly BulletinBoardEntry<TID>[];
|
|
45
46
|
/** Get tally proof for a poll */
|
|
46
|
-
getTallyProof(pollId:
|
|
47
|
+
getTallyProof(pollId: TID): TallyProof<TID> | undefined;
|
|
47
48
|
/** Verify entry signature and hash */
|
|
48
49
|
verifyEntry(entry: BulletinBoardEntry): boolean;
|
|
49
50
|
/** Verify tally proof */
|
|
50
|
-
verifyTallyProof(proof: TallyProof): boolean;
|
|
51
|
+
verifyTallyProof(proof: TallyProof<TID>): boolean;
|
|
51
52
|
/** Verify Merkle tree integrity */
|
|
52
53
|
verifyMerkleTree(): boolean;
|
|
53
54
|
/** Export complete bulletin board for archival */
|
|
@@ -56,19 +57,19 @@ export interface BulletinBoard {
|
|
|
56
57
|
/**
|
|
57
58
|
* Append-only public bulletin board with cryptographic verification
|
|
58
59
|
*/
|
|
59
|
-
export declare class PublicBulletinBoard implements BulletinBoard {
|
|
60
|
+
export declare class PublicBulletinBoard<TID extends PlatformID = Buffer> implements BulletinBoard<TID> {
|
|
60
61
|
private readonly entries;
|
|
61
62
|
private readonly tallyProofs;
|
|
62
63
|
private readonly authority;
|
|
63
64
|
private sequence;
|
|
64
|
-
constructor(authority: IMember);
|
|
65
|
-
publishVote(pollId:
|
|
66
|
-
publishTally(pollId:
|
|
67
|
-
getEntries(pollId:
|
|
68
|
-
getAllEntries(): readonly BulletinBoardEntry[];
|
|
69
|
-
getTallyProof(pollId:
|
|
65
|
+
constructor(authority: IMember<TID>);
|
|
66
|
+
publishVote(pollId: TID, encryptedVote: bigint[], voterIdHash: Buffer): BulletinBoardEntry<TID>;
|
|
67
|
+
publishTally(pollId: TID, tallies: bigint[], choices: string[], encryptedVotes: bigint[][]): TallyProof<TID>;
|
|
68
|
+
getEntries(pollId: TID): readonly BulletinBoardEntry<TID>[];
|
|
69
|
+
getAllEntries(): readonly BulletinBoardEntry<TID>[];
|
|
70
|
+
getTallyProof(pollId: TID): TallyProof<TID> | undefined;
|
|
70
71
|
verifyEntry(entry: BulletinBoardEntry): boolean;
|
|
71
|
-
verifyTallyProof(proof: TallyProof): boolean;
|
|
72
|
+
verifyTallyProof(proof: TallyProof<TID>): boolean;
|
|
72
73
|
verifyMerkleTree(): boolean;
|
|
73
74
|
export(): Buffer;
|
|
74
75
|
private computeMerkleRoot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulletin-board.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/bulletin-board.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bulletin-board.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/bulletin-board.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ exports.PublicBulletinBoard = void 0;
|
|
|
7
7
|
* Implements requirement 1.2: Append-only, publicly verifiable vote publication
|
|
8
8
|
*/
|
|
9
9
|
const crypto_1 = require("crypto");
|
|
10
|
+
const constants_1 = require("../../constants");
|
|
11
|
+
const Constants = (0, constants_1.getNodeRuntimeConfiguration)();
|
|
10
12
|
/**
|
|
11
13
|
* Append-only public bulletin board with cryptographic verification
|
|
12
14
|
*/
|
|
@@ -24,7 +26,7 @@ class PublicBulletinBoard {
|
|
|
24
26
|
const entryData = this.serializeEntryData({
|
|
25
27
|
sequence: this.sequence,
|
|
26
28
|
timestamp,
|
|
27
|
-
pollId,
|
|
29
|
+
pollId: Buffer.from(Constants.idProvider.toBytes(pollId)),
|
|
28
30
|
encryptedVote,
|
|
29
31
|
voterIdHash,
|
|
30
32
|
merkleRoot,
|
|
@@ -49,7 +51,7 @@ class PublicBulletinBoard {
|
|
|
49
51
|
const votesHash = this.hashEncryptedVotes(encryptedVotes);
|
|
50
52
|
const decryptionProof = this.generateDecryptionProof(encryptedVotes, tallies);
|
|
51
53
|
const proofData = this.serializeTallyProof({
|
|
52
|
-
pollId,
|
|
54
|
+
pollId: Buffer.from(Constants.idProvider.toBytes(pollId)),
|
|
53
55
|
tallies,
|
|
54
56
|
choices,
|
|
55
57
|
timestamp,
|
|
@@ -70,7 +72,7 @@ class PublicBulletinBoard {
|
|
|
70
72
|
return proof;
|
|
71
73
|
}
|
|
72
74
|
getEntries(pollId) {
|
|
73
|
-
const pollIdStr = pollId.toString('hex');
|
|
75
|
+
const pollIdStr = Buffer.from(Constants.idProvider.toBytes(pollId)).toString('hex');
|
|
74
76
|
return Object.freeze(this.entries.filter((e) => e.pollId.toString('hex') === pollIdStr));
|
|
75
77
|
}
|
|
76
78
|
getAllEntries() {
|
|
@@ -95,8 +97,9 @@ class PublicBulletinBoard {
|
|
|
95
97
|
return this.authority.verify(entry.signature, entry.entryHash);
|
|
96
98
|
}
|
|
97
99
|
verifyTallyProof(proof) {
|
|
100
|
+
const pollIdBytes = Buffer.from(Constants.idProvider.toBytes(proof.pollId));
|
|
98
101
|
const proofData = this.serializeTallyProof({
|
|
99
|
-
pollId:
|
|
102
|
+
pollId: pollIdBytes,
|
|
100
103
|
tallies: proof.tallies,
|
|
101
104
|
choices: proof.choices,
|
|
102
105
|
timestamp: proof.timestamp,
|
|
@@ -200,11 +203,12 @@ class PublicBulletinBoard {
|
|
|
200
203
|
return Buffer.concat(parts);
|
|
201
204
|
}
|
|
202
205
|
serializeEntry(entry) {
|
|
206
|
+
const pollIdBytes = Buffer.from(Constants.idProvider.toBytes(entry.pollId));
|
|
203
207
|
const parts = [
|
|
204
208
|
this.encodeNumber(entry.sequence),
|
|
205
209
|
this.encodeNumber(entry.timestamp),
|
|
206
|
-
this.encodeNumber(
|
|
207
|
-
|
|
210
|
+
this.encodeNumber(pollIdBytes.length),
|
|
211
|
+
pollIdBytes,
|
|
208
212
|
this.encodeNumber(entry.encryptedVote.length),
|
|
209
213
|
];
|
|
210
214
|
for (const value of entry.encryptedVote) {
|
|
@@ -214,9 +218,10 @@ class PublicBulletinBoard {
|
|
|
214
218
|
return Buffer.concat(parts);
|
|
215
219
|
}
|
|
216
220
|
serializeTallyProofFull(proof) {
|
|
221
|
+
const pollIdBytes = Buffer.from(Constants.idProvider.toBytes(proof.pollId));
|
|
217
222
|
const parts = [
|
|
218
|
-
this.encodeNumber(
|
|
219
|
-
|
|
223
|
+
this.encodeNumber(pollIdBytes.length),
|
|
224
|
+
pollIdBytes,
|
|
220
225
|
this.encodeNumber(proof.tallies.length),
|
|
221
226
|
];
|
|
222
227
|
for (const tally of proof.tallies) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulletin-board.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/bulletin-board.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,mCAAoC;
|
|
1
|
+
{"version":3,"file":"bulletin-board.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/voting/bulletin-board.ts"],"names":[],"mappings":"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"}
|