@motebit/crypto 0.8.0 → 1.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/LICENSE +198 -18
- package/NOTICE +19 -0
- package/README.md +11 -3
- package/dist/artifacts.d.ts +431 -32
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +694 -42
- package/dist/artifacts.js.map +1 -1
- package/dist/credential-anchor.d.ts +76 -2
- package/dist/credential-anchor.d.ts.map +1 -1
- package/dist/credential-anchor.js +109 -22
- package/dist/credential-anchor.js.map +1 -1
- package/dist/credentials.d.ts +1 -1
- package/dist/credentials.js +1 -1
- package/dist/hardware-attestation.d.ts +238 -0
- package/dist/hardware-attestation.d.ts.map +1 -0
- package/dist/hardware-attestation.js +345 -0
- package/dist/hardware-attestation.js.map +1 -0
- package/dist/index.d.ts +56 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3322 -288
- package/dist/index.js.map +1 -1
- package/dist/signing.d.ts +52 -17
- package/dist/signing.d.ts.map +1 -1
- package/dist/signing.js +67 -35
- package/dist/signing.js.map +1 -1
- package/dist/suite-dispatch.d.ts +103 -0
- package/dist/suite-dispatch.d.ts.map +1 -0
- package/dist/suite-dispatch.js +3233 -0
- package/dist/suite-dispatch.js.map +1 -0
- package/package.json +20 -5
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/signing.d.ts
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* Protocol signing primitives — Ed25519, encoding, canonical JSON, signed tokens.
|
|
3
3
|
*
|
|
4
4
|
* These are the cryptographic building blocks that any protocol participant
|
|
5
|
-
* needs to produce valid Motebit artifacts. Moved from BSL @motebit/
|
|
6
|
-
* to
|
|
5
|
+
* needs to produce valid Motebit artifacts. Moved from BSL @motebit/encryption
|
|
6
|
+
* to the permissive floor in @motebit/crypto (Apache-2.0) so the protocol's
|
|
7
|
+
* signing format is open.
|
|
7
8
|
*
|
|
8
9
|
* Zero monorepo dependencies — only @noble/ed25519 for cryptography.
|
|
9
10
|
*/
|
|
@@ -20,7 +21,20 @@ export interface SignedTokenPayload {
|
|
|
20
21
|
jti: string;
|
|
21
22
|
/** Audience claim — binds token to a specific endpoint/operation. Prevents cross-endpoint replay. */
|
|
22
23
|
aud: string;
|
|
24
|
+
/**
|
|
25
|
+
* Cryptosuite identifier. Always `"motebit-jwt-ed25519-v1"` for this
|
|
26
|
+
* token shape today. Present in the signed payload so verifiers
|
|
27
|
+
* dispatch primitive verification through `verifyBySuite` rather
|
|
28
|
+
* than assuming Ed25519. Missing or unknown values are rejected
|
|
29
|
+
* fail-closed — no legacy-no-suite path.
|
|
30
|
+
*/
|
|
31
|
+
suite: "motebit-jwt-ed25519-v1";
|
|
23
32
|
}
|
|
33
|
+
/** The one suite this token shape uses. Exported as a const so the
|
|
34
|
+
* signer emits exactly this value and the verifier checks for exactly
|
|
35
|
+
* this value — no string drift risk.
|
|
36
|
+
*/
|
|
37
|
+
export declare const SIGNED_TOKEN_SUITE: "motebit-jwt-ed25519-v1";
|
|
24
38
|
/**
|
|
25
39
|
* Deterministic JSON serialization with sorted keys (recursive).
|
|
26
40
|
* Produces identical output regardless of insertion order.
|
|
@@ -53,30 +67,51 @@ export declare function didKeyToPublicKey(did: string): Uint8Array;
|
|
|
53
67
|
export declare function publicKeyToDidKey(publicKey: Uint8Array): string;
|
|
54
68
|
export declare function hexPublicKeyToDidKey(hexPublicKey: string): string;
|
|
55
69
|
export declare function hash(data: Uint8Array): Promise<string>;
|
|
56
|
-
/** SHA-256 returning raw bytes (used by credential signing). */
|
|
57
|
-
export declare function sha256(data: Uint8Array): Promise<Uint8Array>;
|
|
58
|
-
export declare function generateKeypair(): Promise<KeyPair>;
|
|
59
70
|
/**
|
|
60
|
-
*
|
|
71
|
+
* Canonical-bytes hash. Convenience wrapper over `canonicalJson` + SHA-256
|
|
72
|
+
* for diagnostic and audit use: lets a producer and a verifier deterministically
|
|
73
|
+
* agree on (or disagree about) the exact bytes a signature was computed over,
|
|
74
|
+
* without re-implementing the canonicalization recipe at the call site.
|
|
61
75
|
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Verify an Ed25519 signature.
|
|
76
|
+
* Returns the hex SHA-256 of the UTF-8 bytes of `canonicalJson(obj)`. Stable
|
|
77
|
+
* across processes, machines, and Node versions — same input ⇒ same output,
|
|
78
|
+
* always. The only requirement on `obj` is that it be a JSON-serializable
|
|
79
|
+
* value (no functions, no symbols, no cycles).
|
|
68
80
|
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
81
|
+
* Primary use case: when a signed-artifact verification fails, both ends of
|
|
82
|
+
* the pipeline can log `canonicalSha256(body)` and the producer can confirm
|
|
83
|
+
* whether the bytes the verifier reproduced match the bytes the producer
|
|
84
|
+
* signed. A hash mismatch localizes the bug to the wire path; a hash match
|
|
85
|
+
* localizes it to the signature primitive (which is far less likely).
|
|
71
86
|
*/
|
|
72
|
-
export declare function
|
|
87
|
+
export declare function canonicalSha256(obj: unknown): Promise<string>;
|
|
88
|
+
/** SHA-256 returning raw bytes (used by credential signing). */
|
|
89
|
+
export declare function sha256(data: Uint8Array): Promise<Uint8Array>;
|
|
90
|
+
export { ed25519Sign, ed25519Verify, generateEd25519Keypair, getPublicKeyBySuite, signBySuite, verifyBySuite, } from "./suite-dispatch.js";
|
|
91
|
+
export declare function generateKeypair(): Promise<KeyPair>;
|
|
73
92
|
/**
|
|
74
93
|
* Create a signed token: base64url(payload) + "." + base64url(signature).
|
|
75
94
|
* Default expiry: 5 minutes from now.
|
|
95
|
+
*
|
|
96
|
+
* The payload includes a fixed `suite` field (`SIGNED_TOKEN_SUITE`) so
|
|
97
|
+
* the verifier can dispatch primitive verification explicitly rather
|
|
98
|
+
* than implicitly assuming Ed25519. Callers MUST supply every other
|
|
99
|
+
* required payload field; this function does not fill defaults for
|
|
100
|
+
* `mid` / `did` / `iat` / `exp` / `jti` / `aud`.
|
|
76
101
|
*/
|
|
77
|
-
export declare function createSignedToken(payload: SignedTokenPayload, privateKey: Uint8Array): Promise<string>;
|
|
102
|
+
export declare function createSignedToken(payload: Omit<SignedTokenPayload, "suite">, privateKey: Uint8Array): Promise<string>;
|
|
78
103
|
/**
|
|
79
|
-
* Verify a signed token. Returns the parsed payload if valid and not
|
|
104
|
+
* Verify a signed token. Returns the parsed payload if valid and not
|
|
105
|
+
* expired, null otherwise.
|
|
106
|
+
*
|
|
107
|
+
* Rejects fail-closed on:
|
|
108
|
+
* - malformed token string (no dot separator, invalid base64url),
|
|
109
|
+
* - missing `suite` field,
|
|
110
|
+
* - `suite` value other than `SIGNED_TOKEN_SUITE`,
|
|
111
|
+
* - signature mismatch,
|
|
112
|
+
* - expired token,
|
|
113
|
+
* - missing `jti` (replay defense),
|
|
114
|
+
* - missing `aud` (cross-endpoint replay defense).
|
|
80
115
|
*/
|
|
81
116
|
export declare function verifySignedToken(token: string, publicKey: Uint8Array): Promise<SignedTokenPayload | null>;
|
|
82
117
|
/**
|
package/dist/signing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../src/signing.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../src/signing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,wFAAwF;IACxF,GAAG,EAAE,MAAM,CAAC;IACZ,qGAAqG;IACrG,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;OAMG;IACH,KAAK,EAAE,wBAAwB,CAAC;CACjC;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAG,wBAAiC,CAAC;AAIpE;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAclD;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAIpD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAMlD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAMpD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAQrD;AAMD,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAczD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAoBvD;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAezD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAS/D;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEjE;AAID,wBAAsB,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAM5D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE;AAED,gEAAgE;AAChE,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAGlE;AAaD,OAAO,EACL,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAExD;AAID;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAC1C,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAoCpC;AAID;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAQxD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAehF"}
|
package/dist/signing.js
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* Protocol signing primitives — Ed25519, encoding, canonical JSON, signed tokens.
|
|
3
3
|
*
|
|
4
4
|
* These are the cryptographic building blocks that any protocol participant
|
|
5
|
-
* needs to produce valid Motebit artifacts. Moved from BSL @motebit/
|
|
6
|
-
* to
|
|
5
|
+
* needs to produce valid Motebit artifacts. Moved from BSL @motebit/encryption
|
|
6
|
+
* to the permissive floor in @motebit/crypto (Apache-2.0) so the protocol's
|
|
7
|
+
* signing format is open.
|
|
7
8
|
*
|
|
8
9
|
* Zero monorepo dependencies — only @noble/ed25519 for cryptography.
|
|
9
10
|
*/
|
|
@@ -13,6 +14,11 @@ import { sha512 } from "@noble/hashes/sha512";
|
|
|
13
14
|
if (!ed.hashes.sha512) {
|
|
14
15
|
ed.hashes.sha512 = (msg) => sha512(msg);
|
|
15
16
|
}
|
|
17
|
+
/** The one suite this token shape uses. Exported as a const so the
|
|
18
|
+
* signer emits exactly this value and the verifier checks for exactly
|
|
19
|
+
* this value — no string drift risk.
|
|
20
|
+
*/
|
|
21
|
+
export const SIGNED_TOKEN_SUITE = "motebit-jwt-ed25519-v1";
|
|
16
22
|
// === Canonical JSON (JCS/RFC 8785) ===
|
|
17
23
|
/**
|
|
18
24
|
* Deterministic JSON serialization with sorted keys (recursive).
|
|
@@ -158,53 +164,76 @@ export async function hash(data) {
|
|
|
158
164
|
.map((b) => b.toString(16).padStart(2, "0"))
|
|
159
165
|
.join("");
|
|
160
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Canonical-bytes hash. Convenience wrapper over `canonicalJson` + SHA-256
|
|
169
|
+
* for diagnostic and audit use: lets a producer and a verifier deterministically
|
|
170
|
+
* agree on (or disagree about) the exact bytes a signature was computed over,
|
|
171
|
+
* without re-implementing the canonicalization recipe at the call site.
|
|
172
|
+
*
|
|
173
|
+
* Returns the hex SHA-256 of the UTF-8 bytes of `canonicalJson(obj)`. Stable
|
|
174
|
+
* across processes, machines, and Node versions — same input ⇒ same output,
|
|
175
|
+
* always. The only requirement on `obj` is that it be a JSON-serializable
|
|
176
|
+
* value (no functions, no symbols, no cycles).
|
|
177
|
+
*
|
|
178
|
+
* Primary use case: when a signed-artifact verification fails, both ends of
|
|
179
|
+
* the pipeline can log `canonicalSha256(body)` and the producer can confirm
|
|
180
|
+
* whether the bytes the verifier reproduced match the bytes the producer
|
|
181
|
+
* signed. A hash mismatch localizes the bug to the wire path; a hash match
|
|
182
|
+
* localizes it to the signature primitive (which is far less likely).
|
|
183
|
+
*/
|
|
184
|
+
export async function canonicalSha256(obj) {
|
|
185
|
+
return hash(new TextEncoder().encode(canonicalJson(obj)));
|
|
186
|
+
}
|
|
161
187
|
/** SHA-256 returning raw bytes (used by credential signing). */
|
|
162
188
|
export async function sha256(data) {
|
|
163
189
|
const buf = await crypto.subtle.digest("SHA-256", data);
|
|
164
190
|
return new Uint8Array(buf);
|
|
165
191
|
}
|
|
166
192
|
// === Ed25519 Signing ===
|
|
193
|
+
//
|
|
194
|
+
// The primitive sign/verify functions and keypair generation now live
|
|
195
|
+
// in `./suite-dispatch.ts`, which is the one file in @motebit/crypto
|
|
196
|
+
// permitted to call `ed.signAsync` / `ed.verifyAsync` directly (the
|
|
197
|
+
// `check-suite-dispatch` drift gate enforces that rule). These
|
|
198
|
+
// re-exports preserve the historical call sites that import from
|
|
199
|
+
// signing.ts directly (especially tests and @motebit/encryption).
|
|
200
|
+
// New artifact-level verifiers should prefer `verifyBySuite`.
|
|
201
|
+
import { generateEd25519Keypair, signBySuite, verifyBySuite } from "./suite-dispatch.js";
|
|
202
|
+
export { ed25519Sign, ed25519Verify, generateEd25519Keypair, getPublicKeyBySuite, signBySuite, verifyBySuite, } from "./suite-dispatch.js";
|
|
167
203
|
export async function generateKeypair() {
|
|
168
|
-
|
|
169
|
-
return { publicKey, privateKey: secretKey };
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Sign a message with an Ed25519 private key.
|
|
173
|
-
*
|
|
174
|
-
* Named `ed25519Sign` to avoid conflict with the artifact-level `verify()`
|
|
175
|
-
* function exported from this package. Crypto re-exports as `sign`.
|
|
176
|
-
*/
|
|
177
|
-
export async function ed25519Sign(message, privateKey) {
|
|
178
|
-
return ed.signAsync(message, privateKey);
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Verify an Ed25519 signature.
|
|
182
|
-
*
|
|
183
|
-
* Named `ed25519Verify` to avoid conflict with the artifact-level `verify()`
|
|
184
|
-
* function exported from this package. Crypto re-exports as `verify`.
|
|
185
|
-
*/
|
|
186
|
-
export async function ed25519Verify(signature, message, publicKey) {
|
|
187
|
-
try {
|
|
188
|
-
return await ed.verifyAsync(signature, message, publicKey);
|
|
189
|
-
}
|
|
190
|
-
catch {
|
|
191
|
-
return false;
|
|
192
|
-
}
|
|
204
|
+
return generateEd25519Keypair();
|
|
193
205
|
}
|
|
194
206
|
// === Signed Tokens ===
|
|
195
207
|
/**
|
|
196
208
|
* Create a signed token: base64url(payload) + "." + base64url(signature).
|
|
197
209
|
* Default expiry: 5 minutes from now.
|
|
210
|
+
*
|
|
211
|
+
* The payload includes a fixed `suite` field (`SIGNED_TOKEN_SUITE`) so
|
|
212
|
+
* the verifier can dispatch primitive verification explicitly rather
|
|
213
|
+
* than implicitly assuming Ed25519. Callers MUST supply every other
|
|
214
|
+
* required payload field; this function does not fill defaults for
|
|
215
|
+
* `mid` / `did` / `iat` / `exp` / `jti` / `aud`.
|
|
198
216
|
*/
|
|
199
217
|
export async function createSignedToken(payload, privateKey) {
|
|
200
|
-
const
|
|
218
|
+
const withSuite = { ...payload, suite: SIGNED_TOKEN_SUITE };
|
|
219
|
+
const payloadBytes = new TextEncoder().encode(JSON.stringify(withSuite));
|
|
201
220
|
const payloadB64 = toBase64Url(payloadBytes);
|
|
202
|
-
const signature = await
|
|
221
|
+
const signature = await signBySuite(SIGNED_TOKEN_SUITE, payloadBytes, privateKey);
|
|
203
222
|
const sigB64 = toBase64Url(signature);
|
|
204
223
|
return `${payloadB64}.${sigB64}`;
|
|
205
224
|
}
|
|
206
225
|
/**
|
|
207
|
-
* Verify a signed token. Returns the parsed payload if valid and not
|
|
226
|
+
* Verify a signed token. Returns the parsed payload if valid and not
|
|
227
|
+
* expired, null otherwise.
|
|
228
|
+
*
|
|
229
|
+
* Rejects fail-closed on:
|
|
230
|
+
* - malformed token string (no dot separator, invalid base64url),
|
|
231
|
+
* - missing `suite` field,
|
|
232
|
+
* - `suite` value other than `SIGNED_TOKEN_SUITE`,
|
|
233
|
+
* - signature mismatch,
|
|
234
|
+
* - expired token,
|
|
235
|
+
* - missing `jti` (replay defense),
|
|
236
|
+
* - missing `aud` (cross-endpoint replay defense).
|
|
208
237
|
*/
|
|
209
238
|
export async function verifySignedToken(token, publicKey) {
|
|
210
239
|
const dotIdx = token.indexOf(".");
|
|
@@ -221,9 +250,8 @@ export async function verifySignedToken(token, publicKey) {
|
|
|
221
250
|
catch {
|
|
222
251
|
return null;
|
|
223
252
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
return null;
|
|
253
|
+
// Parse before verify so the suite value routes the primitive call.
|
|
254
|
+
// Malformed JSON → reject.
|
|
227
255
|
let payload;
|
|
228
256
|
try {
|
|
229
257
|
payload = JSON.parse(new TextDecoder().decode(payloadBytes));
|
|
@@ -231,12 +259,16 @@ export async function verifySignedToken(token, publicKey) {
|
|
|
231
259
|
catch {
|
|
232
260
|
return null;
|
|
233
261
|
}
|
|
262
|
+
// Missing or unknown suite → reject fail-closed. No legacy-no-suite path.
|
|
263
|
+
if (payload.suite !== SIGNED_TOKEN_SUITE)
|
|
264
|
+
return null;
|
|
265
|
+
const valid = await verifyBySuite(payload.suite, payloadBytes, signature, publicKey);
|
|
266
|
+
if (!valid)
|
|
267
|
+
return null;
|
|
234
268
|
if (payload.exp <= Date.now())
|
|
235
269
|
return null;
|
|
236
|
-
// Reject tokens without a unique nonce (jti) — prevents replay attacks
|
|
237
270
|
if (!payload.jti)
|
|
238
271
|
return null;
|
|
239
|
-
// Reject tokens without audience binding — prevents cross-endpoint replay
|
|
240
272
|
if (!payload.aud)
|
|
241
273
|
return null;
|
|
242
274
|
return payload;
|
package/dist/signing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signing.js","sourceRoot":"","sources":["../src/signing.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"signing.js","sourceRoot":"","sources":["../src/signing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,sDAAsD;AACtD,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACtB,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAe,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AA4BD;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAiC,CAAC;AAEpE,wCAAwC;AAExC;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAClE,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACtE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAA8B,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,GAAG,GAAI,GAA+B,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,GAAG,KAAK,SAAS;YAAE,SAAS;QAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACvC,CAAC;AAED,2BAA2B;AAE3B,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAgB;IAC1C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oBAAoB;AAEpB,MAAM,eAAe,GAAG,4DAA4D,CAAC;AAErF,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,CAAC;IAC3D,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,OAAO,KAAK,GAAG,EAAE,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QACtC,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;QACpB,MAAM,GAAG,eAAe,CAAC,SAAS,CAAE,GAAG,MAAM,CAAC;IAChD,CAAC;IACD,OAAO,eAAe,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC;QAAE,KAAK,EAAE,CAAC;IACxE,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;QAC7C,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,OAAO,KAAK,GAAG,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;QACnC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAChD,KAAK,KAAK,EAAE,CAAC;IACf,CAAC;IACD,MAAM,SAAS,GACb,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,iDAAiD;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,+DAA+D,OAAO,CAAC,MAAM,EAAE,CAChF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAqB;IACrD,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACpC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC3B,OAAO,YAAY,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,YAAoB;IACvD,OAAO,iBAAiB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,kBAAkB;AAElB,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAgB;IACzC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAoB,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAY;IAChD,OAAO,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,gEAAgE;AAChE,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAgB;IAC3C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAoB,CAAC,CAAC;IACxE,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,0BAA0B;AAC1B,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,oEAAoE;AACpE,+DAA+D;AAC/D,iEAAiE;AACjE,kEAAkE;AAClE,8DAA8D;AAC9D,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EACL,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,OAAO,sBAAsB,EAAE,CAAC;AAClC,CAAC;AAED,wBAAwB;AAExB;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA0C,EAC1C,UAAsB;IAEtB,MAAM,SAAS,GAAuB,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAChF,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,kBAAkB,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACtC,OAAO,GAAG,UAAU,IAAI,MAAM,EAAE,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,SAAqB;IAErB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEvC,IAAI,YAAwB,CAAC;IAC7B,IAAI,SAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACzC,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oEAAoE;IACpE,2BAA2B;IAC3B,IAAI,OAA2B,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAuB,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IAC1E,IAAI,OAAO,CAAC,KAAK,KAAK,kBAAkB;QAAE,OAAO,IAAI,CAAC;IAEtD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACrF,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAE9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mDAAmD;AAEnD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,OAAO,IAAI,GAAG,CACZ,KAAK;SACF,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,UAAkB;IACrE,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAExC,kCAAkC;IAClC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjC,sEAAsE;IACtE,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAEjC,iDAAiD;IACjD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IACrC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cryptosuite dispatch — the single entry point for signature primitive
|
|
3
|
+
* verification in @motebit/crypto.
|
|
4
|
+
*
|
|
5
|
+
* Every `verify*` function that checks a signed motebit artifact MUST
|
|
6
|
+
* route through `verifyBySuite`. Direct calls to `ed.verifyAsync`,
|
|
7
|
+
* `ed.signAsync`, or any other primitive outside this file are a
|
|
8
|
+
* drift-gate violation — see `scripts/check-suite-dispatch.ts`.
|
|
9
|
+
*
|
|
10
|
+
* Rationale: the suite value on a wire artifact names a complete
|
|
11
|
+
* verification recipe (algorithm + canonicalization + encoding). The
|
|
12
|
+
* dispatcher's job is to map `suite` → primitive. Encoding of the
|
|
13
|
+
* signature and public key stays at the artifact layer (every artifact
|
|
14
|
+
* already has its own encoding convention — see `spec/<artifact>-v1.md`
|
|
15
|
+
* `#### Wire format (foundation law)` subsections); the dispatcher
|
|
16
|
+
* receives already-decoded bytes and returns already-produced bytes.
|
|
17
|
+
* This keeps the Ed25519 switch arm honest: it does one thing, and the
|
|
18
|
+
* PQ switch arms that follow in 2026+ will do the same one thing for
|
|
19
|
+
* ML-DSA / SLH-DSA.
|
|
20
|
+
*
|
|
21
|
+
* Fail-closed throughout:
|
|
22
|
+
* - unknown `SuiteId` → `verifyBySuite` returns `false`, `signBySuite` throws.
|
|
23
|
+
* - unsupported algorithm in the switch (PQ placeholder) → throws with
|
|
24
|
+
* a clear message so the call site doesn't silently succeed.
|
|
25
|
+
* - primitive-level exception → `verifyBySuite` returns `false`.
|
|
26
|
+
*
|
|
27
|
+
* No legacy-no-suite path. A caller that reaches this function without
|
|
28
|
+
* a valid `SuiteId` has already lost; the function enforces that
|
|
29
|
+
* contract at the boundary.
|
|
30
|
+
*/
|
|
31
|
+
import type { SuiteId } from "@motebit/protocol";
|
|
32
|
+
/**
|
|
33
|
+
* Verify an already-decoded signature over `canonicalBytes` using the
|
|
34
|
+
* primitive named by `suite`. The caller is responsible for:
|
|
35
|
+
* 1. canonicalization (the bytes are already the signing input per
|
|
36
|
+
* the suite's canonicalization rule);
|
|
37
|
+
* 2. signature and public-key decoding (hex → Uint8Array, base64url
|
|
38
|
+
* → Uint8Array, multibase → Uint8Array per the suite's
|
|
39
|
+
* `signatureEncoding` / `publicKeyEncoding`).
|
|
40
|
+
*
|
|
41
|
+
* Returns `false` on unknown or unsupported suite, on primitive-level
|
|
42
|
+
* exception, and on signature mismatch. Never throws in the Ed25519
|
|
43
|
+
* path. Throws only on PQ suites (placeholder until implementation
|
|
44
|
+
* lands), because a misconfigured dispatcher there would silently
|
|
45
|
+
* pass every verification.
|
|
46
|
+
*/
|
|
47
|
+
export declare function verifyBySuite(suite: SuiteId, canonicalBytes: Uint8Array, signatureBytes: Uint8Array, publicKeyBytes: Uint8Array): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Produce a signature over `canonicalBytes` using the primitive named
|
|
50
|
+
* by `suite`. Mirrors `verifyBySuite`: caller provides already-
|
|
51
|
+
* canonicalized bytes; caller encodes the returned `Uint8Array` per
|
|
52
|
+
* the suite's `signatureEncoding` at the artifact boundary.
|
|
53
|
+
*
|
|
54
|
+
* Throws on unknown or unsupported suite (fail-closed). Signers that
|
|
55
|
+
* catch and swallow this exception would ship unsigned artifacts,
|
|
56
|
+
* which is a worse failure mode than a loud throw.
|
|
57
|
+
*/
|
|
58
|
+
export declare function signBySuite(suite: SuiteId, canonicalBytes: Uint8Array, privateKeyBytes: Uint8Array): Promise<Uint8Array>;
|
|
59
|
+
/**
|
|
60
|
+
* Lowest-level Ed25519 primitives. These are the functions callers
|
|
61
|
+
* should use when they genuinely need the primitive — for example,
|
|
62
|
+
* generating a keypair at identity bootstrap, or computing a
|
|
63
|
+
* succession-chain signature where the caller has already dispatched
|
|
64
|
+
* by suite. Exported from this file so the drift gate's scan rule is
|
|
65
|
+
* simple: "`ed.*` lives only in `suite-dispatch.ts`."
|
|
66
|
+
*/
|
|
67
|
+
export declare function ed25519Sign(message: Uint8Array, privateKey: Uint8Array): Promise<Uint8Array>;
|
|
68
|
+
export declare function ed25519Verify(signature: Uint8Array, message: Uint8Array, publicKey: Uint8Array): Promise<boolean>;
|
|
69
|
+
export declare function generateEd25519Keypair(): Promise<{
|
|
70
|
+
publicKey: Uint8Array;
|
|
71
|
+
privateKey: Uint8Array;
|
|
72
|
+
}>;
|
|
73
|
+
/**
|
|
74
|
+
* Derive the matching public key from a private key, dispatched by suite.
|
|
75
|
+
*
|
|
76
|
+
* For Ed25519 suites this is deterministic seed expansion (hash the seed,
|
|
77
|
+
* derive the curve point). Callers that have a private key in hand and
|
|
78
|
+
* need the public key — sovereign delegation paths, identity bootstrap
|
|
79
|
+
* after a seed import, recovery flows — go through here so the noble
|
|
80
|
+
* call doesn't escape the dispatcher.
|
|
81
|
+
*
|
|
82
|
+
* Throws on unknown or unsupported suite (fail-closed). PQ arms will
|
|
83
|
+
* land alongside their `verifyBySuite` / `signBySuite` counterparts.
|
|
84
|
+
*/
|
|
85
|
+
export declare function getPublicKeyBySuite(privateKey: Uint8Array, suite: SuiteId): Promise<Uint8Array>;
|
|
86
|
+
/**
|
|
87
|
+
* Verify a P-256 ECDSA-SHA256 signature.
|
|
88
|
+
*
|
|
89
|
+
* - `publicKeyCompressedHex` — P-256 public key in compressed-point
|
|
90
|
+
* hex encoding (33 bytes, `02`/`03` prefix). Uncompressed keys
|
|
91
|
+
* (65 bytes, `04` prefix) also accepted — noble handles both.
|
|
92
|
+
* - `messageBytes` — the bytes that were signed. noble internally
|
|
93
|
+
* SHA-256 hashes before verification, so callers pass the
|
|
94
|
+
* un-pre-hashed payload.
|
|
95
|
+
* - `signatureDerBytes` — DER-encoded ECDSA signature as emitted by
|
|
96
|
+
* Apple SE / Security.framework.
|
|
97
|
+
*
|
|
98
|
+
* Returns `false` on any failure (bad key, bad DER, bad signature,
|
|
99
|
+
* mismatch). Never throws — matches the `verifyBySuite` contract so
|
|
100
|
+
* callers don't need a try/catch.
|
|
101
|
+
*/
|
|
102
|
+
export declare function verifyP256EcdsaSha256(publicKeyCompressedHex: string, messageBytes: Uint8Array, signatureDerBytes: Uint8Array): boolean;
|
|
103
|
+
//# sourceMappingURL=suite-dispatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suite-dispatch.d.ts","sourceRoot":"","sources":["../src/suite-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAkBH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AASjD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,UAAU,EAC1B,cAAc,EAAE,UAAU,EAC1B,cAAc,EAAE,UAAU,GACzB,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,UAAU,EAC1B,eAAe,EAAE,UAAU,GAC1B,OAAO,CAAC,UAAU,CAAC,CASrB;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,UAAU,CAAC,CAErB;AAED,wBAAsB,aAAa,CACjC,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC;IACtD,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC,CAGD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,UAAU,CAAC,CASrB;AAeD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,sBAAsB,EAAE,MAAM,EAC9B,YAAY,EAAE,UAAU,EACxB,iBAAiB,EAAE,UAAU,GAC5B,OAAO,CAQT"}
|