@macula-io/ts 0.26.0 → 0.28.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/README.md CHANGED
@@ -19,9 +19,10 @@
19
19
 
20
20
  ---
21
21
 
22
- > **Status, 2026-09-26:** on the **macula 12** wire (post-quantum: ML-DSA-87
22
+ > **Status, 2026-10-05:** on the **macula 12** wire (post-quantum: ML-DSA-87
23
23
  > identities, as the ML-DSA-87 + RSA-PSS-4096 composite in `pq_hybrid`, the
24
- > fleet's profile; ML-KEM hybrid key exchange; signed requests), over macula-go's
24
+ > fleet's profile; key exchange on SecP384r1MLKEM1024 alone, ML-KEM-1024 with
25
+ > P-384, which meets CNSA 2.0 and BSI TR-02102; signed requests), over macula-go's
25
26
  > pool. Calls and streams by direct dial, serving (under an org or in a node's
26
27
  > own namespace), publish/subscribe, the DHT and node-served content are
27
28
  > tested against in-process macula 12 stations on every `npm test`.
@@ -167,6 +168,7 @@ call and session to JavaScript through a `ThreadSafeFunction`.
167
168
  | Primitive | Caller | Provider | Notes |
168
169
  |---|---|---|---|
169
170
  | Node keys (`NodeKey`) | ✅ | ✅ | `pq_hybrid` (the fleet's) or `pq_pure`; key files readable by the owner only; `sign` and `NodeKey.verify`, pq_hybrid checked against the LAMPS draft's own vector and cross-verified with macula 12.7.0 |
171
+ | Signed objects (`verifySignedObject`) | ✅ | | macula's `{key, tbs, signature}`, verified under a label and profile to the signer's node id (derived from the verified key) and the signed fields; one that does not verify throws `UnverifiedError` with its reason. Checked against the RAG service contract's frozen vector, both profiles |
170
172
  | Pool of station links (`Pool.connect`) | ✅ | ✅ | Seeds pinned by node_id; realm keys pinned; links redialed with subscriptions and served procedures replayed |
171
173
  | Calls by direct dial (`call`, `providers`) | ✅ | ✅ | `serve`: a thrown error goes back as `handler_error`; errors arrive as `ProviderError` / `RelayError` |
172
174
  | A node's own namespace (`ownProcedure`) | ✅ | ✅ | `~<node_id>/<name>`: served and called with no org and no realm key; the node's signature authorizes it |
package/dist/binding.d.ts CHANGED
@@ -25,6 +25,7 @@ interface Native {
25
25
  ownershipProofMessage(identity: Uint8Array, realm: Uint8Array, procedure: string, timestampMs: number, nonce: Uint8Array, fieldsJson: string): Uint8Array;
26
26
  keyFree(key: Handle): void;
27
27
  verify(data: Uint8Array, signature: Uint8Array, publicKey: Uint8Array, profile: string): boolean;
28
+ signedObjectVerify(label: string, object: Uint8Array, profile: string): string;
28
29
  poolConnect(key: Handle, seedsJson: string, optionsJson: string): Promise<Handle>;
29
30
  poolClose(pool: Handle): Promise<void>;
30
31
  poolNodeId(pool: Handle): Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,4 +2,5 @@ export { NodeKey, JOIN_SESSION_PROCEDURE, MEMBERSHIP_UCAN_PROCEDURE, type Profil
2
2
  export { Pool, Subscription, Served, RecordType, type Seed, type PoolOptions, type LinkStatus, type Provider, type Event, type Request, type DhtRecord, } from "./pool.js";
3
3
  export { NotSharedError, ContentUnavailableError, DEFAULT_CONTENT_TIMEOUT_MS, type ContentOptions, type Mcid, } from "./content.js";
4
4
  export { Stream, StreamMode, type StreamEvent, type StreamRequest } from "./stream.js";
5
- export { ProviderError, RelayError, StreamError, MaculaError, ConfidentialityError, DEFAULT_CALL_TIMEOUT_MS, type Confidential, type ServedConfidential, type SealReport, type JsonValue, type BytesOutput, type Id, } from "./wire.js";
5
+ export { verifySignedObject, type VerifiedObject } from "./signed_object.js";
6
+ export { ProviderError, RelayError, StreamError, MaculaError, ConfidentialityError, UnverifiedError, DEFAULT_CALL_TIMEOUT_MS, type Confidential, type ServedConfidential, type SealReport, type JsonValue, type BytesOutput, type Id, } from "./wire.js";
package/dist/index.js CHANGED
@@ -3,5 +3,6 @@ export { NodeKey, JOIN_SESSION_PROCEDURE, MEMBERSHIP_UCAN_PROCEDURE, } from "./k
3
3
  export { Pool, Subscription, Served, RecordType, } from "./pool.js";
4
4
  export { NotSharedError, ContentUnavailableError, DEFAULT_CONTENT_TIMEOUT_MS, } from "./content.js";
5
5
  export { Stream, StreamMode } from "./stream.js";
6
- export { ProviderError, RelayError, StreamError, MaculaError, ConfidentialityError, DEFAULT_CALL_TIMEOUT_MS, } from "./wire.js";
6
+ export { verifySignedObject } from "./signed_object.js";
7
+ export { ProviderError, RelayError, StreamError, MaculaError, ConfidentialityError, UnverifiedError, DEFAULT_CALL_TIMEOUT_MS, } from "./wire.js";
7
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EACL,OAAO,EACP,sBAAsB,EACtB,yBAAyB,GAM1B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,UAAU,GAQX,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,0BAA0B,GAG3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAwC,MAAM,aAAa,CAAC;AACvF,OAAO,EACL,aAAa,EACb,UAAU,EACV,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,uBAAuB,GAOxB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EACL,OAAO,EACP,sBAAsB,EACtB,yBAAyB,GAM1B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,UAAU,GAQX,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,0BAA0B,GAG3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAwC,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAuB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EACL,aAAa,EACb,UAAU,EACV,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,uBAAuB,GAOxB,MAAM,WAAW,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Profile } from "./key.js";
2
+ import { type BytesOutput, type JsonValue } from "./wire.js";
3
+ /** A verified signed object. */
4
+ export interface VerifiedObject {
5
+ /** The signer's node id, lowercase hex, derived from the verified key. */
6
+ readonly nodeId: string;
7
+ /** The signer's public key, as carried. */
8
+ readonly key: Uint8Array;
9
+ /** The signed bytes, as received. */
10
+ readonly tbs: Uint8Array;
11
+ /** The tbs map, decoded after the signature verified. */
12
+ readonly fields: JsonValue;
13
+ }
14
+ /** Verifies object (the CBOR bytes of a signed object that carries its key)
15
+ * under label and profile. Throws UnverifiedError (with its reason) for one that
16
+ * does not verify, and MaculaError for a bad argument. bytes says how bytes in
17
+ * fields come back: "hex" (the default) or "tagged". */
18
+ export declare function verifySignedObject(label: string, object: Uint8Array, profile?: Profile, bytes?: BytesOutput): VerifiedObject;
@@ -0,0 +1,26 @@
1
+ // Signed objects: macula's {key, tbs, signature} that carries its signer's key,
2
+ // as macula_signed_object:verify/3 reads it (macula-go v0.22.0,
3
+ // macula_signed_object_verify). The signature covers label || 0x00 ||
4
+ // SHA-384(key) || tbs, so an object verifies only under the label it was signed
5
+ // under; tbs is decoded only after the signature verifies, and its alg must name
6
+ // the profile's algorithm.
7
+ //
8
+ // The node id returned is derived from the VERIFIED key. A caller that wants
9
+ // "signed by P" compares it with the P it chose (a pinned provider), never with
10
+ // a node id the signed thing names about itself.
11
+ import { native } from "./binding.js";
12
+ import { bytesOut } from "./wire.js";
13
+ /** Verifies object (the CBOR bytes of a signed object that carries its key)
14
+ * under label and profile. Throws UnverifiedError (with its reason) for one that
15
+ * does not verify, and MaculaError for a bad argument. bytes says how bytes in
16
+ * fields come back: "hex" (the default) or "tagged". */
17
+ export function verifySignedObject(label, object, profile = "pq_hybrid", bytes) {
18
+ const r = JSON.parse(native.signedObjectVerify(label, object, profile));
19
+ return {
20
+ nodeId: r.node_id,
21
+ key: new Uint8Array(Buffer.from(r.key.$bytes, "base64")),
22
+ tbs: new Uint8Array(Buffer.from(r.tbs.$bytes, "base64")),
23
+ fields: bytesOut(r.fields, bytes),
24
+ };
25
+ }
26
+ //# sourceMappingURL=signed_object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signed_object.js","sourceRoot":"","sources":["../src/signed_object.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gEAAgE;AAChE,sEAAsE;AACtE,gFAAgF;AAChF,iFAAiF;AACjF,2BAA2B;AAC3B,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,iDAAiD;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAoC,MAAM,WAAW,CAAC;AAcvE;;;wDAGwD;AACxD,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,MAAkB,EAAE,OAAO,GAAY,WAAW,EAClG,KAAmB;IACnB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAErE,CAAC;IACF,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,OAAO;QACjB,GAAG,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxD,GAAG,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC;KAClC,CAAC;AACJ,CAAC"}
package/dist/wire.d.ts CHANGED
@@ -94,6 +94,13 @@ export declare function sealReport(r: {
94
94
  seal_key_id?: string;
95
95
  }): SealReport;
96
96
  export type ServedConfidential = Confidential | "off";
97
+ /** A signed object that did not verify (macula-go "unverified"): `reason` is
98
+ * "malformed" (its shape, its key's form for the profile, or its tbs),
99
+ * "signature_invalid" or "alg_mismatch". */
100
+ export declare class UnverifiedError extends Error {
101
+ readonly reason: string;
102
+ constructor(reason: string);
103
+ }
97
104
  /** The native layer's error, whose message is the ABI's error JSON, as the
98
105
  * class its kind names. */
99
106
  export declare function nativeError(e: unknown): Error;
package/dist/wire.js CHANGED
@@ -115,6 +115,17 @@ export function sealReport(r) {
115
115
  return r.seal_key_id === undefined ? { sealed: r.sealed, provider: r.provider }
116
116
  : { sealed: r.sealed, provider: r.provider, sealKeyId: r.seal_key_id };
117
117
  }
118
+ /** A signed object that did not verify (macula-go "unverified"): `reason` is
119
+ * "malformed" (its shape, its key's form for the profile, or its tbs),
120
+ * "signature_invalid" or "alg_mismatch". */
121
+ export class UnverifiedError extends Error {
122
+ reason;
123
+ constructor(reason) {
124
+ super(`signed object not verified: ${reason}`);
125
+ this.reason = reason;
126
+ this.name = "UnverifiedError";
127
+ }
128
+ }
118
129
  /** The native layer's error, whose message is the ABI's error JSON, as the
119
130
  * class its kind names. */
120
131
  export function nativeError(e) {
@@ -139,6 +150,8 @@ export function nativeError(e) {
139
150
  return new NotSharedError();
140
151
  case "unavailable":
141
152
  return new ContentUnavailableError(Array.isArray(error.failures) ? error.failures.map(String).join("; ") : message);
153
+ case "unverified":
154
+ return new UnverifiedError(String(error.reason ?? ""));
142
155
  case "confidentiality":
143
156
  return new ConfidentialityError(String(error.reason ?? ""), typeof error.named === "string" ? error.named : null, typeof error.found === "string" ? error.found : null, message);
144
157
  default:
package/dist/wire.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wire.js","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@macula-io/ts",
3
- "version": "0.26.0",
3
+ "version": "0.28.0",
4
4
  "description": "TypeScript SDK for the Macula mesh, over macula-go's shared C ABI",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
index cdc9bf5..ac63aa4 100644
Binary file