raz-encrypt 2.4.0 → 2.6.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 +15 -2
- package/dist/core.d.ts +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/crypto/hybrid.d.ts +11 -1
- package/dist/crypto/hybrid.js +188 -64
- package/dist/crypto/hybrid.js.map +1 -1
- package/dist/crypto/nodeHybrid.d.ts +1 -1
- package/dist/crypto/nodeHybrid.js +8 -1
- package/dist/crypto/nodeHybrid.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/trust.d.ts +15 -0
- package/dist/trust.js +91 -3
- package/dist/trust.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -105,7 +105,9 @@ const result = await verify(bob, document, certificate);
|
|
|
105
105
|
// => { valid: true }
|
|
106
106
|
```
|
|
107
107
|
|
|
108
|
-
If the document is changed even slightly, or the certificate is corrupted, or the signer was never trusted, `verify()` returns `{ valid: false, reason: "..." }` instead of throwing — so a caller always gets a clear, structured answer.
|
|
108
|
+
If the document is changed even slightly, or the certificate is corrupted, or the signer was never trusted, `verify()` returns `{ valid: false, reason: "..." }` instead of throwing — so a caller always gets a clear, structured answer. This includes a hostile or merely malformed `document`/card from a peer (e.g. containing `NaN`, `Infinity`, or a non-plain nested value): `verify`, `trustSignedCard`, `applyRotation`, and `applyRevocationNotice` return `reason: "malformed-document"`, and `decryptFrom`/`encryptFor` throw `DecryptionError`/`EncryptionError`, rather than crashing with a bare `TypeError`. The session handshake (`establishSessionInitiator`/`establishSessionResponder`) gets the same treatment: a malformed or hostile counterpart card, or a right-format-but-wrong-length field in the peer's handshake message, throws the already-documented `MalformedHandshakeMessageError` instead of a bare `TypeError`/`RangeError`.
|
|
109
|
+
|
|
110
|
+
**The one place a raw `TypeError` is still correct and intentional:** passing data **you** can't encode as JSON into `sign`'s `document` or `encryptFor`'s payload (your own `NaN`, `Infinity`, a `Map`, a circular reference, ...). That's a mistake in your own code, not hostile input from a peer, so it throws loudly instead of being downgraded into a generic failure.
|
|
109
111
|
|
|
110
112
|
### Private data between the two parties
|
|
111
113
|
|
|
@@ -118,6 +120,17 @@ const box = await encryptFor(alice, bobCard, {
|
|
|
118
120
|
const opened = await decryptFrom(bob, aliceCard, box);
|
|
119
121
|
```
|
|
120
122
|
|
|
123
|
+
> **Replay protection is opt-in.** `decryptFrom` will happily decrypt the exact same `box` a second time unless you tell it not to, by passing an `isReplay` hook:
|
|
124
|
+
>
|
|
125
|
+
> ```ts
|
|
126
|
+
> const seenBoxIds = new Set<string>(); // illustrative only — not durable across restarts; use a real store with expiry in production
|
|
127
|
+
> const opened = await decryptFrom(bob, aliceCard, box, {
|
|
128
|
+
> isReplay: ({ id }) => seenBoxIds.has(id) || (seenBoxIds.add(id), false),
|
|
129
|
+
> });
|
|
130
|
+
> ```
|
|
131
|
+
>
|
|
132
|
+
> See "Threat model and non-goals" below for the full caveat.
|
|
133
|
+
|
|
121
134
|
## Two important things people ask when actually wiring this up
|
|
122
135
|
|
|
123
136
|
**1. `sign`/`verify` and `encryptFor`/`decryptFrom` are two separate, independent tools — not a pipeline.**
|
|
@@ -274,7 +287,7 @@ await applyRotation(bob, statement, { confirmNewFingerprint: fingerprintTheyConf
|
|
|
274
287
|
| `getTrustStoreAnchor(identity)` / `verifyTrustStoreAnchor(identity, anchor)` | `{ seq, mac }` of the trust store, to keep somewhere an attacker on this machine can't write (second device, remote). Verifying throws `TrustStoreIntegrityError` if the local store is older than the anchor. See ADR 0030. |
|
|
275
288
|
| `migrateAuditLogToEncrypted(identity)` | One-time, explicit opt-in that encrypts every audit-log entry's content (not just authenticates it); every `appendLogEntry` call afterwards encrypts only the new entry. No-op if already encrypted. |
|
|
276
289
|
| `exportSignedCard(identity, options?)` / `trustSignedCard(identity, card, certificate)` | A self-signed, optionally-expiring version of your card (`{ expiresAt? }`), and verifying/trusting one you received. Enforces a cryptoperiod a bare card has no way to carry. See ADR 0023. |
|
|
277
|
-
| `beginRotation(oldIdentity, newCard)` / `completeRotation(newIdentity, draft)` / `applyRotation(identity, statement, { confirmNewFingerprint })` | A dual-signed statement handing trust from an old card to a new one. Signatures alone do not protect against a stolen old key, so you must pass the new card's fingerprint as confirmed out of band; a mismatch returns `fingerprint-mismatch` and a missing value throws. No-ops for a card you never trusted. See ADR 0029. |
|
|
290
|
+
| `beginRotation(oldIdentity, newCard)` / `completeRotation(newIdentity, draft)` / `applyRotation(identity, statement, { confirmNewFingerprint })` | A dual-signed statement handing trust from an old card to a new one. Signatures alone do not protect against a stolen old key, so you must pass the new card's fingerprint as confirmed out of band; a mismatch returns `fingerprint-mismatch` and a missing value throws. No-ops for a card you never trusted. Refuses with `new-card-was-previously-revoked`, changing nothing, if the new card's fingerprint already carries revoked history — whether from an earlier, unrelated for-cause revocation or from rotating away from it before; resuming trust in it is your decision to make explicitly. See ADR 0029. |
|
|
278
291
|
| `createRevocationNotice(identity, options?)` / `applyRevocationNotice(identity, notice)` | A self-signed, portable revocation notice any peer can verify independently — generate one right after `createIdentity` and store it separately for recovery if the identity later becomes inaccessible. No-ops for a card you never trusted. |
|
|
279
292
|
| `readLog(identity)` | Reads the local, append-only audit log of everything this identity has signed/verified/encrypted/decrypted. |
|
|
280
293
|
| `verifyLogIntegrity(identity)` | Walks the log's keyed (HMAC) chain and reports `{ intact: true }` or `{ intact: false, brokenAtIndex, reason? }` — detects an edited or deleted entry, and removal of the newest entries (`reason: "truncated"`), including by someone with file access but not your keys. Cannot detect both files being rolled back together, or deleted outright; keep an off-box copy of `log.head.json` if that matters. |
|
package/dist/core.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* included, fs-backed versions of the same logic — this module is the
|
|
11
11
|
* un-wired core they're built from, not a separate implementation.
|
|
12
12
|
*/
|
|
13
|
-
export { createResponderHandshakeCore as createResponderHandshake, decryptFromCore as decryptFrom, DecryptionError, encryptForCore as encryptFor, establishSessionInitiatorCore as establishSessionInitiator, establishSessionResponderCore as establishSessionResponder, HandshakeVerificationError, makeKeyConfirmation, verifyKeyConfirmation, MalformedHandshakeMessageError, ReplayedBoxError, signCore as sign, UntrustedPartyError, verifyCore as verify, } from "./crypto/hybrid.js";
|
|
13
|
+
export { createResponderHandshakeCore as createResponderHandshake, decryptFromCore as decryptFrom, DecryptionError, encryptForCore as encryptFor, EncryptionError, establishSessionInitiatorCore as establishSessionInitiator, establishSessionResponderCore as establishSessionResponder, HandshakeVerificationError, makeKeyConfirmation, verifyKeyConfirmation, MalformedHandshakeMessageError, ReplayedBoxError, signCore as sign, UntrustedPartyError, verifyCore as verify, } from "./crypto/hybrid.js";
|
|
14
14
|
export type { BoxReplayInfo, Certificate, DecryptDeps, EncryptedBox, HandshakeRole, HandshakeSignature, HandshakeTranscript, InitiatorHandshakeMessage, InitiatorSessionResult, LogDeps, ResponderHandshakeInit, ResponderHandshakeMessage, ResponderHandshakeSecrets, ResponderSessionResult, SessionKeys, SignOptions, TrustDeps, TrustStatus, VerifyDeps, VerifyFailureReason, VerifyResult, } from "./crypto/hybrid.js";
|
|
15
15
|
export { generateClassicalKeypair, classicalSharedSecret, classicalSign, classicalVerify } from "./crypto/classical.js";
|
|
16
16
|
export type { ClassicalKeypair } from "./crypto/classical.js";
|
package/dist/core.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* included, fs-backed versions of the same logic — this module is the
|
|
11
11
|
* un-wired core they're built from, not a separate implementation.
|
|
12
12
|
*/
|
|
13
|
-
export { createResponderHandshakeCore as createResponderHandshake, decryptFromCore as decryptFrom, DecryptionError, encryptForCore as encryptFor, establishSessionInitiatorCore as establishSessionInitiator, establishSessionResponderCore as establishSessionResponder, HandshakeVerificationError, makeKeyConfirmation, verifyKeyConfirmation, MalformedHandshakeMessageError, ReplayedBoxError, signCore as sign, UntrustedPartyError, verifyCore as verify, } from "./crypto/hybrid.js";
|
|
13
|
+
export { createResponderHandshakeCore as createResponderHandshake, decryptFromCore as decryptFrom, DecryptionError, encryptForCore as encryptFor, EncryptionError, establishSessionInitiatorCore as establishSessionInitiator, establishSessionResponderCore as establishSessionResponder, HandshakeVerificationError, makeKeyConfirmation, verifyKeyConfirmation, MalformedHandshakeMessageError, ReplayedBoxError, signCore as sign, UntrustedPartyError, verifyCore as verify, } from "./crypto/hybrid.js";
|
|
14
14
|
export { generateClassicalKeypair, classicalSharedSecret, classicalSign, classicalVerify } from "./crypto/classical.js";
|
|
15
15
|
export { generatePqcKemKeypair, generatePqcSignKeypair, pqcDecapsulate, pqcEncapsulate, pqcSign, pqcVerify, } from "./crypto/pqc.js";
|
|
16
16
|
export { canonicalize, hashDocument } from "./canonicalJson.js";
|
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EACL,4BAA4B,IAAI,wBAAwB,EACxD,eAAe,IAAI,WAAW,EAC9B,eAAe,EACf,cAAc,IAAI,UAAU,EAC5B,6BAA6B,IAAI,yBAAyB,EAC1D,6BAA6B,IAAI,yBAAyB,EAC1D,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,8BAA8B,EAC9B,gBAAgB,EAChB,QAAQ,IAAI,IAAI,EAChB,mBAAmB,EACnB,UAAU,IAAI,MAAM,GACrB,MAAM,oBAAoB,CAAC;AAyB5B,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxH,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,OAAO,EACP,SAAS,GACV,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE3F,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC9G,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEzF,OAAO,EACL,iCAAiC,EACjC,iCAAiC,EACjC,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,eAAe,EACf,YAAY,GACb,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EACL,4BAA4B,IAAI,wBAAwB,EACxD,eAAe,IAAI,WAAW,EAC9B,eAAe,EACf,cAAc,IAAI,UAAU,EAC5B,eAAe,EACf,6BAA6B,IAAI,yBAAyB,EAC1D,6BAA6B,IAAI,yBAAyB,EAC1D,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,8BAA8B,EAC9B,gBAAgB,EAChB,QAAQ,IAAI,IAAI,EAChB,mBAAmB,EACnB,UAAU,IAAI,MAAM,GACrB,MAAM,oBAAoB,CAAC;AAyB5B,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxH,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,OAAO,EACP,SAAS,GACV,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE3F,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC9G,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEzF,OAAO,EACL,iCAAiC,EACjC,iCAAiC,EACjC,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,eAAe,EACf,YAAY,GACb,MAAM,qBAAqB,CAAC"}
|
package/dist/crypto/hybrid.d.ts
CHANGED
|
@@ -11,6 +11,16 @@ export declare class UntrustedPartyError extends Error {
|
|
|
11
11
|
export declare class DecryptionError extends Error {
|
|
12
12
|
constructor(message: string);
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Thrown by encryptForCore when `counterpart` cannot be fingerprinted —
|
|
16
|
+
* mirrors DecryptionError's role on the decrypt side (issue #85). NOT
|
|
17
|
+
* thrown for unencodable `data` (the caller's own plaintext payload): that
|
|
18
|
+
* stays a raw TypeError, since it is a programmer error, not a hostile or
|
|
19
|
+
* malformed peer card.
|
|
20
|
+
*/
|
|
21
|
+
export declare class EncryptionError extends Error {
|
|
22
|
+
constructor(message: string);
|
|
23
|
+
}
|
|
14
24
|
/**
|
|
15
25
|
* True only for the exact canonical format `new Date().toISOString()` itself
|
|
16
26
|
* produces — the one format this codebase ever actually writes. A round-trip
|
|
@@ -50,7 +60,7 @@ export interface SignOptions {
|
|
|
50
60
|
/** If set, verify() rejects this certificate as "expired" once this ISO timestamp has passed. */
|
|
51
61
|
expiresAt?: string;
|
|
52
62
|
}
|
|
53
|
-
export type VerifyFailureReason = "untrusted-signer" | "revoked-signer" | "hash-mismatch" | "classical-signature-mismatch" | "pqc-signature-mismatch" | "expired" | "malformed-certificate" | "fingerprint-mismatch";
|
|
63
|
+
export type VerifyFailureReason = "untrusted-signer" | "revoked-signer" | "hash-mismatch" | "classical-signature-mismatch" | "pqc-signature-mismatch" | "expired" | "malformed-certificate" | "malformed-document" | "fingerprint-mismatch" | "new-card-was-previously-revoked";
|
|
54
64
|
export type VerifyResult = {
|
|
55
65
|
valid: true;
|
|
56
66
|
} | {
|
package/dist/crypto/hybrid.js
CHANGED
|
@@ -34,9 +34,47 @@ export class DecryptionError extends Error {
|
|
|
34
34
|
this.name = "DecryptionError";
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Thrown by encryptForCore when `counterpart` cannot be fingerprinted —
|
|
39
|
+
* mirrors DecryptionError's role on the decrypt side (issue #85). NOT
|
|
40
|
+
* thrown for unencodable `data` (the caller's own plaintext payload): that
|
|
41
|
+
* stays a raw TypeError, since it is a programmer error, not a hostile or
|
|
42
|
+
* malformed peer card.
|
|
43
|
+
*/
|
|
44
|
+
export class EncryptionError extends Error {
|
|
45
|
+
constructor(message) {
|
|
46
|
+
super(message);
|
|
47
|
+
this.name = "EncryptionError";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Calls `fn`, converting a TypeError or RangeError — the two exceptions
|
|
52
|
+
* canonicalize() can throw (a rejected shape, or a stack overflow from
|
|
53
|
+
* pathological, non-circular nesting depth) — into `onHostile`'s result.
|
|
54
|
+
* Everything else propagates unchanged, so a genuinely unexpected bug is
|
|
55
|
+
* never mistaken for hostile peer input (issue #85).
|
|
56
|
+
*/
|
|
57
|
+
function catchingCanonicalizeFailure(fn, onHostile) {
|
|
58
|
+
try {
|
|
59
|
+
return fn();
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
if (err instanceof TypeError || err instanceof RangeError)
|
|
63
|
+
return onHostile(err);
|
|
64
|
+
throw err;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* True for a non-empty, even-length string of LOWERCASE hex digits only —
|
|
69
|
+
* what every hex-encoded field in this module expects. Uppercase hex is
|
|
70
|
+
* rejected, not folded: every hex field this library produces is lowercase
|
|
71
|
+
* (bytesToHex always lowercases), so accepting uppercase as an equivalent
|
|
72
|
+
* encoding would let the same decoded bytes serialize as more than one
|
|
73
|
+
* string — harmless to decrypt/verify, but it breaks any caller that
|
|
74
|
+
* caches, dedupes, or hashes the serialized certificate/box (issue #83).
|
|
75
|
+
*/
|
|
38
76
|
function isHex(value) {
|
|
39
|
-
return typeof value === "string" && value.length > 0 && value.length % 2 === 0 && /^[0-9a-
|
|
77
|
+
return typeof value === "string" && value.length > 0 && value.length % 2 === 0 && /^[0-9a-f]+$/.test(value);
|
|
40
78
|
}
|
|
41
79
|
/**
|
|
42
80
|
* True only for the exact canonical format `new Date().toISOString()` itself
|
|
@@ -54,17 +92,33 @@ export function isValidIsoInstant(value) {
|
|
|
54
92
|
const date = new Date(value);
|
|
55
93
|
return !Number.isNaN(date.getTime()) && date.toISOString() === value;
|
|
56
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* True iff `obj` has no own key outside `allowed` — a positive allow-list,
|
|
97
|
+
* so it needs no special case for `__proto__` or any other specific name
|
|
98
|
+
* (JSON.parse never triggers the prototype setter, so `__proto__` is just an
|
|
99
|
+
* ordinary own-enumerable key here, caught like any other unexpected one).
|
|
100
|
+
* Both signatures are computed over a specific extracted set of fields, never
|
|
101
|
+
* over "the whole object", so an extra key rides along unauthenticated
|
|
102
|
+
* unless something checks for it (issue #84).
|
|
103
|
+
*/
|
|
104
|
+
function hasOnlyKeys(obj, allowed) {
|
|
105
|
+
return Object.keys(obj).every((key) => allowed.includes(key));
|
|
106
|
+
}
|
|
107
|
+
const CERTIFICATE_KEYS = ["documentHash", "classicalSignature", "pqcSignature", "algorithms", "signer", "signedAt", "version", "expiresAt"];
|
|
108
|
+
const CERTIFICATE_SIGNER_KEYS = ["alias", "classicalPublicKey", "pqcSignPublicKey"];
|
|
57
109
|
/**
|
|
58
110
|
* Structural shape check only — right fields, right primitive types, hex
|
|
59
|
-
* fields actually parse as hex,
|
|
60
|
-
* a valid ISO instant, not just a
|
|
61
|
-
* hexToBytes/checkTrust call so a malformed
|
|
62
|
-
* verifyCore instead of just failing it.
|
|
111
|
+
* fields actually parse as hex, no unexpected extra fields (issue #84), and
|
|
112
|
+
* (issue #4) a present `expiresAt` must be a valid ISO instant, not just a
|
|
113
|
+
* string. Runs before any hexToBytes/checkTrust call so a malformed
|
|
114
|
+
* certificate can't crash verifyCore instead of just failing it.
|
|
63
115
|
*/
|
|
64
116
|
function isValidCertificateShape(certificate) {
|
|
65
117
|
if (typeof certificate !== "object" || certificate === null)
|
|
66
118
|
return false;
|
|
67
119
|
const c = certificate;
|
|
120
|
+
if (!hasOnlyKeys(c, CERTIFICATE_KEYS))
|
|
121
|
+
return false;
|
|
68
122
|
if (typeof c.documentHash !== "string")
|
|
69
123
|
return false;
|
|
70
124
|
if (!isHex(c.classicalSignature))
|
|
@@ -84,6 +138,8 @@ function isValidCertificateShape(certificate) {
|
|
|
84
138
|
if (typeof c.signer !== "object" || c.signer === null)
|
|
85
139
|
return false;
|
|
86
140
|
const signer = c.signer;
|
|
141
|
+
if (!hasOnlyKeys(signer, CERTIFICATE_SIGNER_KEYS))
|
|
142
|
+
return false;
|
|
87
143
|
if (typeof signer.alias !== "string")
|
|
88
144
|
return false;
|
|
89
145
|
if (!isHex(signer.classicalPublicKey))
|
|
@@ -92,11 +148,15 @@ function isValidCertificateShape(certificate) {
|
|
|
92
148
|
return false;
|
|
93
149
|
return true;
|
|
94
150
|
}
|
|
95
|
-
|
|
151
|
+
const ENCRYPTED_BOX_KEYS = ["version", "id", "signedAt", "kemCipherText", "nonce", "ciphertext", "signature"];
|
|
152
|
+
const BOX_SIGNATURE_KEYS = ["classicalSignature", "pqcSignature"];
|
|
153
|
+
/** Same structural-shape treatment as isValidCertificateShape, for the box encryptFor/decryptFrom exchange instead of a Certificate — including no unexpected extra fields (issue #84). Version is checked separately so a v1 box gets a clear error. */
|
|
96
154
|
function isValidEncryptedBoxShape(box) {
|
|
97
155
|
if (typeof box !== "object" || box === null)
|
|
98
156
|
return false;
|
|
99
157
|
const b = box;
|
|
158
|
+
if (!hasOnlyKeys(b, ENCRYPTED_BOX_KEYS))
|
|
159
|
+
return false;
|
|
100
160
|
const sig = b.signature;
|
|
101
161
|
return (isHex(b.id) &&
|
|
102
162
|
b.id.length === 32 &&
|
|
@@ -107,6 +167,7 @@ function isValidEncryptedBoxShape(box) {
|
|
|
107
167
|
isHex(b.ciphertext) &&
|
|
108
168
|
typeof sig === "object" &&
|
|
109
169
|
sig !== null &&
|
|
170
|
+
hasOnlyKeys(sig, BOX_SIGNATURE_KEYS) &&
|
|
110
171
|
isHex(sig.classicalSignature) &&
|
|
111
172
|
isHex(sig.pqcSignature));
|
|
112
173
|
}
|
|
@@ -132,10 +193,13 @@ function certificateMessage(certificate) {
|
|
|
132
193
|
? signedMessageV2(certificate.documentHash, certificate.expiresAt, certificate.signer.alias, certificate.signedAt)
|
|
133
194
|
: signedMessage(certificate.documentHash, certificate.expiresAt);
|
|
134
195
|
}
|
|
196
|
+
/** `counterpart` is peer-influenced, so a non-object value (null, a primitive, ...) still gets a clean UntrustedPartyError, not a crash reading its `alias` (issue #85). */
|
|
135
197
|
async function requireTrusted(checkTrust, counterpart) {
|
|
136
198
|
const status = await checkTrust(counterpart);
|
|
137
|
-
if (status !== "trusted")
|
|
138
|
-
|
|
199
|
+
if (status !== "trusted") {
|
|
200
|
+
const alias = typeof counterpart === "object" && counterpart !== null ? counterpart.alias : "(malformed card)";
|
|
201
|
+
throw new UntrustedPartyError(alias);
|
|
202
|
+
}
|
|
139
203
|
}
|
|
140
204
|
async function log(onLog, entry) {
|
|
141
205
|
if (onLog)
|
|
@@ -204,7 +268,11 @@ export async function verifyCore(identity, document, certificate, deps) {
|
|
|
204
268
|
if (status === "revoked") {
|
|
205
269
|
return record({ valid: false, reason: "revoked-signer" });
|
|
206
270
|
}
|
|
207
|
-
|
|
271
|
+
const documentHash = catchingCanonicalizeFailure(() => hashDocument(document), () => undefined);
|
|
272
|
+
if (documentHash === undefined) {
|
|
273
|
+
return record({ valid: false, reason: "malformed-document" });
|
|
274
|
+
}
|
|
275
|
+
if (documentHash !== certificate.documentHash) {
|
|
208
276
|
return record({ valid: false, reason: "hash-mismatch" });
|
|
209
277
|
}
|
|
210
278
|
if (certificate.expiresAt && Date.now() >= Date.parse(certificate.expiresAt)) {
|
|
@@ -275,7 +343,9 @@ export async function encryptForCore(identity, counterpart, data, deps) {
|
|
|
275
343
|
kemCipherText: bytesToHex(cipherText),
|
|
276
344
|
nonce: bytesToHex(nonce),
|
|
277
345
|
};
|
|
278
|
-
const context = boxContext(sender, counterpart, head)
|
|
346
|
+
const context = catchingCanonicalizeFailure(() => boxContext(sender, counterpart, head), () => {
|
|
347
|
+
throw new EncryptionError("Malformed counterpart card: its fields could not be fingerprinted (non-finite number, non-plain object, or similar).");
|
|
348
|
+
});
|
|
279
349
|
const key = deriveBoxKey(ecdhSecret, kemSecret, context);
|
|
280
350
|
const ciphertext = bytesToHex(gcm(key, nonce, boxAad(context)).encrypt(utf8ToBytes(canonicalize(data))));
|
|
281
351
|
const message = boxSignedMessage(context, ciphertext);
|
|
@@ -304,7 +374,9 @@ export async function decryptFromCore(identity, counterpart, box, deps) {
|
|
|
304
374
|
throw new DecryptionError("Malformed EncryptedBox: id/signedAt/kemCipherText/nonce/ciphertext/signature are not all valid.");
|
|
305
375
|
}
|
|
306
376
|
const recipient = publicCardOf(identity);
|
|
307
|
-
const context = boxContext(counterpart, recipient, box)
|
|
377
|
+
const context = catchingCanonicalizeFailure(() => boxContext(counterpart, recipient, box), () => {
|
|
378
|
+
throw new DecryptionError("Malformed counterpart card: its fields could not be fingerprinted (non-finite number, non-plain object, or similar).");
|
|
379
|
+
});
|
|
308
380
|
// Verify before touching the KEM or the cipher.
|
|
309
381
|
const message = boxSignedMessage(context, box.ciphertext);
|
|
310
382
|
const classicalOk = classicalVerify(hexToBytes(box.signature.classicalSignature), message, hexToBytes(counterpart.classicalPublicKey));
|
|
@@ -419,6 +491,27 @@ function isValidInitiatorHandshakeMessageShape(message) {
|
|
|
419
491
|
const m = message;
|
|
420
492
|
return isHex(m.ephemeralClassicalPublicKey) && isHex(m.nonce) && isHex(m.kemCipherText) && isValidHandshakeSignatureShape(m.signature);
|
|
421
493
|
}
|
|
494
|
+
/**
|
|
495
|
+
* Structural shape check for the `counterpart` PublicCard a session
|
|
496
|
+
* handshake is established against. Unlike every other peer-facing entry
|
|
497
|
+
* point in this module (verifyCore, encryptForCore, decryptFromCore all
|
|
498
|
+
* validate shape or catch canonicalize failures before touching a peer
|
|
499
|
+
* card — issue #85), establishSessionInitiatorCore/establishSessionResponderCore
|
|
500
|
+
* had no such guard: a malformed classicalPublicKey/pqcSignPublicKey
|
|
501
|
+
* reached fingerprint()/hexToBytes() unchecked and crashed with a raw
|
|
502
|
+
* TypeError/RangeError instead of the documented MalformedHandshakeMessageError.
|
|
503
|
+
*/
|
|
504
|
+
const PUBLIC_CARD_KEYS = ["alias", "classicalPublicKey", "pqcSignPublicKey", "pqcKemPublicKey"];
|
|
505
|
+
function isValidPublicCardShape(card) {
|
|
506
|
+
if (typeof card !== "object" || card === null)
|
|
507
|
+
return false;
|
|
508
|
+
const c = card;
|
|
509
|
+
// hasOnlyKeys (issue #84) matters here specifically: fingerprint()
|
|
510
|
+
// canonicalizes the WHOLE card below, so an extra non-finite/non-plain
|
|
511
|
+
// field would otherwise still reach canonicalize() unchecked even though
|
|
512
|
+
// the four documented fields themselves are all valid hex strings.
|
|
513
|
+
return hasOnlyKeys(c, PUBLIC_CARD_KEYS) && typeof c.alias === "string" && isHex(c.classicalPublicKey) && isHex(c.pqcSignPublicKey) && isHex(c.pqcKemPublicKey);
|
|
514
|
+
}
|
|
422
515
|
/** Reconstructs the counterpart-facing PublicCard shape from an Identity, without importing identity.js (which pulls in node:fs) — keeps this module browser-safe. */
|
|
423
516
|
function publicCardOf(identity) {
|
|
424
517
|
return {
|
|
@@ -565,46 +658,64 @@ export function createResponderHandshakeCore(identity) {
|
|
|
565
658
|
* checks anyone's trust status, same as signCore.
|
|
566
659
|
*/
|
|
567
660
|
export function establishSessionInitiatorCore(identity, counterpart, responderMessage) {
|
|
661
|
+
if (!isValidPublicCardShape(counterpart)) {
|
|
662
|
+
throw new MalformedHandshakeMessageError("Malformed counterpart card: alias/classicalPublicKey/pqcSignPublicKey/pqcKemPublicKey must be a string and valid hex respectively.");
|
|
663
|
+
}
|
|
568
664
|
if (!isValidResponderHandshakeMessageShape(responderMessage)) {
|
|
569
665
|
throw new MalformedHandshakeMessageError("Malformed ResponderHandshakeMessage: ephemeral keys/nonce/signature must all be hex strings.");
|
|
570
666
|
}
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
667
|
+
// A hex field of the right FORMAT but wrong decoded length (e.g. a
|
|
668
|
+
// 10-byte "ephemeralKemPublicKey" instead of ML-KEM-1024's 1568) passes
|
|
669
|
+
// isHex but still reaches classicalSharedSecret/pqcEncapsulate below —
|
|
670
|
+
// which throw raw, untyped errors on a malformed point/length (issue
|
|
671
|
+
// found in a follow-up audit, same class as issue #85). Signature
|
|
672
|
+
// verification failures (HandshakeVerificationError) are a distinct,
|
|
673
|
+
// intentional outcome and must propagate unchanged; everything else
|
|
674
|
+
// thrown in here means the input itself was malformed.
|
|
675
|
+
try {
|
|
676
|
+
verifyHandshakeSignature(counterpart, {
|
|
677
|
+
tag: HANDSHAKE_DOMAIN_TAG,
|
|
678
|
+
role: "responder",
|
|
679
|
+
ownFingerprint: fingerprint(counterpart),
|
|
680
|
+
ephemeralClassicalPublicKey: responderMessage.ephemeralClassicalPublicKey,
|
|
681
|
+
ephemeralKemPublicKey: responderMessage.ephemeralKemPublicKey,
|
|
682
|
+
nonce: responderMessage.nonce,
|
|
683
|
+
}, responderMessage.signature);
|
|
684
|
+
const ephemeralClassical = generateClassicalKeypair();
|
|
685
|
+
const nonce = bytesToHex(randomBytes(32));
|
|
686
|
+
const { cipherText, sharedSecret: kemSecret } = pqcEncapsulate(hexToBytes(responderMessage.ephemeralKemPublicKey));
|
|
687
|
+
// Unlike the responder, the initiator already knows exactly who it's
|
|
688
|
+
// talking to and has the responder's message in hand — so its signed
|
|
689
|
+
// payload binds everything issue #2 asks for: both fingerprints, both
|
|
690
|
+
// nonces, and the KEM ciphertext this message carries.
|
|
691
|
+
const signedPayload = {
|
|
692
|
+
tag: HANDSHAKE_DOMAIN_TAG,
|
|
693
|
+
role: "initiator",
|
|
694
|
+
ownFingerprint: fingerprint(publicCardOf(identity)),
|
|
695
|
+
peerFingerprint: fingerprint(counterpart),
|
|
696
|
+
ephemeralClassicalPublicKey: bytesToHex(ephemeralClassical.publicKey),
|
|
697
|
+
nonce,
|
|
698
|
+
peerNonce: responderMessage.nonce,
|
|
699
|
+
kemCipherText: bytesToHex(cipherText),
|
|
700
|
+
};
|
|
701
|
+
const signature = signHandshakePayload(identity, signedPayload);
|
|
702
|
+
const message = {
|
|
703
|
+
ephemeralClassicalPublicKey: signedPayload.ephemeralClassicalPublicKey,
|
|
704
|
+
nonce,
|
|
705
|
+
signature,
|
|
706
|
+
kemCipherText: signedPayload.kemCipherText,
|
|
707
|
+
};
|
|
708
|
+
const ephemeralEcdhSecret = classicalSharedSecret(ephemeralClassical.secretKey, hexToBytes(responderMessage.ephemeralClassicalPublicKey));
|
|
709
|
+
const staticEcdhSecret = classicalSharedSecret(identity.classical.secretKey, hexToBytes(counterpart.classicalPublicKey));
|
|
710
|
+
const transcriptSalt = handshakeTranscriptSalt(publicCardOf(identity), counterpart, responderMessage, message);
|
|
711
|
+
const { keys, confirmationKey, rootKey } = deriveSessionSecrets(ephemeralEcdhSecret, kemSecret, staticEcdhSecret, transcriptSalt);
|
|
712
|
+
return { message, keys, confirmationKey, rootKey };
|
|
713
|
+
}
|
|
714
|
+
catch (err) {
|
|
715
|
+
if (err instanceof HandshakeVerificationError)
|
|
716
|
+
throw err;
|
|
717
|
+
throw new MalformedHandshakeMessageError(`Malformed ResponderHandshakeMessage or counterpart card: ${err instanceof Error ? err.message : String(err)}`);
|
|
718
|
+
}
|
|
608
719
|
}
|
|
609
720
|
/**
|
|
610
721
|
* Completes the handshake as the connection's responder, given the
|
|
@@ -616,23 +727,36 @@ export function establishSessionInitiatorCore(identity, counterpart, responderMe
|
|
|
616
727
|
* confirmation key the initiator derived.
|
|
617
728
|
*/
|
|
618
729
|
export function establishSessionResponderCore(identity, counterpart, ephemeral, initiatorMessage) {
|
|
730
|
+
if (!isValidPublicCardShape(counterpart)) {
|
|
731
|
+
throw new MalformedHandshakeMessageError("Malformed counterpart card: alias/classicalPublicKey/pqcSignPublicKey/pqcKemPublicKey must be a string and valid hex respectively.");
|
|
732
|
+
}
|
|
619
733
|
if (!isValidInitiatorHandshakeMessageShape(initiatorMessage)) {
|
|
620
734
|
throw new MalformedHandshakeMessageError("Malformed InitiatorHandshakeMessage: ephemeral key/nonce/signature/kemCipherText must all be hex strings.");
|
|
621
735
|
}
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
736
|
+
// Same reasoning as establishSessionInitiatorCore: a right-format,
|
|
737
|
+
// wrong-length hex field passes the shape checks above but still throws a
|
|
738
|
+
// raw, untyped error inside classicalSharedSecret/pqcDecapsulate below.
|
|
739
|
+
try {
|
|
740
|
+
verifyHandshakeSignature(counterpart, {
|
|
741
|
+
tag: HANDSHAKE_DOMAIN_TAG,
|
|
742
|
+
role: "initiator",
|
|
743
|
+
ownFingerprint: fingerprint(counterpart),
|
|
744
|
+
peerFingerprint: fingerprint(publicCardOf(identity)),
|
|
745
|
+
ephemeralClassicalPublicKey: initiatorMessage.ephemeralClassicalPublicKey,
|
|
746
|
+
nonce: initiatorMessage.nonce,
|
|
747
|
+
peerNonce: ephemeral.message.nonce,
|
|
748
|
+
kemCipherText: initiatorMessage.kemCipherText,
|
|
749
|
+
}, initiatorMessage.signature);
|
|
750
|
+
const ephemeralEcdhSecret = classicalSharedSecret(ephemeral.ephemeralClassicalSecretKey, hexToBytes(initiatorMessage.ephemeralClassicalPublicKey));
|
|
751
|
+
const kemSecret = pqcDecapsulate(hexToBytes(initiatorMessage.kemCipherText), ephemeral.ephemeralKemSecretKey);
|
|
752
|
+
const staticEcdhSecret = classicalSharedSecret(identity.classical.secretKey, hexToBytes(counterpart.classicalPublicKey));
|
|
753
|
+
const transcriptSalt = handshakeTranscriptSalt(counterpart, publicCardOf(identity), ephemeral.message, initiatorMessage);
|
|
754
|
+
return deriveSessionSecrets(ephemeralEcdhSecret, kemSecret, staticEcdhSecret, transcriptSalt);
|
|
755
|
+
}
|
|
756
|
+
catch (err) {
|
|
757
|
+
if (err instanceof HandshakeVerificationError)
|
|
758
|
+
throw err;
|
|
759
|
+
throw new MalformedHandshakeMessageError(`Malformed InitiatorHandshakeMessage or counterpart card: ${err instanceof Error ? err.message : String(err)}`);
|
|
760
|
+
}
|
|
637
761
|
}
|
|
638
762
|
//# sourceMappingURL=hybrid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybrid.js","sourceRoot":"","sources":["../../src/crypto/hybrid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACjH,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErG,0EAA0E;AAC1E,yEAAyE;AACzE,oEAAoE;AACpE,uEAAuE;AACvE,+CAA+C;AAE/C,gFAAgF;AAChF,4EAA4E;AAC5E,iEAAiE;AACjE,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,YAAY,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;AAC3D,MAAM,cAAc,GAAG,yBAAyB,CAAC;AACjD,MAAM,WAAW,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;AAChD,MAAM,UAAU,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAW,CAAC;AAE1E,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,KAAa;QACvB,KAAK,CAAC,IAAI,KAAK,mFAAmF,CAAC,CAAC;QACpG,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,iLAAiL;AACjL,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,yHAAyH;AACzH,SAAS,KAAK,CAAC,KAAc;IAC3B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;AACvE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,WAAoB;IACnD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1E,MAAM,CAAC,GAAG,WAAsC,CAAC;IAEjD,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAEpH,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACpE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAiC,CAAC;IACnD,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAAE,OAAO,KAAK,CAAC;IAElD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sMAAsM;AACtM,SAAS,wBAAwB,CAAC,GAAY;IAC5C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,MAAM,GAAG,GAAG,CAAC,CAAC,SAAuD,CAAC;IACtE,OAAO,CACL,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACX,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,EAAE;QAClB,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAC9B,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC7B,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;QACtB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QACd,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;QACnB,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC7B,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CACxB,CAAC;AACJ,CAAC;AA0BD;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,YAAoB,EAAE,SAA6B;IACxE,OAAO,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAE3D,+GAA+G;AAC/G,SAAS,eAAe,CAAC,YAAoB,EAAE,SAA6B,EAAE,KAAa,EAAE,QAAgB;IAC3G,OAAO,WAAW,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,IAAI,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACnI,CAAC;AAED,kFAAkF;AAClF,SAAS,kBAAkB,CAAC,WAAwB;IAClD,OAAO,WAAW,CAAC,OAAO,KAAK,CAAC;QAC9B,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC;QAClH,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;AACrE,CAAC;AAmCD,KAAK,UAAU,cAAc,CAAC,UAAmC,EAAE,WAAuB;IACxF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,mBAAmB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,KAAuB,EAAE,KAA2B;IACrE,IAAI,KAAK;QAAE,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAkB,EAAE,QAAiB,EAAE,UAAuB,EAAE,EAAE,OAAgB,EAAE;IACjH,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CACb,mJAAmJ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CACxL,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE3F,MAAM,WAAW,GAAgB;QAC/B,OAAO,EAAE,CAAC;QACV,YAAY;QACZ,kBAAkB,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpF,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACtE,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE;YACN,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,kBAAkB,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC;YAC5D,gBAAgB,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;SACzD;QACD,QAAQ;QACR,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC;IAEF,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACxD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAkB,EAAE,QAAiB,EAAE,WAAwB,EAAE,IAAgB;IAChH,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;QAC/E,sEAAsE;QACtE,wEAAwE;QACxE,uEAAuE;QACvE,sEAAsE;QACtE,yDAAyD;QACzD,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,EAAE,MAAoB,EAAyB,EAAE;QACnE,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACpB,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK;YAC1C,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;SAC/C,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAEzD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,WAAW,CAAC,YAAY,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7E,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEhD,MAAM,WAAW,GAAG,eAAe,CACjC,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAC1C,OAAO,EACP,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAClD,CAAC;IACF,IAAI,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC,CAAC;IAE1F,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxH,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAE9E,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjC,CAAC;AAgBD,sHAAsH;AACtH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,EAAU;QACpB,KAAK,CAAC,OAAO,EAAE,sDAAsD,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAcD,0GAA0G;AAC1G,SAAS,UAAU,CAAC,MAAkB,EAAE,SAAqB,EAAE,GAAsE;IACnI,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE;QAC3F,SAAS,EAAE;YACT,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC;YACnC,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,eAAe,EAAE,SAAS,CAAC,eAAe;SAC3C;QACD,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,UAAsB,EAAE,SAAqB,EAAE,OAAsC;IACzG,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,MAAM,CAAC,OAAsC;IACpD,OAAO,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAsC,EAAE,UAAkB;IAClF,OAAO,WAAW,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjI,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAkB,EAAE,WAAuB,EAAE,IAAa,EAAE,IAAe;IAC9G,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACnH,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;IACxG,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAE9B,MAAM,IAAI,GAAG;QACX,EAAE,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC/B,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAClC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC;QACrC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;KACzB,CAAC;IACF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzG,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG;QAChB,kBAAkB,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpF,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;KACpF,CAAC;IAEF,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IAElF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAc,QAAkB,EAAE,WAAuB,EAAE,GAAiB,EAAE,IAAiB;IAClI,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEnD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAK,GAA6B,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACtG,MAAM,IAAI,eAAe,CAAC,oGAAoG,CAAC,CAAC;IAClI,CAAC;IACD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,eAAe,CAAC,iGAAiG,CAAC,CAAC;IAC/H,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAExD,gDAAgD;IAChD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACvI,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,CAAC;IAChI,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,eAAe,CAAC,aAAa,WAAW,CAAC,KAAK,yEAAyE,CAAC,CAAC;IACrI,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,iBAAiB,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAChI,MAAM,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,SAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACnH,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3F,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACzD,SAAS,GAAG,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACnG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,eAAe,CAAC,+BAA+B,WAAW,CAAC,KAAK,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtI,CAAC;IAED,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IAElF,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAM,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,kEAAkE;QAClE,wEAAwE;QACxE,sEAAsE;QACtE,gEAAgE;QAChE,6CAA6C;QAC7C,MAAM,IAAI,eAAe,CAAC,aAAa,WAAW,CAAC,KAAK,qDAAqD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnK,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,0EAA0E;AAC1E,2EAA2E;AAC3E,wDAAwD;AACxD,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,yEAAyE;AACzE,yEAAyE;AACzE,4EAA4E;AAC5E,6EAA6E;AAC7E,sEAAsE;AACtE,2EAA2E;AAC3E,wEAAwE;AACxE,qEAAqE;AACrE,2EAA2E;AAC3E,mEAAmE;AACnE,+DAA+D;AAC/D,+EAA+E;AAC/E,6CAA6C;AAC7C,EAAE;AACF,yEAAyE;AACzE,qEAAqE;AACrE,2EAA2E;AAC3E,0EAA0E;AAC1E,oEAAoE;AACpE,oEAAoE;AACpE,uEAAuE;AAEvE,MAAM,mCAAmC,GAAG,WAAW,CAAC,+CAA+C,CAAC,CAAC;AACzG,MAAM,mCAAmC,GAAG,WAAW,CAAC,+CAA+C,CAAC,CAAC;AACzG,MAAM,6BAA6B,GAAG,WAAW,CAAC,yCAAyC,CAAC,CAAC;AAC7F,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,+BAA+B;AAC/B,MAAM,qBAAqB,GAAG,WAAW,CAAC,iCAAiC,CAAC,CAAC;AAE7E,wEAAwE;AACxE,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,6EAA6E;AAC7E,yEAAyE;AACzE,sEAAsE;AACtE,MAAM,oBAAoB,GAAG,kCAAkC,CAAC;AAChE,MAAM,iBAAiB,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;AA2E5D,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,4LAA4L;AAC5L,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IACvD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF;AAED,SAAS,8BAA8B,CAAC,SAAkB;IACxD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtE,MAAM,CAAC,GAAG,SAAoC,CAAC;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,qCAAqC,CAAC,OAAgB;IAC7D,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAClE,MAAM,CAAC,GAAG,OAAkC,CAAC;IAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,8BAA8B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACjJ,CAAC;AAED,SAAS,qCAAqC,CAAC,OAAgB;IAC7D,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAClE,MAAM,CAAC,GAAG,OAAkC,CAAC;IAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,8BAA8B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACzI,CAAC;AAED,sKAAsK;AACtK,SAAS,YAAY,CAAC,QAAkB;IACtC,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,kBAAkB,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC;QAC5D,gBAAgB,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;QACxD,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;KACvD,CAAC;AACJ,CAAC;AAED,+LAA+L;AAC/L,SAAS,sBAAsB,CAAC,OAA+B;IAC7D,OAAO,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAkB,EAAE,OAA+B;IAC/E,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO;QACL,kBAAkB,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpF,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;KAC1F,CAAC;AACJ,CAAC;AAED,gKAAgK;AAChK,SAAS,wBAAwB,CAAC,MAAkB,EAAE,OAA+B,EAAE,SAA6B;IAClH,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhD,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC9H,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,0BAA0B,CAAC,iDAAiD,MAAM,CAAC,KAAK,mBAAmB,CAAC,CAAC;IAEzI,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC7H,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,0BAA0B,CAAC,2CAA2C,MAAM,CAAC,KAAK,mBAAmB,CAAC,CAAC;AAC/H,CAAC;AAqBD,MAAM,uBAAuB,GAAG,iCAAiC,CAAC;AAElE,SAAS,oBAAoB,CAAC,IAAmB,EAAE,UAA+B;IAChF,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW;QAAE,MAAM,IAAI,SAAS,CAAC,2BAA2B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjH,OAAO,WAAW,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,eAA2B,EAAE,IAAmB,EAAE,UAA+B;IACnH,IAAI,eAAe,CAAC,MAAM,KAAK,EAAE;QAAE,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;IAC3F,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,eAA2B,EAAE,eAA8B,EAAE,UAA+B,EAAE,GAAY;IAC9I,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAC9B,aAAyB,EACzB,aAAyB,EACzB,gBAA2C,EAC3C,gBAA2C;IAE3C,OAAO,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;AACjH,CAAC;AAED,SAAS,oBAAoB,CAC3B,mBAA+B,EAC/B,SAAqB,EACrB,gBAA4B,EAC5B,cAA0B;IAE1B,MAAM,GAAG,GAAG,WAAW,CAAC,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC1E,OAAO;QACL,IAAI,EAAE;YACJ,oBAAoB,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,mCAAmC,EAAE,EAAE,CAAC;YAChG,oBAAoB,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,mCAAmC,EAAE,EAAE,CAAC;SACjG;QACD,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,6BAA6B,EAAE,EAAE,CAAC;QACrF,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,qBAAqB,EAAE,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B,CAAC,QAAkB;IAC7D,MAAM,kBAAkB,GAAG,wBAAwB,EAAE,CAAC;IACtD,MAAM,YAAY,GAAG,qBAAqB,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1C,yEAAyE;IACzE,0EAA0E;IAC1E,uEAAuE;IACvE,+DAA+D;IAC/D,uEAAuE;IACvE,MAAM,aAAa,GAAG;QACpB,GAAG,EAAE,oBAAoB;QACzB,IAAI,EAAE,WAAW;QACjB,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACnD,2BAA2B,EAAE,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC;QACrE,qBAAqB,EAAE,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC;QACzD,KAAK;KACN,CAAC;IACF,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAEhE,MAAM,OAAO,GAA8B;QACzC,2BAA2B,EAAE,aAAa,CAAC,2BAA2B;QACtE,qBAAqB,EAAE,aAAa,CAAC,qBAAqB;QAC1D,KAAK;QACL,SAAS;KACV,CAAC;IACF,OAAO;QACL,OAAO;QACP,SAAS,EAAE;YACT,2BAA2B,EAAE,kBAAkB,CAAC,SAAS;YACzD,qBAAqB,EAAE,YAAY,CAAC,SAAS;YAC7C,OAAO;SACR;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,6BAA6B,CAC3C,QAAkB,EAClB,WAAuB,EACvB,gBAA2C;IAE3C,IAAI,CAAC,qCAAqC,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,8BAA8B,CAAC,8FAA8F,CAAC,CAAC;IAC3I,CAAC;IAED,wBAAwB,CACtB,WAAW,EACX;QACE,GAAG,EAAE,oBAAoB;QACzB,IAAI,EAAE,WAAW;QACjB,cAAc,EAAE,WAAW,CAAC,WAAW,CAAC;QACxC,2BAA2B,EAAE,gBAAgB,CAAC,2BAA2B;QACzE,qBAAqB,EAAE,gBAAgB,CAAC,qBAAqB;QAC7D,KAAK,EAAE,gBAAgB,CAAC,KAAK;KAC9B,EACD,gBAAgB,CAAC,SAAS,CAC3B,CAAC;IAEF,MAAM,kBAAkB,GAAG,wBAAwB,EAAE,CAAC;IACtD,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAEnH,qEAAqE;IACrE,qEAAqE;IACrE,sEAAsE;IACtE,uDAAuD;IACvD,MAAM,aAAa,GAAG;QACpB,GAAG,EAAE,oBAAoB;QACzB,IAAI,EAAE,WAAW;QACjB,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACnD,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC;QACzC,2BAA2B,EAAE,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC;QACrE,KAAK;QACL,SAAS,EAAE,gBAAgB,CAAC,KAAK;QACjC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC;KACtC,CAAC;IACF,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAEhE,MAAM,OAAO,GAA8B;QACzC,2BAA2B,EAAE,aAAa,CAAC,2BAA2B;QACtE,KAAK;QACL,SAAS;QACT,aAAa,EAAE,aAAa,CAAC,aAAa;KAC3C,CAAC;IAEF,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC1I,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzH,MAAM,cAAc,GAAG,uBAAuB,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC/G,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAElI,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;AACrD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAC3C,QAAkB,EAClB,WAAuB,EACvB,SAAoC,EACpC,gBAA2C;IAE3C,IAAI,CAAC,qCAAqC,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,8BAA8B,CAAC,2GAA2G,CAAC,CAAC;IACxJ,CAAC;IAED,wBAAwB,CACtB,WAAW,EACX;QACE,GAAG,EAAE,oBAAoB;QACzB,IAAI,EAAE,WAAW;QACjB,cAAc,EAAE,WAAW,CAAC,WAAW,CAAC;QACxC,eAAe,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpD,2BAA2B,EAAE,gBAAgB,CAAC,2BAA2B;QACzE,KAAK,EAAE,gBAAgB,CAAC,KAAK;QAC7B,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK;QAClC,aAAa,EAAE,gBAAgB,CAAC,aAAa;KAC9C,EACD,gBAAgB,CAAC,SAAS,CAC3B,CAAC;IAEF,MAAM,mBAAmB,GAAG,qBAAqB,CAC/C,SAAS,CAAC,2BAA2B,EACrC,UAAU,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CACzD,CAAC;IACF,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC9G,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzH,MAAM,cAAc,GAAG,uBAAuB,CAAC,WAAW,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACzH,OAAO,oBAAoB,CAAC,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;AAChG,CAAC"}
|
|
1
|
+
{"version":3,"file":"hybrid.js","sourceRoot":"","sources":["../../src/crypto/hybrid.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import type { Identity, PublicCard } from "../identity.js";
|
|
13
13
|
import { type DecryptDeps, type Certificate, type EncryptedBox, type SignOptions, type VerifyResult } from "./hybrid.js";
|
|
14
|
-
export { DecryptionError, ReplayedBoxError, UntrustedPartyError } from "./hybrid.js";
|
|
14
|
+
export { DecryptionError, EncryptionError, ReplayedBoxError, UntrustedPartyError } from "./hybrid.js";
|
|
15
15
|
export type { BoxReplayInfo, Certificate, EncryptedBox, SignOptions, VerifyFailureReason, VerifyResult } from "./hybrid.js";
|
|
16
16
|
/**
|
|
17
17
|
* Signs `document` with both the classical (ECDSA-P384) and post-quantum
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { appendLogEntry } from "../store.js";
|
|
2
2
|
import { getTrustRecordsByAlias, getTrustedPartiesByAlias } from "../trust.js";
|
|
3
3
|
import { decryptFromCore, encryptForCore, signCore, verifyCore, } from "./hybrid.js";
|
|
4
|
-
export { DecryptionError, ReplayedBoxError, UntrustedPartyError } from "./hybrid.js";
|
|
4
|
+
export { DecryptionError, EncryptionError, ReplayedBoxError, UntrustedPartyError } from "./hybrid.js";
|
|
5
5
|
async function trustStatusForSigner(identity, signer) {
|
|
6
6
|
const allRecords = await getTrustRecordsByAlias(identity, signer.alias);
|
|
7
7
|
const matchingRecord = allRecords.find((r) => r.card.classicalPublicKey === signer.classicalPublicKey && r.card.pqcSignPublicKey === signer.pqcSignPublicKey);
|
|
@@ -11,7 +11,14 @@ async function trustStatusForSigner(identity, signer) {
|
|
|
11
11
|
return "revoked";
|
|
12
12
|
return "trusted";
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* `card` is encryptFor/decryptFrom's counterpart argument — peer-influenced,
|
|
16
|
+
* so a non-object value (null, a primitive, ...) is simply untrusted rather
|
|
17
|
+
* than a crash on `card.alias` (issue #85).
|
|
18
|
+
*/
|
|
14
19
|
async function trustStatusForCard(identity, card) {
|
|
20
|
+
if (typeof card !== "object" || card === null)
|
|
21
|
+
return "untrusted";
|
|
15
22
|
const candidates = await getTrustedPartiesByAlias(identity, card.alias);
|
|
16
23
|
const isTrusted = candidates.some((trusted) => trusted.classicalPublicKey === card.classicalPublicKey &&
|
|
17
24
|
trusted.pqcSignPublicKey === card.pqcSignPublicKey &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeHybrid.js","sourceRoot":"","sources":["../../src/crypto/nodeHybrid.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EACL,eAAe,EAEf,cAAc,EACd,QAAQ,EAMR,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"nodeHybrid.js","sourceRoot":"","sources":["../../src/crypto/nodeHybrid.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { canonicalize, hashDocument } from "./canonicalJson.js";
|
|
2
2
|
export { fingerprint } from "./fingerprint.js";
|
|
3
|
-
export { decryptFrom, DecryptionError, encryptFor, ReplayedBoxError, sign, UntrustedPartyError, verify } from "./crypto/nodeHybrid.js";
|
|
3
|
+
export { decryptFrom, DecryptionError, encryptFor, EncryptionError, ReplayedBoxError, sign, UntrustedPartyError, verify } from "./crypto/nodeHybrid.js";
|
|
4
4
|
export type { BoxReplayInfo, Certificate, EncryptedBox, VerifyFailureReason, VerifyResult } from "./crypto/nodeHybrid.js";
|
|
5
5
|
export { createIdentity, exportPublicIdentity, exportSignedCard, loadIdentity, loadIdentityFromKeyStore, MIN_PASSPHRASE_LENGTH, zeroizeIdentity, } from "./identity.js";
|
|
6
6
|
export type { CreateIdentityOptions, Identity, KeyStore, LoadIdentityFromKeyStoreOptions, LoadIdentityOptions, PublicCard } from "./identity.js";
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { canonicalize, hashDocument } from "./canonicalJson.js";
|
|
2
2
|
export { fingerprint } from "./fingerprint.js";
|
|
3
|
-
export { decryptFrom, DecryptionError, encryptFor, ReplayedBoxError, sign, UntrustedPartyError, verify } from "./crypto/nodeHybrid.js";
|
|
3
|
+
export { decryptFrom, DecryptionError, encryptFor, EncryptionError, ReplayedBoxError, sign, UntrustedPartyError, verify } from "./crypto/nodeHybrid.js";
|
|
4
4
|
export { createIdentity, exportPublicIdentity, exportSignedCard, loadIdentity, loadIdentityFromKeyStore, MIN_PASSPHRASE_LENGTH, zeroizeIdentity, } from "./identity.js";
|
|
5
5
|
export { migrateAuditLogToEncrypted, readLog, verifyLogIntegrity } from "./store.js";
|
|
6
6
|
export { applyRevocationNotice, applyRotation, beginRotation, completeRotation, createRevocationNotice, getTrustedParty, getTrustStoreAnchor, getTrustedPartiesByAlias, getTrustRecordsByAlias, listTrustedParties, listTrustRecords, migrateLegacyTrustStore, migrateTrustStoreToEncrypted, TrustStoreIntegrityError, trustParty, trustSignedCard, untrustFingerprint, untrustParty, verifyTrustStoreAnchor, } from "./trust.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAExJ,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,0BAA0B,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErF,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
|
package/dist/trust.d.ts
CHANGED
|
@@ -61,6 +61,14 @@ export declare function migrateTrustStoreToEncrypted(identity: Identity): Promis
|
|
|
61
61
|
* and the file is rewritten authenticated. Returns the number of records
|
|
62
62
|
* adopted; returns 0 and changes nothing if the file is missing or already
|
|
63
63
|
* authenticated (a modified authenticated file still throws).
|
|
64
|
+
*
|
|
65
|
+
* Refuses (throws TrustStoreIntegrityError, changes nothing) when
|
|
66
|
+
* trust.seq.json exists: a legacy, pre-MAC file cannot legitimately coexist
|
|
67
|
+
* with that sidecar, since the sidecar postdates every legacy format (ADR
|
|
68
|
+
* 0030). Its presence means this trust.json was replaced with a planted
|
|
69
|
+
* legacy file after the store was already authenticated — issue #76/ADR
|
|
70
|
+
* 0034. Checked by existence alone, not validity, since even a corrupted
|
|
71
|
+
* sidecar is still evidence a store once existed.
|
|
64
72
|
*/
|
|
65
73
|
export declare function migrateLegacyTrustStore(identity: Identity): Promise<number>;
|
|
66
74
|
/**
|
|
@@ -163,6 +171,13 @@ export declare function completeRotation(newIdentity: Identity, draft: {
|
|
|
163
171
|
* is not a way to seed your trust store with a card you never decided to
|
|
164
172
|
* trust in the first place.
|
|
165
173
|
*
|
|
174
|
+
* Refuses (`{ valid: false, reason: "new-card-was-previously-revoked" }`,
|
|
175
|
+
* changes nothing) when `newCard`'s fingerprint already carries a tombstone
|
|
176
|
+
* — whether from an earlier, unrelated for-cause revocation, or from having
|
|
177
|
+
* rotated away from it before (rotating A→B then back to A). Resuming trust
|
|
178
|
+
* in a fingerprint with revoked history is a decision for the caller to make
|
|
179
|
+
* explicitly, not one rotation should make for them.
|
|
180
|
+
*
|
|
166
181
|
* `options.confirmNewFingerprint` is REQUIRED: the new card's fingerprint as
|
|
167
182
|
* the real owner gave it to you over a channel the statement did not travel
|
|
168
183
|
* on (phone call, in person). Dual signatures alone only prove the author
|
package/dist/trust.js
CHANGED
|
@@ -158,6 +158,24 @@ function computeSeqMac(identity, seq, storeMac) {
|
|
|
158
158
|
const key = hkdf(sha384, concatBytes(identity.classical.secretKey, identity.pqcSign.secretKey), undefined, TRUST_STORE_SEQ_INFO, 32);
|
|
159
159
|
return bytesToHex(hmac(sha384, key, utf8ToBytes(canonicalize({ version: 1, seq, storeMac }))));
|
|
160
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Whether trust.seq.json exists at all, regardless of whether it would pass
|
|
163
|
+
* readSeqRecord's validation. Existence alone is evidence this identity's
|
|
164
|
+
* trust store was authenticated at some point (the sidecar postdates every
|
|
165
|
+
* legacy, pre-MAC format by definition — ADR 0030, ADR 0034) — even a
|
|
166
|
+
* corrupted sidecar is still that evidence, so this check never validates it.
|
|
167
|
+
*/
|
|
168
|
+
async function seqFileExists(identity) {
|
|
169
|
+
try {
|
|
170
|
+
await readFile(seqFilePath(identity.storageDir));
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
catch (err) {
|
|
174
|
+
if (err.code === "ENOENT")
|
|
175
|
+
return false;
|
|
176
|
+
throw err;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
161
179
|
/** The sidecar's contents, or undefined if absent. Throws TrustStoreIntegrityError if it exists but is malformed or fails its MAC. */
|
|
162
180
|
async function readSeqRecord(identity) {
|
|
163
181
|
let raw;
|
|
@@ -203,6 +221,9 @@ async function readStoreState(identity) {
|
|
|
203
221
|
state = { entries: decryptEntries(identity, data.nonce, data.ciphertext), seq: data.seq ?? 0, mac: data.mac };
|
|
204
222
|
}
|
|
205
223
|
else if (!isV3(data)) {
|
|
224
|
+
if (await seqFileExists(identity)) {
|
|
225
|
+
throw new TrustStoreIntegrityError("trust.json is an unauthenticated legacy file, but trust.seq.json shows this identity's trust store was already authenticated. This looks like a downgrade or replacement, not a first-time migration — refusing to read it. Restore the authenticated trust.json, or investigate before proceeding.");
|
|
226
|
+
}
|
|
206
227
|
throw new TrustStoreIntegrityError("trust.json is an unauthenticated legacy file (written before trust-store MACs). Review it, then call migrateLegacyTrustStore(identity) to adopt it.");
|
|
207
228
|
}
|
|
208
229
|
else {
|
|
@@ -325,6 +346,14 @@ export function migrateTrustStoreToEncrypted(identity) {
|
|
|
325
346
|
* and the file is rewritten authenticated. Returns the number of records
|
|
326
347
|
* adopted; returns 0 and changes nothing if the file is missing or already
|
|
327
348
|
* authenticated (a modified authenticated file still throws).
|
|
349
|
+
*
|
|
350
|
+
* Refuses (throws TrustStoreIntegrityError, changes nothing) when
|
|
351
|
+
* trust.seq.json exists: a legacy, pre-MAC file cannot legitimately coexist
|
|
352
|
+
* with that sidecar, since the sidecar postdates every legacy format (ADR
|
|
353
|
+
* 0030). Its presence means this trust.json was replaced with a planted
|
|
354
|
+
* legacy file after the store was already authenticated — issue #76/ADR
|
|
355
|
+
* 0034. Checked by existence alone, not validity, since even a corrupted
|
|
356
|
+
* sidecar is still evidence a store once existed.
|
|
328
357
|
*/
|
|
329
358
|
export function migrateLegacyTrustStore(identity) {
|
|
330
359
|
return serialized(identity, async () => {
|
|
@@ -336,6 +365,9 @@ export function migrateLegacyTrustStore(identity) {
|
|
|
336
365
|
await readTrustStore(identity); // verifies (and decrypts, for v4); throws if tampered
|
|
337
366
|
return 0;
|
|
338
367
|
}
|
|
368
|
+
if (await seqFileExists(identity)) {
|
|
369
|
+
throw new TrustStoreIntegrityError("trust.json is an unauthenticated legacy file, but trust.seq.json shows this identity's trust store was already authenticated. Refusing to adopt it — this looks like a downgrade or replacement, not a first-time migration. Restore the authenticated trust.json, or investigate before proceeding.");
|
|
370
|
+
}
|
|
339
371
|
const entries = legacyEntries(data);
|
|
340
372
|
await writeTrustStore(identity, entries);
|
|
341
373
|
return Object.keys(entries).length;
|
|
@@ -438,8 +470,17 @@ export async function getTrustRecordsByAlias(identity, alias) {
|
|
|
438
470
|
// trust-store lookup, it's self-consistency (does the certificate's signer
|
|
439
471
|
// match the card it's attached to?), so `cardMatchesSigner` stands in for
|
|
440
472
|
// checkTrust wherever one of these functions verifies a self-signed card.
|
|
441
|
-
/**
|
|
473
|
+
/**
|
|
474
|
+
* True iff `signer` (a Certificate's signer fields) is the SAME party `card`
|
|
475
|
+
* claims to be — not a trust-store lookup, a self-consistency check. `card`
|
|
476
|
+
* is whatever the caller passed as the document to verify (trustSignedCard,
|
|
477
|
+
* applyRotation, applyRevocationNotice all route a peer-supplied card here),
|
|
478
|
+
* so a non-object card (null, a primitive, ...) is simply not a match rather
|
|
479
|
+
* than a crash on `card.alias` (issue #85).
|
|
480
|
+
*/
|
|
442
481
|
function cardMatchesSigner(card, signer) {
|
|
482
|
+
if (typeof card !== "object" || card === null)
|
|
483
|
+
return false;
|
|
443
484
|
return card.alias === signer.alias && card.classicalPublicKey === signer.classicalPublicKey && card.pqcSignPublicKey === signer.pqcSignPublicKey;
|
|
444
485
|
}
|
|
445
486
|
/**
|
|
@@ -498,6 +539,13 @@ export async function completeRotation(newIdentity, draft) {
|
|
|
498
539
|
* is not a way to seed your trust store with a card you never decided to
|
|
499
540
|
* trust in the first place.
|
|
500
541
|
*
|
|
542
|
+
* Refuses (`{ valid: false, reason: "new-card-was-previously-revoked" }`,
|
|
543
|
+
* changes nothing) when `newCard`'s fingerprint already carries a tombstone
|
|
544
|
+
* — whether from an earlier, unrelated for-cause revocation, or from having
|
|
545
|
+
* rotated away from it before (rotating A→B then back to A). Resuming trust
|
|
546
|
+
* in a fingerprint with revoked history is a decision for the caller to make
|
|
547
|
+
* explicitly, not one rotation should make for them.
|
|
548
|
+
*
|
|
501
549
|
* `options.confirmNewFingerprint` is REQUIRED: the new card's fingerprint as
|
|
502
550
|
* the real owner gave it to you over a channel the statement did not travel
|
|
503
551
|
* on (phone call, in person). Dual signatures alone only prove the author
|
|
@@ -510,7 +558,21 @@ export async function applyRotation(identity, statement, options) {
|
|
|
510
558
|
if (typeof options?.confirmNewFingerprint !== "string" || options.confirmNewFingerprint.trim() === "") {
|
|
511
559
|
throw new Error("applyRotation requires options.confirmNewFingerprint: the new card's fingerprint, confirmed with its owner out of band (ADR 0029).");
|
|
512
560
|
}
|
|
561
|
+
// The destructure below throws on a null/undefined statement BEFORE the
|
|
562
|
+
// document guard that follows it ever runs — the wrapper itself needs the
|
|
563
|
+
// same check as its nested document field (issue #85, found one layer
|
|
564
|
+
// further out in a follow-up audit).
|
|
565
|
+
if (typeof statement !== "object" || statement === null) {
|
|
566
|
+
return { valid: false, reason: "malformed-document" };
|
|
567
|
+
}
|
|
513
568
|
const { document, oldCertificate, newCertificate } = statement;
|
|
569
|
+
// document.oldCard/newCard is read below BEFORE verifyCore's own
|
|
570
|
+
// hashDocument guard (issue #85) is ever reached, so a non-object document
|
|
571
|
+
// (a hostile peer-supplied RotationStatement) must be rejected here first,
|
|
572
|
+
// not left to crash on that property access.
|
|
573
|
+
if (typeof document !== "object" || document === null) {
|
|
574
|
+
return { valid: false, reason: "malformed-document" };
|
|
575
|
+
}
|
|
514
576
|
const oldResult = await verifyCore(identity, document, oldCertificate, {
|
|
515
577
|
checkTrust: async (signer) => (cardMatchesSigner(document.oldCard, signer) ? "trusted" : "untrusted"),
|
|
516
578
|
});
|
|
@@ -532,9 +594,21 @@ export async function applyRotation(identity, statement, options) {
|
|
|
532
594
|
const existing = entries[oldKey];
|
|
533
595
|
if (!existing || existing.revokedAt)
|
|
534
596
|
return { valid: true }; // nothing trusted to migrate from — no-op
|
|
597
|
+
const newKey = fingerprint(document.newCard);
|
|
598
|
+
// Refuse rather than silently overwrite: an unconditional write here
|
|
599
|
+
// would destroy an existing tombstone at newKey — whether from an
|
|
600
|
+
// earlier, unrelated for-cause revocation of this exact fingerprint, or
|
|
601
|
+
// from rotating away from it previously ("rotate A→B then back to A").
|
|
602
|
+
// Either way, this fingerprint has revoked history on file; resuming
|
|
603
|
+
// trust in it is a decision for the caller to make explicitly (e.g.
|
|
604
|
+
// trustParty after reviewing why it was revoked), not something
|
|
605
|
+
// rotation should do on their behalf (found in a follow-up audit).
|
|
606
|
+
if (entries[newKey]?.revokedAt) {
|
|
607
|
+
return { valid: false, reason: "new-card-was-previously-revoked" };
|
|
608
|
+
}
|
|
535
609
|
const revokedAt = new Date().toISOString();
|
|
536
|
-
entries[oldKey] = { ...existing, revokedAt, rotatedTo:
|
|
537
|
-
entries[
|
|
610
|
+
entries[oldKey] = { ...existing, revokedAt, rotatedTo: newKey };
|
|
611
|
+
entries[newKey] = { card: document.newCard, trustedAt: revokedAt };
|
|
538
612
|
await writeTrustStore(identity, entries);
|
|
539
613
|
await appendLogEntry(identity, { action: "rotate", counterpartAlias: document.oldCard.alias });
|
|
540
614
|
return { valid: true };
|
|
@@ -569,7 +643,21 @@ export async function createRevocationNotice(identity, options = {}) {
|
|
|
569
643
|
* denylist feature.
|
|
570
644
|
*/
|
|
571
645
|
export async function applyRevocationNotice(identity, notice) {
|
|
646
|
+
// The destructure below throws on a null/undefined notice BEFORE the
|
|
647
|
+
// document guard that follows it ever runs — the wrapper itself needs the
|
|
648
|
+
// same check as its nested document field (issue #85, found one layer
|
|
649
|
+
// further out in a follow-up audit).
|
|
650
|
+
if (typeof notice !== "object" || notice === null) {
|
|
651
|
+
return { valid: false, reason: "malformed-document" };
|
|
652
|
+
}
|
|
572
653
|
const { document, certificate } = notice;
|
|
654
|
+
// document.revokedAt/revokedCard is read below BEFORE verifyCore's own
|
|
655
|
+
// hashDocument guard (issue #85) is ever reached, so a non-object document
|
|
656
|
+
// (a hostile peer-supplied RevocationNotice) must be rejected here first,
|
|
657
|
+
// not left to crash on that property access.
|
|
658
|
+
if (typeof document !== "object" || document === null) {
|
|
659
|
+
return { valid: false, reason: "malformed-document" };
|
|
660
|
+
}
|
|
573
661
|
if (!isValidIsoInstant(document.revokedAt))
|
|
574
662
|
return { valid: false, reason: "malformed-certificate" };
|
|
575
663
|
const result = await verifyCore(identity, document, certificate, {
|
package/dist/trust.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trust.js","sourceRoot":"","sources":["../src/trust.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trust.js","sourceRoot":"","sources":["../src/trust.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "raz-encrypt",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "Local-first, hybrid classical+post-quantum signing and verification for two consenting parties. No server, no database required.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -24,6 +24,8 @@
|
|
|
24
24
|
],
|
|
25
25
|
"scripts": {
|
|
26
26
|
"build": "tsc -p tsconfig.json",
|
|
27
|
+
"verify-build": "node scripts/verify-build.mjs",
|
|
28
|
+
"prepack": "npm run build && npm run verify-build",
|
|
27
29
|
"typecheck": "tsc --noEmit",
|
|
28
30
|
"test": "vitest run",
|
|
29
31
|
"test:watch": "vitest",
|