@digitaldefiance/node-ecies-lib 4.23.1 → 5.0.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/enumerations/voting-error-type.d.ts +3 -1
- package/src/enumerations/voting-error-type.d.ts.map +1 -1
- package/src/enumerations/voting-error-type.js +3 -0
- package/src/enumerations/voting-error-type.js.map +1 -1
- package/src/interfaces/voting-consts.d.ts +6 -1
- package/src/interfaces/voting-consts.d.ts.map +1 -1
- package/src/interfaces/voting-consts.js +2 -1
- package/src/interfaces/voting-consts.js.map +1 -1
- package/src/services/ecies/signature.d.ts.map +1 -1
- package/src/services/ecies/signature.js +9 -4
- package/src/services/ecies/signature.js.map +1 -1
- package/src/services/voting.service.d.ts +12 -6
- package/src/services/voting.service.d.ts.map +1 -1
- package/src/services/voting.service.js +132 -29
- 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": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Digital Defiance Node ECIES Library",
|
|
5
5
|
"homepage": "https://github.com/Digital-Defiance/node-ecies-lib",
|
|
6
6
|
"repository": {
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"license": "MIT",
|
|
60
60
|
"packageManager": "yarn@4.10.3",
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@digitaldefiance/ecies-lib": "
|
|
62
|
+
"@digitaldefiance/ecies-lib": "5.0.0",
|
|
63
63
|
"@digitaldefiance/i18n-lib": "4.6.4",
|
|
64
64
|
"@ethereumjs/wallet": "^2.0.4",
|
|
65
65
|
"@noble/curves": "^1.4.2",
|
|
@@ -32,6 +32,8 @@ export declare enum VotingErrorType {
|
|
|
32
32
|
InvalidPrivateKeyBufferFailedToCreate = "InvalidPrivateKeyBufferFailedToCreate",
|
|
33
33
|
InstanceIdMismatch = "InstanceIdMismatch",
|
|
34
34
|
InvalidCiphertextHmac = "InvalidCiphertextHmac",
|
|
35
|
-
CiphertextNotFromThisInstance = "CiphertextNotFromThisInstance"
|
|
35
|
+
CiphertextNotFromThisInstance = "CiphertextNotFromThisInstance",
|
|
36
|
+
InvalidPublicKeyChecksum = "InvalidPublicKeyChecksum",
|
|
37
|
+
InvalidPrivateKeyChecksum = "InvalidPrivateKeyChecksum"
|
|
36
38
|
}
|
|
37
39
|
//# sourceMappingURL=voting-error-type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voting-error-type.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/enumerations/voting-error-type.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,eAAe;IAEzB,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;IACzC,wBAAwB,6BAA6B;IAGrD,qBAAqB,0BAA0B;IAC/C,eAAe,oBAAoB;IAGnC,uBAAuB,4BAA4B;IACnD,eAAe,oBAAoB;IACnC,0BAA0B,+BAA+B;IAGzD,kCAAkC,uCAAuC;IACzE,mCAAmC,wCAAwC;IAC3E,2BAA2B,gCAAgC;IAG3D,8BAA8B,mCAAmC;IACjE,gCAAgC,qCAAqC;IACrE,2BAA2B,gCAAgC;IAC3D,iCAAiC,sCAAsC;IACvE,oCAAoC,yCAAyC;IAC7E,0BAA0B,+BAA+B;IAGzD,+BAA+B,oCAAoC;IACnE,iCAAiC,sCAAsC;IACvE,4BAA4B,iCAAiC;IAC7D,uCAAuC,4CAA4C;IACnF,yCAAyC,8CAA8C;IACvF,mCAAmC,wCAAwC;IAC3E,oCAAoC,yCAAyC;IAC7E,qCAAqC,0CAA0C;IAG/E,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,6BAA6B,kCAAkC;
|
|
1
|
+
{"version":3,"file":"voting-error-type.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/enumerations/voting-error-type.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,eAAe;IAEzB,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;IACzC,wBAAwB,6BAA6B;IAGrD,qBAAqB,0BAA0B;IAC/C,eAAe,oBAAoB;IAGnC,uBAAuB,4BAA4B;IACnD,eAAe,oBAAoB;IACnC,0BAA0B,+BAA+B;IAGzD,kCAAkC,uCAAuC;IACzE,mCAAmC,wCAAwC;IAC3E,2BAA2B,gCAAgC;IAG3D,8BAA8B,mCAAmC;IACjE,gCAAgC,qCAAqC;IACrE,2BAA2B,gCAAgC;IAC3D,iCAAiC,sCAAsC;IACvE,oCAAoC,yCAAyC;IAC7E,0BAA0B,+BAA+B;IAGzD,+BAA+B,oCAAoC;IACnE,iCAAiC,sCAAsC;IACvE,4BAA4B,iCAAiC;IAC7D,uCAAuC,4CAA4C;IACnF,yCAAyC,8CAA8C;IACvF,mCAAmC,wCAAwC;IAC3E,oCAAoC,yCAAyC;IAC7E,qCAAqC,0CAA0C;IAG/E,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,6BAA6B,kCAAkC;IAG/D,wBAAwB,6BAA6B;IACrD,yBAAyB,8BAA8B;CACxD"}
|
|
@@ -44,5 +44,8 @@ var VotingErrorType;
|
|
|
44
44
|
VotingErrorType["InstanceIdMismatch"] = "InstanceIdMismatch";
|
|
45
45
|
VotingErrorType["InvalidCiphertextHmac"] = "InvalidCiphertextHmac";
|
|
46
46
|
VotingErrorType["CiphertextNotFromThisInstance"] = "CiphertextNotFromThisInstance";
|
|
47
|
+
// Checksum errors
|
|
48
|
+
VotingErrorType["InvalidPublicKeyChecksum"] = "InvalidPublicKeyChecksum";
|
|
49
|
+
VotingErrorType["InvalidPrivateKeyChecksum"] = "InvalidPrivateKeyChecksum";
|
|
47
50
|
})(VotingErrorType || (exports.VotingErrorType = VotingErrorType = {}));
|
|
48
51
|
//# sourceMappingURL=voting-error-type.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voting-error-type.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/enumerations/voting-error-type.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,
|
|
1
|
+
{"version":3,"file":"voting-error-type.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/enumerations/voting-error-type.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,eAgDX;AAhDD,WAAY,eAAe;IACzB,wBAAwB;IACxB,oEAAiD,CAAA;IACjD,kEAA+C,CAAA;IAC/C,oEAAiD,CAAA;IACjD,4DAAyC,CAAA;IACzC,wEAAqD,CAAA;IAErD,0BAA0B;IAC1B,kEAA+C,CAAA;IAC/C,sDAAmC,CAAA;IAEnC,6BAA6B;IAC7B,sEAAmD,CAAA;IACnD,sDAAmC,CAAA;IACnC,4EAAyD,CAAA;IAEzD,sBAAsB;IACtB,4FAAyE,CAAA;IACzE,8FAA2E,CAAA;IAC3E,8EAA2D,CAAA;IAE3D,oCAAoC;IACpC,oFAAiE,CAAA;IACjE,wFAAqE,CAAA;IACrE,8EAA2D,CAAA;IAC3D,0FAAuE,CAAA;IACvE,gGAA6E,CAAA;IAC7E,4EAAyD,CAAA;IAEzD,qCAAqC;IACrC,sFAAmE,CAAA;IACnE,0FAAuE,CAAA;IACvE,gFAA6D,CAAA;IAC7D,sGAAmF,CAAA;IACnF,0GAAuF,CAAA;IACvF,8FAA2E,CAAA;IAC3E,gGAA6E,CAAA;IAC7E,kGAA+E,CAAA;IAE/E,4BAA4B;IAC5B,4DAAyC,CAAA;IACzC,kEAA+C,CAAA;IAC/C,kFAA+D,CAAA;IAE/D,kBAAkB;IAClB,wEAAqD,CAAA;IACrD,0EAAuD,CAAA;AACzD,CAAC,EAhDW,eAAe,+BAAf,eAAe,QAgD1B"}
|
|
@@ -59,7 +59,7 @@ export interface IVotingConsts {
|
|
|
59
59
|
/**
|
|
60
60
|
* Version number for key serialization format.
|
|
61
61
|
*/
|
|
62
|
-
readonly KEY_VERSION:
|
|
62
|
+
readonly KEY_VERSION: 2;
|
|
63
63
|
/**
|
|
64
64
|
* Magic bytes for identifying BrightChain voting keys.
|
|
65
65
|
*/
|
|
@@ -76,6 +76,11 @@ export interface IVotingConsts {
|
|
|
76
76
|
* Length of instance ID in bytes (SHA-256 output).
|
|
77
77
|
*/
|
|
78
78
|
readonly INSTANCE_ID_LENGTH: 32;
|
|
79
|
+
/**
|
|
80
|
+
* Length of SHA-256 checksum appended to serialized keys (bytes).
|
|
81
|
+
* Provides integrity protection against buffer corruption.
|
|
82
|
+
*/
|
|
83
|
+
readonly CHECKSUM_LENGTH: 32;
|
|
79
84
|
}
|
|
80
85
|
/**
|
|
81
86
|
* Constants for voting operations using Paillier homomorphic encryption.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voting-consts.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/voting-consts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAE5C;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAEpC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"voting-consts.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/voting-consts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAE5C;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAEpC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC;IAEhC;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC;CAC9B;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,aAkBnB,CAAC"}
|
|
@@ -18,10 +18,11 @@ exports.VOTING = Object.freeze({
|
|
|
18
18
|
KEY_RADIX: 16,
|
|
19
19
|
KEY_FORMAT: 'hex',
|
|
20
20
|
DIGEST_FORMAT: 'hex',
|
|
21
|
-
KEY_VERSION:
|
|
21
|
+
KEY_VERSION: 2,
|
|
22
22
|
KEY_MAGIC: 'BCVK',
|
|
23
23
|
DRBG_PRIME_ATTEMPTS: 20000,
|
|
24
24
|
KEY_ID_LENGTH: 32,
|
|
25
25
|
INSTANCE_ID_LENGTH: 32,
|
|
26
|
+
CHECKSUM_LENGTH: 32,
|
|
26
27
|
});
|
|
27
28
|
//# sourceMappingURL=voting-consts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voting-consts.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/voting-consts.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"voting-consts.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/interfaces/voting-consts.ts"],"names":[],"mappings":";;;AAqGA;;;;GAIG;AACU,QAAA,MAAM,GAAkB,MAAM,CAAC,MAAM,CAAC;IACjD,cAAc,EAAE,kBAA2B;IAC3C,qBAAqB,EAAE,GAAY;IACnC,kBAAkB,EAAE,IAAa;IACjC,cAAc,EAAE,GAAY;IAC5B,WAAW,EAAE,EAAW;IACxB,cAAc,EAAE,QAAiB;IACjC,cAAc,EAAE,QAAiB;IACjC,UAAU,EAAE,CAAU;IACtB,SAAS,EAAE,EAAW;IACtB,UAAU,EAAE,KAAc;IAC1B,aAAa,EAAE,KAAc;IAC7B,WAAW,EAAE,CAAU;IACvB,SAAS,EAAE,MAAe;IAC1B,mBAAmB,EAAE,KAAc;IACnC,aAAa,EAAE,EAAW;IAC1B,kBAAkB,EAAE,EAAW;IAC/B,eAAe,EAAE,EAAW;CAC7B,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/signature.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAGL,SAAS,EACV,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;gBAEjC,UAAU,EAAE,eAAe;IAIvC;;;;;OAKG;IACI,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe;IAYrE;;;;;;OAMG;IACI,aAAa,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,eAAe,GACzB,OAAO;
|
|
1
|
+
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/signature.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAGL,SAAS,EACV,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;gBAEjC,UAAU,EAAE,eAAe;IAIvC;;;;;OAKG;IACI,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe;IAYrE;;;;;;OAMG;IACI,aAAa,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,eAAe,GACzB,OAAO;IA2BV;;;;OAIG;IACI,gCAAgC,CACrC,eAAe,EAAE,SAAS,GACzB,eAAe;IAIlB;;;;OAIG;IACI,gCAAgC,CACrC,eAAe,EAAE,eAAe,GAC/B,eAAe;CAGnB"}
|
|
@@ -56,10 +56,15 @@ class EciesSignature {
|
|
|
56
56
|
// This bypasses verify()'s internal DER→compact fallback which uses
|
|
57
57
|
// `instanceof DER.Err` — that check breaks when bundlers (e.g. Vite)
|
|
58
58
|
// load multiple copies of @noble/curves/abstract/weierstrass.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
try {
|
|
60
|
+
const sig = secp256k1_1.secp256k1.Signature.fromCompact(signature);
|
|
61
|
+
return secp256k1_1.secp256k1.verify(sig, hash, publicKey, {
|
|
62
|
+
prehash: false,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
63
68
|
}
|
|
64
69
|
/**
|
|
65
70
|
* Converts a signature string to a signature buffer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/signature.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,0DAA0D;AAC1D,0DAIoC;AACpC,uDAAoD;AACpD,6CAA4C;AAM5C;;GAEG;AACH,MAAa,cAAc;IACR,UAAU,CAAkB;IAE7C,YAAY,UAA2B;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,UAAkB,EAAE,IAAY;QACjD,MAAM,IAAI,GAAG,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC;QAC1B,yFAAyF;QACzF,MAAM,SAAS,GAAG,qBAAS;aACxB,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE;YACtB,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,KAAK;SACf,CAAC;aACD,iBAAiB,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAoB,CAAC;IACnD,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAClB,SAAiB,EACjB,IAAY,EACZ,SAA0B;QAE1B,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,sBAAU,CAAC,8BAAkB,CAAC,gBAAgB,CAAC,CAAC;QAC5D,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,sBAAU,CAAC,8BAAkB,CAAC,sBAAsB,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC;QAC1B,8EAA8E;QAC9E,oEAAoE;QACpE,qEAAqE;QACrE,8DAA8D;QAC9D,MAAM,GAAG,GAAG,qBAAS,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/signature.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,0DAA0D;AAC1D,0DAIoC;AACpC,uDAAoD;AACpD,6CAA4C;AAM5C;;GAEG;AACH,MAAa,cAAc;IACR,UAAU,CAAkB;IAE7C,YAAY,UAA2B;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,UAAkB,EAAE,IAAY;QACjD,MAAM,IAAI,GAAG,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC;QAC1B,yFAAyF;QACzF,MAAM,SAAS,GAAG,qBAAS;aACxB,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE;YACtB,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,KAAK;SACf,CAAC;aACD,iBAAiB,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAoB,CAAC;IACnD,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAClB,SAAiB,EACjB,IAAY,EACZ,SAA0B;QAE1B,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,sBAAU,CAAC,8BAAkB,CAAC,gBAAgB,CAAC,CAAC;QAC5D,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,sBAAU,CAAC,8BAAkB,CAAC,sBAAsB,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC;QAC1B,8EAA8E;QAC9E,oEAAoE;QACpE,qEAAqE;QACrE,8DAA8D;QAC9D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,qBAAS,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACvD,OAAO,qBAAS,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC5C,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,gCAAgC,CACrC,eAA0B;QAE1B,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAoB,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACI,gCAAgC,CACrC,eAAgC;QAEhC,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAoB,CAAC;IAC5D,CAAC;CACF;AApFD,wCAoFC"}
|
|
@@ -56,7 +56,13 @@ export interface DeriveVotingKeysOptions {
|
|
|
56
56
|
/**
|
|
57
57
|
* Miller-Rabin primality test with deterministic witnesses
|
|
58
58
|
*
|
|
59
|
-
*
|
|
59
|
+
* Uses 12 small-prime deterministic witnesses, then generates additional
|
|
60
|
+
* deterministic witnesses derived from the candidate itself (via hashing)
|
|
61
|
+
* for rounds 13 through k. This ensures the test is fully deterministic
|
|
62
|
+
* (same candidate always gets the same witnesses) while achieving the
|
|
63
|
+
* configured number of rounds.
|
|
64
|
+
*
|
|
65
|
+
* SECURITY: With k=256 rounds, probability of false positive is < 4^(-256) ≈ 2^(-512)
|
|
60
66
|
*
|
|
61
67
|
* @param n - Number to test for primality
|
|
62
68
|
* @param k - Number of rounds (witnesses to test)
|
|
@@ -210,7 +216,7 @@ export declare class VotingService implements IVotingService {
|
|
|
210
216
|
votingPublicKeyToBuffer(publicKey: PublicKey): Buffer;
|
|
211
217
|
/**
|
|
212
218
|
* Deserialize a Paillier public key from buffer
|
|
213
|
-
* Format: [magic:4][version:1][keyId:32][n_length:4][n:variable]
|
|
219
|
+
* Format: [magic:4][version:1][keyId:32][n_length:4][n:variable][checksum:32]
|
|
214
220
|
*/
|
|
215
221
|
bufferToVotingPublicKey(buffer: Buffer): Promise<PublicKey>;
|
|
216
222
|
/**
|
|
@@ -226,17 +232,17 @@ export declare class VotingService implements IVotingService {
|
|
|
226
232
|
votingPrivateKeyToBuffer(privateKey: PrivateKey): Buffer;
|
|
227
233
|
/**
|
|
228
234
|
* Deserialize a Paillier private key from buffer
|
|
229
|
-
* Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable]
|
|
235
|
+
* Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable][checksum:32]
|
|
230
236
|
*/
|
|
231
237
|
bufferToVotingPrivateKey(buffer: Buffer, publicKey: PublicKey): Promise<PrivateKey>;
|
|
232
238
|
/**
|
|
233
239
|
* Serialize an IsolatedPublicKey to Buffer
|
|
234
|
-
* Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable]
|
|
240
|
+
* Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable][checksum:32]
|
|
235
241
|
*/
|
|
236
242
|
isolatedPublicKeyToBuffer(publicKey: SharedIsolatedPublicKey): Buffer;
|
|
237
243
|
/**
|
|
238
244
|
* Deserialize an IsolatedPublicKey from Buffer
|
|
239
|
-
* Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable]
|
|
245
|
+
* Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable][checksum:32]
|
|
240
246
|
*/
|
|
241
247
|
bufferToIsolatedPublicKey(buffer: Buffer): Promise<SharedIsolatedPublicKey>;
|
|
242
248
|
/**
|
|
@@ -246,7 +252,7 @@ export declare class VotingService implements IVotingService {
|
|
|
246
252
|
isolatedPrivateKeyToBuffer(privateKey: SharedIsolatedPrivateKey): Buffer;
|
|
247
253
|
/**
|
|
248
254
|
* Deserialize an IsolatedPrivateKey from Buffer
|
|
249
|
-
* Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable]
|
|
255
|
+
* Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable][checksum:32]
|
|
250
256
|
*/
|
|
251
257
|
bufferToIsolatedPrivateKey(buffer: Buffer, publicKey: SharedIsolatedPublicKey): Promise<SharedIsolatedPrivateKey>;
|
|
252
258
|
private hexToBuffer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voting.service.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/voting.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH,OAAO,EACL,cAAc,EACd,kBAAkB,IAAI,wBAAwB,EAC9C,iBAAiB,IAAI,uBAAuB,EAC7C,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAYtE,MAAM,WAAW,uBAAuB;IACtC,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED
|
|
1
|
+
{"version":3,"file":"voting.service.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/voting.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,7 +51,13 @@ const isolated_public_1 = require("../isolated-public");
|
|
|
51
51
|
/**
|
|
52
52
|
* Miller-Rabin primality test with deterministic witnesses
|
|
53
53
|
*
|
|
54
|
-
*
|
|
54
|
+
* Uses 12 small-prime deterministic witnesses, then generates additional
|
|
55
|
+
* deterministic witnesses derived from the candidate itself (via hashing)
|
|
56
|
+
* for rounds 13 through k. This ensures the test is fully deterministic
|
|
57
|
+
* (same candidate always gets the same witnesses) while achieving the
|
|
58
|
+
* configured number of rounds.
|
|
59
|
+
*
|
|
60
|
+
* SECURITY: With k=256 rounds, probability of false positive is < 4^(-256) ≈ 2^(-512)
|
|
55
61
|
*
|
|
56
62
|
* @param n - Number to test for primality
|
|
57
63
|
* @param k - Number of rounds (witnesses to test)
|
|
@@ -69,8 +75,21 @@ function millerRabinTest(n, k) {
|
|
|
69
75
|
d /= 2n;
|
|
70
76
|
r++;
|
|
71
77
|
}
|
|
72
|
-
//
|
|
73
|
-
const
|
|
78
|
+
// First 12 small-prime deterministic witnesses
|
|
79
|
+
const deterministicWitnesses = [
|
|
80
|
+
2n,
|
|
81
|
+
3n,
|
|
82
|
+
5n,
|
|
83
|
+
7n,
|
|
84
|
+
11n,
|
|
85
|
+
13n,
|
|
86
|
+
17n,
|
|
87
|
+
19n,
|
|
88
|
+
23n,
|
|
89
|
+
29n,
|
|
90
|
+
31n,
|
|
91
|
+
37n,
|
|
92
|
+
];
|
|
74
93
|
// Witness loop
|
|
75
94
|
const witnessLoop = (a) => {
|
|
76
95
|
let x = modPow(a, d, n);
|
|
@@ -85,12 +104,32 @@ function millerRabinTest(n, k) {
|
|
|
85
104
|
}
|
|
86
105
|
return false;
|
|
87
106
|
};
|
|
88
|
-
// Test with deterministic witnesses
|
|
89
|
-
|
|
90
|
-
|
|
107
|
+
// Phase 1: Test with deterministic small-prime witnesses
|
|
108
|
+
const deterministicRounds = Math.min(k, deterministicWitnesses.length);
|
|
109
|
+
for (let i = 0; i < deterministicRounds; i++) {
|
|
110
|
+
const a = (deterministicWitnesses[i] % (n - 2n)) + 2n;
|
|
91
111
|
if (!witnessLoop(a))
|
|
92
112
|
return false;
|
|
93
113
|
}
|
|
114
|
+
// Phase 2: Generate additional deterministic witnesses from the candidate
|
|
115
|
+
// Each witness is derived via HMAC-SHA256(key=candidate, data=round_counter),
|
|
116
|
+
// a standard PRF that ensures determinism and uniform distribution.
|
|
117
|
+
if (k > deterministicWitnesses.length) {
|
|
118
|
+
const nBytes = Buffer.from(n.toString(16), 'utf-8');
|
|
119
|
+
for (let i = deterministicWitnesses.length; i < k; i++) {
|
|
120
|
+
// HMAC-SHA256(key=hex(n), data=hex(round)) → 32 bytes
|
|
121
|
+
const roundBytes = Buffer.from(i.toString(16), 'utf-8');
|
|
122
|
+
const digest = (0, crypto_1.createHmac)('sha256', nBytes).update(roundBytes).digest();
|
|
123
|
+
// Interpret the 32-byte digest as a big-endian unsigned integer
|
|
124
|
+
let hash = 0n;
|
|
125
|
+
for (let j = 0; j < digest.length; j++) {
|
|
126
|
+
hash = (hash << 8n) | BigInt(digest[j]);
|
|
127
|
+
}
|
|
128
|
+
const a = (hash % (n - 3n)) + 2n;
|
|
129
|
+
if (!witnessLoop(a))
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
94
133
|
return true;
|
|
95
134
|
}
|
|
96
135
|
/**
|
|
@@ -333,10 +372,31 @@ function generateDeterministicKeyPair(seed, bits = 3072, primeTestIterations = 2
|
|
|
333
372
|
const primeBits = Math.floor(bits / 2);
|
|
334
373
|
const p = generateDeterministicPrime(drbg, primeBits, primeTestIterations);
|
|
335
374
|
const q = generateDeterministicPrime(drbg, primeBits, primeTestIterations);
|
|
375
|
+
// Safety check: p and q must be distinct for Paillier security.
|
|
376
|
+
// Probability of collision is ~2^(-1536), but checking is free.
|
|
377
|
+
if (p === q) {
|
|
378
|
+
throw new Error('Generated identical primes p and q — this should be astronomically unlikely. ' +
|
|
379
|
+
'The DRBG may be broken or the seed has insufficient entropy.');
|
|
380
|
+
}
|
|
381
|
+
// Safety check: |p - q| must be large to resist Fermat factoring.
|
|
382
|
+
// For random 1536-bit primes this is overwhelmingly likely, but we verify.
|
|
383
|
+
const pqDiff = p > q ? p - q : q - p;
|
|
384
|
+
const minDistance = 1n << BigInt(Math.floor(primeBits / 2)); // 2^768
|
|
385
|
+
if (pqDiff < minDistance) {
|
|
386
|
+
throw new Error(`Primes p and q are too close: |p - q| has ${pqDiff.toString(2).length} bits, ` +
|
|
387
|
+
`minimum required is ${Math.floor(primeBits / 2)} bits. ` +
|
|
388
|
+
'This makes the modulus vulnerable to Fermat factoring.');
|
|
389
|
+
}
|
|
336
390
|
// Calculate n = p * q
|
|
337
391
|
const n = p * q;
|
|
338
392
|
// Calculate lambda = lcm(p-1, q-1) using function from this module
|
|
339
393
|
const lambda = lcm(p - 1n, q - 1n);
|
|
394
|
+
// Safety check: gcd(n, lambda) must be 1 for Paillier correctness.
|
|
395
|
+
// This is a technical requirement of the Paillier cryptosystem.
|
|
396
|
+
if (gcd(n, lambda) !== 1n) {
|
|
397
|
+
throw new Error('gcd(n, λ) ≠ 1 — Paillier key construction requires gcd(n, lcm(p-1, q-1)) = 1. ' +
|
|
398
|
+
'This indicates a degenerate prime pair.');
|
|
399
|
+
}
|
|
340
400
|
// For Paillier, g = n + 1 (simplest form)
|
|
341
401
|
const g = n + 1n;
|
|
342
402
|
// Calculate mu = (L(g^lambda mod n^2))^-1 mod n
|
|
@@ -379,7 +439,7 @@ function generateDeterministicKeyPair(seed, bits = 3072, primeTestIterations = 2
|
|
|
379
439
|
* @returns Paillier key pair for voting operations
|
|
380
440
|
*/
|
|
381
441
|
function deriveVotingKeysFromECDH(ecdhPrivKey, ecdhPubKey, options = {}) {
|
|
382
|
-
const { curveName = 'secp256k1', publicKeyMagic = 0x04, rawPublicKeyLength = 64, publicKeyLength = 65, hmacAlgorithm = 'sha512', hkdfInfo =
|
|
442
|
+
const { curveName = 'secp256k1', publicKeyMagic = 0x04, rawPublicKeyLength = 64, publicKeyLength = 65, hmacAlgorithm = 'sha512', hkdfInfo = voting_consts_1.VOTING.PRIME_GEN_INFO, hkdfLength = 64, keypairBitLength = 3072, primeTestIterations = 256, } = options;
|
|
383
443
|
// Validate inputs with strict length checks
|
|
384
444
|
if (!ecdhPrivKey || ecdhPrivKey.length === 0) {
|
|
385
445
|
throw new Error('ECDH private key is required');
|
|
@@ -525,15 +585,19 @@ class VotingService {
|
|
|
525
585
|
*/
|
|
526
586
|
votingPublicKeyToBuffer(publicKey) {
|
|
527
587
|
// Generate keyId from n
|
|
588
|
+
// IMPORTANT: keyId is SHA-256 of the hex string encoded as UTF-8 bytes,
|
|
589
|
+
// NOT the hex string parsed as raw hex digits. This matches verifyKeyId()
|
|
590
|
+
// and IsolatedPublicKey's keyId computation.
|
|
528
591
|
const nHex = publicKey.n
|
|
529
592
|
.toString(voting_consts_1.VOTING.KEY_RADIX)
|
|
530
593
|
.padStart(voting_consts_1.VOTING.PUB_KEY_OFFSET, '0');
|
|
531
|
-
const
|
|
532
|
-
const keyId = this.sha256(
|
|
594
|
+
const nBytesForKeyId = Buffer.from(nHex, 'utf8');
|
|
595
|
+
const keyId = this.sha256(nBytesForKeyId);
|
|
533
596
|
// Prepare n buffer
|
|
534
597
|
const nHexBytes = Buffer.from(nHex, 'utf-8');
|
|
535
|
-
// Create buffer: magic(4) + version(1) + keyId(32) + n_length(4) + n
|
|
536
|
-
const
|
|
598
|
+
// Create buffer: magic(4) + version(1) + keyId(32) + n_length(4) + n + checksum(32)
|
|
599
|
+
const payloadLength = 4 + 1 + 32 + 4 + nHexBytes.length;
|
|
600
|
+
const result = Buffer.alloc(payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
|
|
537
601
|
// Write magic
|
|
538
602
|
const magicBytes = Buffer.from(voting_consts_1.VOTING.KEY_MAGIC, 'utf-8');
|
|
539
603
|
magicBytes.copy(result, 0);
|
|
@@ -544,18 +608,21 @@ class VotingService {
|
|
|
544
608
|
// Write n_length and n
|
|
545
609
|
result.writeUInt32BE(nHexBytes.length, 37);
|
|
546
610
|
nHexBytes.copy(result, 41);
|
|
611
|
+
// Append SHA-256 checksum of the payload
|
|
612
|
+
const checksum = this.sha256(result.subarray(0, payloadLength));
|
|
613
|
+
checksum.copy(result, payloadLength);
|
|
547
614
|
return result;
|
|
548
615
|
}
|
|
549
616
|
/**
|
|
550
617
|
* Deserialize a Paillier public key from buffer
|
|
551
|
-
* Format: [magic:4][version:1][keyId:32][n_length:4][n:variable]
|
|
618
|
+
* Format: [magic:4][version:1][keyId:32][n_length:4][n:variable][checksum:32]
|
|
552
619
|
*/
|
|
553
620
|
async bufferToVotingPublicKey(buffer) {
|
|
554
621
|
// Load PublicKey class
|
|
555
622
|
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-unsafe-assignment
|
|
556
623
|
const { PublicKey } = require('paillier-bigint');
|
|
557
|
-
// Minimum buffer length check
|
|
558
|
-
if (buffer.length < 41) {
|
|
624
|
+
// Minimum buffer length check (header + at least 1 byte n + checksum)
|
|
625
|
+
if (buffer.length < 41 + voting_consts_1.VOTING.CHECKSUM_LENGTH) {
|
|
559
626
|
throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPublicKeyBufferTooShort);
|
|
560
627
|
}
|
|
561
628
|
// Verify magic
|
|
@@ -574,9 +641,16 @@ class VotingService {
|
|
|
574
641
|
const nLength = buffer.readUInt32BE(37);
|
|
575
642
|
const nHex = buffer.subarray(41, 41 + nLength).toString('utf-8');
|
|
576
643
|
const n = BigInt('0x' + nHex);
|
|
577
|
-
// Verify
|
|
578
|
-
const
|
|
579
|
-
const
|
|
644
|
+
// Verify checksum
|
|
645
|
+
const payloadLength = 41 + nLength;
|
|
646
|
+
const storedChecksum = buffer.subarray(payloadLength, payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
|
|
647
|
+
const computedChecksum = this.sha256(buffer.subarray(0, payloadLength));
|
|
648
|
+
if (!storedChecksum.equals(computedChecksum)) {
|
|
649
|
+
throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPublicKeyChecksum);
|
|
650
|
+
}
|
|
651
|
+
// Verify keyId — encode hex string as UTF-8 bytes (matching verifyKeyId)
|
|
652
|
+
const nBytesForKeyId = Buffer.from(nHex, 'utf8');
|
|
653
|
+
const computedKeyId = this.sha256(nBytesForKeyId);
|
|
580
654
|
if (!keyId.equals(computedKeyId)) {
|
|
581
655
|
throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPublicKeyIdMismatch);
|
|
582
656
|
}
|
|
@@ -605,8 +679,9 @@ class VotingService {
|
|
|
605
679
|
const magicBytes = Buffer.from(voting_consts_1.VOTING.KEY_MAGIC, 'utf-8');
|
|
606
680
|
const lambdaBytes = Buffer.from(lambdaHex, 'utf-8');
|
|
607
681
|
const muBytes = Buffer.from(muHex, 'utf-8');
|
|
608
|
-
// magic(4) + version(1) + lambda_length(4) + lambda + mu_length(4) + mu
|
|
609
|
-
const
|
|
682
|
+
// magic(4) + version(1) + lambda_length(4) + lambda + mu_length(4) + mu + checksum(32)
|
|
683
|
+
const payloadLength = 4 + 1 + 4 + lambdaBytes.length + 4 + muBytes.length;
|
|
684
|
+
const result = Buffer.alloc(payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
|
|
610
685
|
// Write magic
|
|
611
686
|
magicBytes.copy(result, 0);
|
|
612
687
|
// Write version
|
|
@@ -617,18 +692,21 @@ class VotingService {
|
|
|
617
692
|
// Write mu_length and mu
|
|
618
693
|
result.writeUInt32BE(muBytes.length, 9 + lambdaBytes.length);
|
|
619
694
|
muBytes.copy(result, 13 + lambdaBytes.length);
|
|
695
|
+
// Append SHA-256 checksum of the payload
|
|
696
|
+
const checksum = this.sha256(result.subarray(0, payloadLength));
|
|
697
|
+
checksum.copy(result, payloadLength);
|
|
620
698
|
return result;
|
|
621
699
|
}
|
|
622
700
|
/**
|
|
623
701
|
* Deserialize a Paillier private key from buffer
|
|
624
|
-
* Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable]
|
|
702
|
+
* Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable][checksum:32]
|
|
625
703
|
*/
|
|
626
704
|
async bufferToVotingPrivateKey(buffer, publicKey) {
|
|
627
705
|
// Load PrivateKey class
|
|
628
706
|
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-unsafe-assignment
|
|
629
707
|
const { PrivateKey } = require('paillier-bigint');
|
|
630
|
-
// Minimum buffer length check
|
|
631
|
-
if (buffer.length < 13) {
|
|
708
|
+
// Minimum buffer length check (header + at least 1 byte each + checksum)
|
|
709
|
+
if (buffer.length < 13 + voting_consts_1.VOTING.CHECKSUM_LENGTH) {
|
|
632
710
|
throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPrivateKeyBufferTooShort);
|
|
633
711
|
}
|
|
634
712
|
// Verify magic
|
|
@@ -651,12 +729,19 @@ class VotingService {
|
|
|
651
729
|
.subarray(13 + lambdaLength, 13 + lambdaLength + muLength)
|
|
652
730
|
.toString('utf-8');
|
|
653
731
|
const mu = BigInt('0x' + muHex);
|
|
732
|
+
// Verify checksum
|
|
733
|
+
const payloadLength = 13 + lambdaLength + muLength;
|
|
734
|
+
const storedChecksum = buffer.subarray(payloadLength, payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
|
|
735
|
+
const computedChecksum = this.sha256(buffer.subarray(0, payloadLength));
|
|
736
|
+
if (!storedChecksum.equals(computedChecksum)) {
|
|
737
|
+
throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPrivateKeyChecksum);
|
|
738
|
+
}
|
|
654
739
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call
|
|
655
740
|
return new PrivateKey(lambda, mu, publicKey);
|
|
656
741
|
}
|
|
657
742
|
/**
|
|
658
743
|
* Serialize an IsolatedPublicKey to Buffer
|
|
659
|
-
* Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable]
|
|
744
|
+
* Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable][checksum:32]
|
|
660
745
|
*/
|
|
661
746
|
isolatedPublicKeyToBuffer(publicKey) {
|
|
662
747
|
const key = publicKey;
|
|
@@ -670,8 +755,9 @@ class VotingService {
|
|
|
670
755
|
const instanceId = key.getInstanceId();
|
|
671
756
|
const magicBytes = Buffer.from(voting_consts_1.VOTING.KEY_MAGIC, 'utf-8');
|
|
672
757
|
const nHexBytes = Buffer.from(nHex, 'utf-8');
|
|
673
|
-
// magic(4) + version(1) + keyId(32) + instanceId(32) + n_length(4) + n
|
|
674
|
-
const
|
|
758
|
+
// magic(4) + version(1) + keyId(32) + instanceId(32) + n_length(4) + n + checksum(32)
|
|
759
|
+
const payloadLength = 4 + 1 + 32 + 32 + 4 + nHexBytes.length;
|
|
760
|
+
const result = Buffer.alloc(payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
|
|
675
761
|
// Write magic
|
|
676
762
|
magicBytes.copy(result, 0);
|
|
677
763
|
// Write version
|
|
@@ -683,15 +769,18 @@ class VotingService {
|
|
|
683
769
|
// Write n_length and n
|
|
684
770
|
result.writeUInt32BE(nHexBytes.length, 69);
|
|
685
771
|
nHexBytes.copy(result, 73);
|
|
772
|
+
// Append SHA-256 checksum of the payload
|
|
773
|
+
const checksum = this.sha256(result.subarray(0, payloadLength));
|
|
774
|
+
checksum.copy(result, payloadLength);
|
|
686
775
|
return result;
|
|
687
776
|
}
|
|
688
777
|
/**
|
|
689
778
|
* Deserialize an IsolatedPublicKey from Buffer
|
|
690
|
-
* Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable]
|
|
779
|
+
* Format: [magic:4][version:1][keyId:32][instanceId:32][n_length:4][n:variable][checksum:32]
|
|
691
780
|
*/
|
|
692
781
|
async bufferToIsolatedPublicKey(buffer) {
|
|
693
782
|
// Minimum buffer length check
|
|
694
|
-
if (buffer.length < 73) {
|
|
783
|
+
if (buffer.length < 73 + voting_consts_1.VOTING.CHECKSUM_LENGTH) {
|
|
695
784
|
throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPublicKeyBufferTooShort);
|
|
696
785
|
}
|
|
697
786
|
// Verify magic
|
|
@@ -712,6 +801,13 @@ class VotingService {
|
|
|
712
801
|
const nLength = buffer.readUInt32BE(69);
|
|
713
802
|
const nHex = buffer.subarray(73, 73 + nLength).toString('utf-8');
|
|
714
803
|
const n = BigInt('0x' + nHex);
|
|
804
|
+
// Verify checksum
|
|
805
|
+
const payloadLength = 73 + nLength;
|
|
806
|
+
const storedChecksum = buffer.subarray(payloadLength, payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
|
|
807
|
+
const computedChecksum = this.sha256(buffer.subarray(0, payloadLength));
|
|
808
|
+
if (!storedChecksum.equals(computedChecksum)) {
|
|
809
|
+
throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPublicKeyChecksum);
|
|
810
|
+
}
|
|
715
811
|
// g = n + 1 for simplified Paillier
|
|
716
812
|
const g = n + 1n;
|
|
717
813
|
// Create IsolatedPublicKey using fromBuffer factory method
|
|
@@ -730,7 +826,7 @@ class VotingService {
|
|
|
730
826
|
}
|
|
731
827
|
/**
|
|
732
828
|
* Deserialize an IsolatedPrivateKey from Buffer
|
|
733
|
-
* Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable]
|
|
829
|
+
* Format: [magic:4][version:1][lambda_length:4][lambda:variable][mu_length:4][mu:variable][checksum:32]
|
|
734
830
|
*/
|
|
735
831
|
async bufferToIsolatedPrivateKey(buffer, publicKey) {
|
|
736
832
|
const key = publicKey;
|
|
@@ -738,7 +834,7 @@ class VotingService {
|
|
|
738
834
|
throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPublicKeyNotIsolated);
|
|
739
835
|
}
|
|
740
836
|
// Minimum buffer length check
|
|
741
|
-
if (buffer.length < 13) {
|
|
837
|
+
if (buffer.length < 13 + voting_consts_1.VOTING.CHECKSUM_LENGTH) {
|
|
742
838
|
throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPrivateKeyBufferTooShort);
|
|
743
839
|
}
|
|
744
840
|
// Verify magic
|
|
@@ -761,6 +857,13 @@ class VotingService {
|
|
|
761
857
|
.subarray(13 + lambdaLength, 13 + lambdaLength + muLength)
|
|
762
858
|
.toString('utf-8');
|
|
763
859
|
const mu = BigInt('0x' + muHex);
|
|
860
|
+
// Verify checksum
|
|
861
|
+
const payloadLength = 13 + lambdaLength + muLength;
|
|
862
|
+
const storedChecksum = buffer.subarray(payloadLength, payloadLength + voting_consts_1.VOTING.CHECKSUM_LENGTH);
|
|
863
|
+
const computedChecksum = this.sha256(buffer.subarray(0, payloadLength));
|
|
864
|
+
if (!storedChecksum.equals(computedChecksum)) {
|
|
865
|
+
throw new voting_1.VotingError(voting_error_type_1.VotingErrorType.InvalidPrivateKeyChecksum);
|
|
866
|
+
}
|
|
764
867
|
return new isolated_private_1.IsolatedPrivateKey(lambda, mu, key);
|
|
765
868
|
}
|
|
766
869
|
// Helper methods for serialization
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voting.service.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/voting.service.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;AAsDH,0CAoCC;AAKD,wBAYC;AAKD,gCAoBC;AAKD,kBAUC;AAKD,kBAEC;AAiBD,oBAoCC;AAmFD,gEA0CC;AASD,oEA8EC;AAuBD,4DAiGC;AAzhBD,mCAA4D;AAO5D,uDAAoD;AAGpD,yEAAoE;AACpE,6CAA+C;AAC/C,+DAAqD;AACrD,0DAAyD;AACzD,wDAAuD;AA6BvD;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAEzB,uBAAuB;IACvB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;QACrB,CAAC,IAAI,EAAE,CAAC;QACR,CAAC,EAAE,CAAC;IACN,CAAC;IAED,yCAAyC;IACzC,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAE3E,eAAe;IACf,MAAM,WAAW,GAAG,CAAC,CAAS,EAAW,EAAE;QACzC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YAAE,OAAO,IAAI,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBAAE,OAAO,IAAI,CAAC;QAChC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,oCAAoC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACpC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAC,IAAY,EAAE,GAAW,EAAE,GAAW;IAC3D,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;IAClB,OAAO,GAAG,GAAG,EAAE,EAAE,CAAC;QAChB,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;YACpB,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QACjC,CAAC;QACD,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;QAChB,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,CAAS,EAAE,CAAS;IAC7C,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,EAAE,GAAG,CAAC,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC,CAAC;IAEX,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACX,EAAE,GAAG,CAAC,CAAC;QACP,CAAC,GAAG,EAAE,CAAC;QACP,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QACjB,EAAE,GAAG,CAAC,CAAC;IACT,CAAC;IAED,IAAI,EAAE,GAAG,EAAE;QAAE,EAAE,IAAI,EAAE,CAAC;IACtB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,CAAC;QACZ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACV,CAAC,GAAG,CAAC,CAAC;IACR,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,IAAI,CAClB,MAAkB,EAClB,IAAuB,EACvB,IAAY,EACZ,MAAc,EACd,gBAAwB,QAAQ;IAEhC,mDAAmD;IACnD,uEAAuE;IACvE,wEAAwE;IACxE,MAAM,UAAU,GACd,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,mBAAU,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,IAAA,mBAAU,EAAC,aAAa,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;IAE1E,oDAAoD;IACpD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;IAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAElB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QACvD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACnC,MAAM,IAAI,UAAU,CAAC;IACvB,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAa,uBAAuB;IAC1B,CAAC,CAAS;IACV,CAAC,CAAS;IACD,aAAa,CAAS;IAEvC,YAAY,IAAgB,EAAE,gBAAwB,QAAQ;QAC5D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,MAAM,UAAU,GAAG,IAAA,mBAAU,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC;QAE7D,qBAAqB;QACrB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAExC,mBAAmB;QACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,YAAqB;QAClC,0CAA0C;QAC1C,IAAI,IAAI,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAEvB,iBAAiB;QACjB,IAAI,CAAC,CAAC,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAExE,IAAI,YAAY,EAAE,CAAC;YACjB,0CAA0C;YAC1C,IAAI,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAEvB,iBAAiB;YACjB,IAAI,CAAC,CAAC,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1E,CAAC;IACH,CAAC;IAEM,QAAQ,CAAC,QAAgB;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,OAAO,MAAM,GAAG,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACxE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;YAC3C,MAAM,IAAI,UAAU,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAzDD,0DAyDC;AAED;;GAEG;AACH,MAAM,YAAY,GAAG;IACnB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC1E,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG;CACd,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,0BAA0B,CACxC,IAA6B,EAC7B,OAAe,EACf,sBAA8B,GAAG,EACjC,cAAsB,KAAK;IAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,wBAAwB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEtC,yCAAyC;QACzC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;QAEvB,sCAAsC;QACtC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAEpE,mCAAmC;QACnC,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;YACtC,IACE,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE;gBACrC,SAAS,KAAK,MAAM,CAAC,UAAU,CAAC,EAChC,CAAC;gBACD,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,WAAW;YAAE,SAAS;QAE1B,gEAAgE;QAChE,IAAI,eAAe,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,CAAC;YACpD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,WAAW,WAAW,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,4BAA4B,CAC1C,IAAgB,EAChB,OAAe,IAAI,EACnB,sBAA8B,GAAG;IAEjC,kBAAkB;IAClB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,mBAAmB,GAAG,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,yDAAyD,mBAAmB,EAAE,CAC/E,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,IAAI,SAAqD,CAAC;IAC1D,IAAI,UAAuD,CAAC;IAE5D,IAAI,CAAC;QACH,0GAA0G;QAC1G,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC5C,+GAA+G;QAC/G,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC/B,+GAA+G;QAC/G,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACjC,6DAA6D;IAC/D,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAE/C,2CAA2C;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC3E,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAE3E,sBAAsB;IACtB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEhB,mEAAmE;IACnE,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAEnC,0CAA0C;IAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAEjB,gDAAgD;IAChD,uBAAuB;IACvB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,kBAAkB;IAClB,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IAEzD,2CAA2C;IAC3C,MAAM,aAAa,GAAG,GAAG,CAAC;IAC1B,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhD,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,wBAAwB,CACtC,WAAuB,EACvB,UAAsB,EACtB,UAAmC,EAAE;IAErC,MAAM,EACJ,SAAS,GAAG,WAAW,EACvB,cAAc,GAAG,IAAI,EACrB,kBAAkB,GAAG,EAAE,EACvB,eAAe,GAAG,EAAE,EACpB,aAAa,GAAG,QAAQ,EACxB,QAAQ,GAAG,kBAAkB,EAC7B,UAAU,GAAG,EAAE,EACf,gBAAgB,GAAG,IAAI,EACvB,mBAAmB,GAAG,GAAG,GAC1B,GAAG,OAAO,CAAC;IAEZ,4CAA4C;IAC5C,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,qEAAqE;IACrE,8DAA8D;IAC9D,IAAI,iBAAiB,GAAe,WAAW,CAAC;IAChD,IAAI,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC9B,wCAAwC;QACxC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,0CAA0C;QACtE,iBAAiB,GAAG,MAAM,CAAC;IAC7B,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,8DAA8D,WAAW,CAAC,MAAM,EAAE,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,4EAA4E;IAC5E,IAAI,UAAkB,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC7B,yCAAyC;QACzC,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEnD,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;QACvC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,0BAA0B;QAEnD,wDAAwD;QACxD,iEAAiE;QACjE,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;SAAM,IACL,UAAU,CAAC,MAAM,KAAK,eAAe;QACrC,UAAU,CAAC,CAAC,CAAC,KAAK,cAAc,EAChC,CAAC;QACD,wCAAwC;QACxC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,UAAU,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;QACpD,uCAAuC;QACvC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,2HAA2H,UAAU,CAAC,MAAM,EAAE,CAC/I,CAAC;IACJ,CAAC;IAED,iFAAiF;IACjF,0EAA0E;IAC1E,MAAM,YAAY,GAAG,qBAAS,CAAC,eAAe,CAC5C,iBAAiB,EACjB,UAAU,EACV,KAAK,CACN,CAAC;IAEF,iFAAiF;IACjF,mFAAmF;IACnF,MAAM,IAAI,GAAG,IAAI,CACf,YAAY,EACZ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iDAAiD;IAClE,QAAQ,EACR,UAAU,EACV,aAAa,CACd,CAAC;IAEF,kCAAkC;IAClC,OAAO,4BAA4B,CACjC,IAAI,EACJ,gBAAgB,EAChB,mBAAmB,CACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAa,aAAa;IAChB,MAAM,CAAC,QAAQ,CAAiB;IAExC;;OAEG;IACI,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,wBAAwB,CACnC,WAAuB,EACvB,UAAsB,EACtB,OAAiC;QAEjC,OAAO,wBAAwB,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACI,IAAI,CACT,MAAkB,EAClB,IAAuB,EACvB,IAAY,EACZ,MAAc,EACd,aAAsB;QAEtB,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,CAAS,EAAE,CAAS;QACzC,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,IAAY,EAAE,GAAW,EAAE,GAAW;QAClD,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,CAAS,EAAE,CAAS;QACpC,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,CAAS,EAAE,CAAS;QAC7B,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,CAAS,EAAE,CAAS;QAC7B,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,0BAA0B,CAC/B,IAA6B,EAC7B,OAAe,EACf,mBAA4B,EAC5B,WAAoB;QAEpB,OAAO,0BAA0B,CAC/B,IAAI,EACJ,OAAO,EACP,mBAAmB,EACnB,WAAW,CACZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,4BAA4B,CACvC,IAAgB,EAChB,IAAa,EACb,mBAA4B;QAE5B,OAAO,4BAA4B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACI,UAAU,CACf,IAAgB,EAChB,aAAsB;QAEtB,OAAO,IAAI,uBAAuB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;OAMG;IACI,uBAAuB,CAAC,SAAoB;QACjD,wBAAwB;QACxB,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC;aACrB,QAAQ,CAAC,sBAAM,CAAC,SAAS,CAAC;aAC1B,QAAQ,CAAC,sBAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAElC,mBAAmB;QACnB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7C,qEAAqE;QACrE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAE/D,cAAc;QACd,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1D,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE3B,gBAAgB;QAChB,MAAM,CAAC,CAAC,CAAC,GAAG,sBAAM,CAAC,WAAW,CAAC;QAE/B,cAAc;QACd,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEtB,uBAAuB;QACvB,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,uBAAuB,CAAC,MAAc;QACjD,uBAAuB;QACvB,0GAA0G;QAC1G,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEjD,8BAA8B;QAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,8BAA8B,CAAC,CAAC;QACxE,CAAC;QAED,eAAe;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,KAAK,KAAK,sBAAM,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,gCAAgC,CAAC,CAAC;QAC1E,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,sBAAM,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,2BAA2B,CAAC,CAAC;QACrE,CAAC;QAED,aAAa;QACb,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAErC,SAAS;QACT,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAE9B,eAAe;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,0BAA0B,CAAC,CAAC;QACpE,CAAC;QAED,oCAAoC;QACpC,kGAAkG;QAClG,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;OASG;IACI,wBAAwB,CAAC,UAAsB;QACpD,8CAA8C;QAC9C,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM;aAChC,QAAQ,CAAC,sBAAM,CAAC,SAAS,CAAC;aAC1B,QAAQ,CAAC,sBAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE;aACxB,QAAQ,CAAC,sBAAM,CAAC,SAAS,CAAC;aAC1B,QAAQ,CAAC,sBAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAExC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAE5C,wEAAwE;QACxE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CACzB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CACpD,CAAC;QAEF,cAAc;QACd,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE3B,gBAAgB;QAChB,MAAM,CAAC,CAAC,CAAC,GAAG,sBAAM,CAAC,WAAW,CAAC;QAE/B,iCAAiC;QACjC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5C,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE5B,yBAAyB;QACzB,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAE9C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,wBAAwB,CACnC,MAAc,EACd,SAAoB;QAEpB,wBAAwB;QACxB,0GAA0G;QAC1G,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAElD,8BAA8B;QAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,+BAA+B,CAAC,CAAC;QACzE,CAAC;QAED,eAAe;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,KAAK,KAAK,sBAAM,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,iCAAiC,CAAC,CAAC;QAC3E,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,sBAAM,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,4BAA4B,CAAC,CAAC;QACtE,CAAC;QAED,cAAc;QACd,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;QAExC,UAAU;QACV,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM;aACjB,QAAQ,CAAC,EAAE,GAAG,YAAY,EAAE,EAAE,GAAG,YAAY,GAAG,QAAQ,CAAC;aACzD,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAEhC,kGAAkG;QAClG,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACI,yBAAyB,CAAC,SAAkC;QACjE,MAAM,GAAG,GAAG,SAAyC,CAAC;QACtD,IAAI,CAAC,mCAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,2BAA2B,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC;aACf,QAAQ,CAAC,sBAAM,CAAC,SAAS,CAAC;aAC1B,QAAQ,CAAC,sBAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QAEvC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7C,uEAAuE;QACvE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAEpE,cAAc;QACd,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE3B,gBAAgB;QAChB,MAAM,CAAC,CAAC,CAAC,GAAG,sBAAM,CAAC,WAAW,CAAC;QAE/B,cAAc;QACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEnC,mBAAmB;QACnB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEzC,uBAAuB;QACvB,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,yBAAyB,CACpC,MAAc;QAEd,8BAA8B;QAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,8BAA8B,CAAC,CAAC;QACxE,CAAC;QAED,eAAe;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,KAAK,KAAK,sBAAM,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,gCAAgC,CAAC,CAAC;QAC1E,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,sBAAM,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,2BAA2B,CAAC,CAAC;QACrE,CAAC;QAED,aAAa;QACb,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAErC,kBAAkB;QAClB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAE3C,SAAS;QACT,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAE9B,oCAAoC;QACpC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAEjB,2DAA2D;QAC3D,uDAAuD;QACvD,OAAO,mCAAiB,CAAC,UAAU,CACjC,CAAC,EACD,CAAC,EACD,KAAK,EACL,UAAU,CAC2B,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACI,0BAA0B,CAC/B,UAAoC;QAEpC,MAAM,GAAG,GAAG,UAA2C,CAAC;QACxD,yDAAyD;QACzD,mEAAmE;QACnE,OAAO,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,0BAA0B,CACrC,MAAc,EACd,SAAkC;QAElC,MAAM,GAAG,GAAG,SAAyC,CAAC;QACtD,IAAI,CAAC,mCAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,2BAA2B,CAAC,CAAC;QACrE,CAAC;QAED,8BAA8B;QAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,+BAA+B,CAAC,CAAC;QACzE,CAAC;QAED,eAAe;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,KAAK,KAAK,sBAAM,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,iCAAiC,CAAC,CAAC;QAC3E,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,sBAAM,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,4BAA4B,CAAC,CAAC;QACtE,CAAC;QAED,cAAc;QACd,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;QAExC,UAAU;QACV,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM;aACjB,QAAQ,CAAC,EAAE,GAAG,YAAY,EAAE,EAAE,GAAG,YAAY,GAAG,QAAQ,CAAC;aACzD,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAEhC,OAAO,IAAI,qCAAkB,CAC3B,MAAM,EACN,EAAE,EACF,GAAG,CACmC,CAAC;IAC3C,CAAC;IAED,mCAAmC;IAC3B,WAAW,CAAC,GAAW;QAC7B,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClB,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,IAAY;QACzB,OAAO,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACpD,CAAC;IAED,iDAAiD;IAC1C,kBAAkB,CAAC,SAAoB;QAC5C,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAC/B,MAA2B;QAE3B,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;IAEM,mBAAmB,CAAC,UAAsB;QAC/C,OAAO,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAChC,MAA2B,EAC3B,SAAoB;QAEpB,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IAC7E,CAAC;CACF;AAzdD,sCAydC"}
|
|
1
|
+
{"version":3,"file":"voting.service.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/voting.service.ts"],"names":[],"mappings":"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"}
|