@atlasauth/pca-mpc 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +81 -3
  2. package/dist/beaver.js +4 -0
  3. package/dist/beaver.js.map +1 -1
  4. package/dist/compose.d.ts +9 -2
  5. package/dist/compose.js +24 -1
  6. package/dist/compose.js.map +1 -1
  7. package/dist/ec.d.ts +6 -3
  8. package/dist/ec.js +27 -9
  9. package/dist/ec.js.map +1 -1
  10. package/dist/enc.d.ts +46 -0
  11. package/dist/enc.js +88 -0
  12. package/dist/enc.js.map +1 -0
  13. package/dist/endemic-ot.js +24 -1
  14. package/dist/endemic-ot.js.map +1 -1
  15. package/dist/hybrid-ot.js +3 -0
  16. package/dist/hybrid-ot.js.map +1 -1
  17. package/dist/kem-ot.js +2 -0
  18. package/dist/kem-ot.js.map +1 -1
  19. package/dist/mascot.d.ts +81 -30
  20. package/dist/mascot.js +232 -113
  21. package/dist/mascot.js.map +1 -1
  22. package/dist/net/certs.d.ts +14 -0
  23. package/dist/net/certs.js +30 -0
  24. package/dist/net/certs.js.map +1 -0
  25. package/dist/net/faults.d.ts +49 -0
  26. package/dist/net/faults.js +222 -0
  27. package/dist/net/faults.js.map +1 -0
  28. package/dist/net/forensics.d.ts +81 -0
  29. package/dist/net/forensics.js +181 -0
  30. package/dist/net/forensics.js.map +1 -0
  31. package/dist/net/gadget.d.ts +44 -0
  32. package/dist/net/gadget.js +102 -0
  33. package/dist/net/gadget.js.map +1 -0
  34. package/dist/net/index.d.ts +11 -0
  35. package/dist/net/index.js +28 -0
  36. package/dist/net/index.js.map +1 -0
  37. package/dist/net/launch-local.d.ts +53 -0
  38. package/dist/net/launch-local.js +190 -0
  39. package/dist/net/launch-local.js.map +1 -0
  40. package/dist/net/launch-support.d.ts +6 -0
  41. package/dist/net/launch-support.js +65 -0
  42. package/dist/net/launch-support.js.map +1 -0
  43. package/dist/net/mesh.d.ts +135 -0
  44. package/dist/net/mesh.js +491 -0
  45. package/dist/net/mesh.js.map +1 -0
  46. package/dist/net/offline-net.d.ts +58 -0
  47. package/dist/net/offline-net.js +485 -0
  48. package/dist/net/offline-net.js.map +1 -0
  49. package/dist/net/ot-net.d.ts +42 -0
  50. package/dist/net/ot-net.js +219 -0
  51. package/dist/net/ot-net.js.map +1 -0
  52. package/dist/net/pa.d.ts +65 -0
  53. package/dist/net/pa.js +118 -0
  54. package/dist/net/pa.js.map +1 -0
  55. package/dist/net/party-main.d.ts +48 -0
  56. package/dist/net/party-main.js +146 -0
  57. package/dist/net/party-main.js.map +1 -0
  58. package/dist/net/prep.d.ts +40 -0
  59. package/dist/net/prep.js +12 -0
  60. package/dist/net/prep.js.map +1 -0
  61. package/dist/net/protocol.d.ts +126 -0
  62. package/dist/net/protocol.js +655 -0
  63. package/dist/net/protocol.js.map +1 -0
  64. package/dist/net/wire.d.ts +89 -0
  65. package/dist/net/wire.js +242 -0
  66. package/dist/net/wire.js.map +1 -0
  67. package/dist/ot.d.ts +176 -17
  68. package/dist/ot.js +479 -252
  69. package/dist/ot.js.map +1 -1
  70. package/dist/otx.d.ts +76 -0
  71. package/dist/otx.js +238 -0
  72. package/dist/otx.js.map +1 -0
  73. package/dist/runner.d.ts +1 -1
  74. package/dist/runner.js +6 -1
  75. package/dist/runner.js.map +1 -1
  76. package/dist/sharing.d.ts +2 -0
  77. package/dist/sharing.js +7 -4
  78. package/dist/sharing.js.map +1 -1
  79. package/dist/spdz-runner.d.ts +20 -3
  80. package/dist/spdz-runner.js +21 -3
  81. package/dist/spdz-runner.js.map +1 -1
  82. package/dist/spdz.d.ts +96 -22
  83. package/dist/spdz.js +196 -47
  84. package/dist/spdz.js.map +1 -1
  85. package/package.json +15 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/net/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Wire format + error taxonomy for the networked MPC transport (research prototype).
3
+ *
4
+ * A frame is `uint32_be length || utf8 JSON`. The JSON is a strict envelope
5
+ * `{ v:2, ty, sid, seq, rd, d }`. Field elements travel as lowercase hex strings and are validated
6
+ * to be canonical (< p) on receipt. Nothing here is cryptography: confidentiality, integrity and peer
7
+ * authentication come from TLS 1.3 with pinned certificates (`mesh.ts`).
8
+ */
9
+ /**
10
+ * Wire/protocol version. 2 = the R4-12 OT-extension tweak (128-bit tweak, session domain from the binding). A peer
11
+ * that sends any other integer `v` is refused with a typed `version` abort (never a silent OT divergence).
12
+ */
13
+ export declare const WIRE_VERSION = 2;
14
+ /** Hard cap on a single frame (bytes). A bigger length prefix is treated as hostile and aborts. */
15
+ export declare const MAX_FRAME_BYTES: number;
16
+ export type FrameType = 'hello' | 'msg' | 'abort';
17
+ export interface Frame {
18
+ v: number;
19
+ ty: FrameType;
20
+ sid: string;
21
+ seq: number;
22
+ rd: string;
23
+ d: unknown;
24
+ }
25
+ /** Why a protocol run aborted. Every abort carries a kind and, when the evidence supports it, a culprit. */
26
+ export type AbortKind = 'timeout' | 'disconnect' | 'version' | 'malformed' | 'oversize' | 'duplicate' | 'out-of-order' | 'wrong-round' | 'wrong-session' | 'identity' | 'commitment' | 'ot-check' | 'mac-check' | 'dealer' | 'equivocation' | 'flood' | 'peer-abort' | 'local';
27
+ export declare class NetAbort extends Error {
28
+ readonly kind: AbortKind;
29
+ /**
30
+ * The party we blame, or null when the evidence cannot attribute (e.g. a MAC-check failure).
31
+ * For `peer-abort` this is the peer that SENT the abort frame; whom that peer accuses is `claimedBlame`.
32
+ */
33
+ readonly blamed: number | null;
34
+ /** Node that detected / reported it. */
35
+ readonly reporter: number;
36
+ /** For `peer-abort`: the kind the reporting peer gave (an unauthenticated claim by that peer). */
37
+ readonly claimedKind?: AbortKind;
38
+ /** For `peer-abort`: whom the reporting peer accuses. An unverified claim; never used as attribution. */
39
+ readonly claimedBlame?: number | null;
40
+ /**
41
+ * Why `blamed` is null (R3-16/17): attribution is impossible from this party's evidence and the abort says so
42
+ * explicitly. `null` when a party IS blamed. Never empty when `blamed` is null.
43
+ */
44
+ readonly reason: string | null;
45
+ /**
46
+ * What the blame rests on, when it is transferable: for an `equivocation` the two statements the culprit SIGNED
47
+ * (a third party can verify both against the culprit's pinned certificate). Absent for first-hand observations
48
+ * (a timeout, a failed commitment opening, a bad share), which convince only the observer.
49
+ */
50
+ readonly evidence?: unknown;
51
+ /** For a `timeout`: the deadline (ms) that elapsed. A silent peer is indistinguishable from a slow or partitioned honest one. */
52
+ readonly deadlineMs?: number;
53
+ constructor(kind: AbortKind, blamed: number | null, reporter: number, detail: string, claimedKind?: AbortKind, claimedBlame?: number | null, opts?: {
54
+ reason?: string;
55
+ evidence?: unknown;
56
+ deadlineMs?: number;
57
+ });
58
+ }
59
+ export declare function encodeFrame(f: Frame): Buffer;
60
+ /** All abort kinds, for validating a kind claimed by a peer. */
61
+ export declare const ABORT_KINDS: ReadonlySet<string>;
62
+ /**
63
+ * Incremental length-prefixed frame splitter in linear time: incoming chunks are queued and a frame body is
64
+ * materialised once, when it is complete (never by re-concatenating the whole buffer per chunk).
65
+ * `push` throws a plain Error('oversize') on a hostile length.
66
+ */
67
+ export declare class FrameSplitter {
68
+ private chunks;
69
+ private head;
70
+ private have;
71
+ push(chunk: Buffer): Buffer[];
72
+ private peekLen;
73
+ private take;
74
+ }
75
+ /** The integer `v` of a frame body, or null when the body is not a JSON object carrying one. Used only to type a version-mismatch abort. */
76
+ export declare function peekVersion(body: Buffer): number | null;
77
+ /** Strict envelope parse. Returns null on ANY deviation (the caller aborts blaming the sender). */
78
+ export declare function parseFrame(body: Buffer): Frame | null;
79
+ /**
80
+ * The peer's version when `body` is a well-formed frame in every respect except an integer `v` other than
81
+ * {@link WIRE_VERSION}; null otherwise. R6-CORE-06: only such a frame earns a `version` abort; garbage that merely
82
+ * carries some integer `v` is `malformed`.
83
+ */
84
+ export declare function versionMismatch(body: Buffer): number | null;
85
+ export declare const hx: (x: bigint) => string;
86
+ /** Decode a canonical field element; returns null if not a canonical hex string < p. */
87
+ export declare function unhx(s: unknown): bigint | null;
88
+ /** Decode an array of exactly `len` canonical field elements, or null. */
89
+ export declare function unhxArray(a: unknown, len: number): bigint[] | null;
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+ /**
3
+ * Wire format + error taxonomy for the networked MPC transport (research prototype).
4
+ *
5
+ * A frame is `uint32_be length || utf8 JSON`. The JSON is a strict envelope
6
+ * `{ v:2, ty, sid, seq, rd, d }`. Field elements travel as lowercase hex strings and are validated
7
+ * to be canonical (< p) on receipt. Nothing here is cryptography: confidentiality, integrity and peer
8
+ * authentication come from TLS 1.3 with pinned certificates (`mesh.ts`).
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.hx = exports.FrameSplitter = exports.ABORT_KINDS = exports.NetAbort = exports.MAX_FRAME_BYTES = exports.WIRE_VERSION = void 0;
12
+ exports.encodeFrame = encodeFrame;
13
+ exports.peekVersion = peekVersion;
14
+ exports.parseFrame = parseFrame;
15
+ exports.versionMismatch = versionMismatch;
16
+ exports.unhx = unhx;
17
+ exports.unhxArray = unhxArray;
18
+ const field_1 = require("../field");
19
+ /**
20
+ * Wire/protocol version. 2 = the R4-12 OT-extension tweak (128-bit tweak, session domain from the binding). A peer
21
+ * that sends any other integer `v` is refused with a typed `version` abort (never a silent OT divergence).
22
+ */
23
+ exports.WIRE_VERSION = 2;
24
+ /** Hard cap on a single frame (bytes). A bigger length prefix is treated as hostile and aborts. */
25
+ exports.MAX_FRAME_BYTES = 4 * 1024 * 1024;
26
+ class NetAbort extends Error {
27
+ kind;
28
+ /**
29
+ * The party we blame, or null when the evidence cannot attribute (e.g. a MAC-check failure).
30
+ * For `peer-abort` this is the peer that SENT the abort frame; whom that peer accuses is `claimedBlame`.
31
+ */
32
+ blamed;
33
+ /** Node that detected / reported it. */
34
+ reporter;
35
+ /** For `peer-abort`: the kind the reporting peer gave (an unauthenticated claim by that peer). */
36
+ claimedKind;
37
+ /** For `peer-abort`: whom the reporting peer accuses. An unverified claim; never used as attribution. */
38
+ claimedBlame;
39
+ /**
40
+ * Why `blamed` is null (R3-16/17): attribution is impossible from this party's evidence and the abort says so
41
+ * explicitly. `null` when a party IS blamed. Never empty when `blamed` is null.
42
+ */
43
+ reason;
44
+ /**
45
+ * What the blame rests on, when it is transferable: for an `equivocation` the two statements the culprit SIGNED
46
+ * (a third party can verify both against the culprit's pinned certificate). Absent for first-hand observations
47
+ * (a timeout, a failed commitment opening, a bad share), which convince only the observer.
48
+ */
49
+ evidence;
50
+ /** For a `timeout`: the deadline (ms) that elapsed. A silent peer is indistinguishable from a slow or partitioned honest one. */
51
+ deadlineMs;
52
+ constructor(kind, blamed, reporter, detail, claimedKind, claimedBlame, opts = {}) {
53
+ super(`[${kind}] blamed=${blamed === null ? 'none' : blamed} reporter=${reporter}: ${detail}`);
54
+ this.name = 'NetAbort';
55
+ this.kind = kind;
56
+ this.blamed = blamed;
57
+ this.reporter = reporter;
58
+ this.claimedKind = claimedKind;
59
+ this.claimedBlame = claimedBlame;
60
+ this.reason = blamed === null ? (opts.reason !== undefined && opts.reason.length > 0 ? opts.reason : 'unattributable: the evidence available to this party does not identify a culprit') : null;
61
+ if (opts.evidence !== undefined)
62
+ this.evidence = opts.evidence;
63
+ if (opts.deadlineMs !== undefined)
64
+ this.deadlineMs = opts.deadlineMs;
65
+ }
66
+ }
67
+ exports.NetAbort = NetAbort;
68
+ function encodeFrame(f) {
69
+ const body = Buffer.from(JSON.stringify(f), 'utf8');
70
+ if (body.length > exports.MAX_FRAME_BYTES)
71
+ throw new Error('frame too large');
72
+ const out = Buffer.allocUnsafe(4 + body.length);
73
+ out.writeUInt32BE(body.length, 0);
74
+ body.copy(out, 4);
75
+ return out;
76
+ }
77
+ /** All abort kinds, for validating a kind claimed by a peer. */
78
+ exports.ABORT_KINDS = new Set([
79
+ 'timeout', 'disconnect', 'version', 'malformed', 'oversize', 'duplicate', 'out-of-order', 'wrong-round', 'wrong-session',
80
+ 'identity', 'commitment', 'ot-check', 'mac-check', 'dealer', 'equivocation', 'flood', 'peer-abort', 'local',
81
+ ]);
82
+ /**
83
+ * Incremental length-prefixed frame splitter in linear time: incoming chunks are queued and a frame body is
84
+ * materialised once, when it is complete (never by re-concatenating the whole buffer per chunk).
85
+ * `push` throws a plain Error('oversize') on a hostile length.
86
+ */
87
+ class FrameSplitter {
88
+ chunks = [];
89
+ head = 0; // read offset inside chunks[0]
90
+ have = 0; // unread bytes queued
91
+ push(chunk) {
92
+ if (chunk.length > 0) {
93
+ this.chunks.push(chunk);
94
+ this.have += chunk.length;
95
+ }
96
+ const out = [];
97
+ for (;;) {
98
+ if (this.have < 4)
99
+ break;
100
+ const len = this.peekLen();
101
+ if (len > exports.MAX_FRAME_BYTES)
102
+ throw new Error('oversize');
103
+ if (this.have < 4 + len)
104
+ break;
105
+ this.take(4);
106
+ out.push(this.take(len));
107
+ }
108
+ return out;
109
+ }
110
+ peekLen() {
111
+ let v = 0;
112
+ let need = 4;
113
+ let ci = 0;
114
+ let off = this.head;
115
+ while (need > 0) {
116
+ const c = this.chunks[ci];
117
+ while (off < c.length && need > 0) {
118
+ v = v * 256 + c[off++];
119
+ need--;
120
+ }
121
+ ci++;
122
+ off = 0;
123
+ }
124
+ return v;
125
+ }
126
+ take(len) {
127
+ if (len === 0)
128
+ return Buffer.alloc(0);
129
+ const first = this.chunks[0];
130
+ let out;
131
+ let ci = 0;
132
+ if (first.length - this.head >= len) {
133
+ out = first.subarray(this.head, this.head + len);
134
+ this.head += len;
135
+ }
136
+ else {
137
+ out = Buffer.allocUnsafe(len);
138
+ let w = 0;
139
+ while (w < len) {
140
+ const c = this.chunks[ci];
141
+ const n = Math.min(c.length - this.head, len - w);
142
+ c.copy(out, w, this.head, this.head + n);
143
+ w += n;
144
+ this.head += n;
145
+ if (this.head === c.length && w < len) {
146
+ ci++;
147
+ this.head = 0;
148
+ }
149
+ }
150
+ }
151
+ this.have -= len;
152
+ if (this.head === this.chunks[ci].length) {
153
+ ci++;
154
+ this.head = 0;
155
+ }
156
+ if (ci > 0)
157
+ this.chunks = this.chunks.slice(ci);
158
+ return out;
159
+ }
160
+ }
161
+ exports.FrameSplitter = FrameSplitter;
162
+ const FRAME_TYPES = new Set(['hello', 'msg', 'abort']);
163
+ /** The integer `v` of a frame body, or null when the body is not a JSON object carrying one. Used only to type a version-mismatch abort. */
164
+ function peekVersion(body) {
165
+ try {
166
+ const j = JSON.parse(body.toString('utf8'));
167
+ if (typeof j !== 'object' || j === null || Array.isArray(j))
168
+ return null;
169
+ const v = j.v;
170
+ return typeof v === 'number' && Number.isSafeInteger(v) ? v : null;
171
+ }
172
+ catch {
173
+ return null;
174
+ }
175
+ }
176
+ function parseObject(body) {
177
+ let j;
178
+ try {
179
+ j = JSON.parse(body.toString('utf8'));
180
+ }
181
+ catch {
182
+ return null;
183
+ }
184
+ if (typeof j !== 'object' || j === null || Array.isArray(j))
185
+ return null;
186
+ return j;
187
+ }
188
+ /** Every envelope rule except the version: exactly the six keys, known type, string sid/rd, non-negative safe seq. */
189
+ function envelopeShapeOk(o) {
190
+ if (Object.keys(o).length !== 6 || !('v' in o))
191
+ return false;
192
+ if (typeof o.ty !== 'string' || !FRAME_TYPES.has(o.ty))
193
+ return false;
194
+ if (typeof o.sid !== 'string' || typeof o.rd !== 'string')
195
+ return false;
196
+ if (typeof o.seq !== 'number' || !Number.isSafeInteger(o.seq) || o.seq < 0)
197
+ return false;
198
+ return 'd' in o;
199
+ }
200
+ /** Strict envelope parse. Returns null on ANY deviation (the caller aborts blaming the sender). */
201
+ function parseFrame(body) {
202
+ const o = parseObject(body);
203
+ if (o === null || o.v !== exports.WIRE_VERSION || !envelopeShapeOk(o))
204
+ return null;
205
+ return o;
206
+ }
207
+ /**
208
+ * The peer's version when `body` is a well-formed frame in every respect except an integer `v` other than
209
+ * {@link WIRE_VERSION}; null otherwise. R6-CORE-06: only such a frame earns a `version` abort; garbage that merely
210
+ * carries some integer `v` is `malformed`.
211
+ */
212
+ function versionMismatch(body) {
213
+ const o = parseObject(body);
214
+ if (o === null || typeof o.v !== 'number' || !Number.isSafeInteger(o.v) || o.v === exports.WIRE_VERSION)
215
+ return null;
216
+ return envelopeShapeOk(o) ? o.v : null;
217
+ }
218
+ // ---- field-element codec (canonical lowercase hex, strictly < p) ----
219
+ const hx = (x) => x.toString(16);
220
+ exports.hx = hx;
221
+ const HEX61 = /^(0|[1-9a-f][0-9a-f]{0,15})$/;
222
+ /** Decode a canonical field element; returns null if not a canonical hex string < p. */
223
+ function unhx(s) {
224
+ if (typeof s !== 'string' || !HEX61.test(s))
225
+ return null;
226
+ const v = BigInt('0x' + s);
227
+ return v < field_1.PRIME ? v : null;
228
+ }
229
+ /** Decode an array of exactly `len` canonical field elements, or null. */
230
+ function unhxArray(a, len) {
231
+ if (!Array.isArray(a) || a.length !== len)
232
+ return null;
233
+ const out = [];
234
+ for (const s of a) {
235
+ const v = unhx(s);
236
+ if (v === null)
237
+ return null;
238
+ out.push(v);
239
+ }
240
+ return out;
241
+ }
242
+ //# sourceMappingURL=wire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/net/wire.ts"],"names":[],"mappings":"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"}