@learncard/sss-key-manager 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/escrow-attestation.d.ts +2 -9
  2. package/dist/escrow-attestation.d.ts.map +1 -1
  3. package/dist/escrow-authority.d.ts +138 -0
  4. package/dist/escrow-authority.d.ts.map +1 -0
  5. package/dist/escrow-authority.types.d.ts +51 -0
  6. package/dist/escrow-authority.types.d.ts.map +1 -0
  7. package/dist/escrow-crypto.d.ts +9 -1
  8. package/dist/escrow-crypto.d.ts.map +1 -1
  9. package/dist/escrow-enrollment-intent.d.ts +13 -0
  10. package/dist/escrow-enrollment-intent.d.ts.map +1 -0
  11. package/dist/escrow-enrollment-intent.types.d.ts +28 -0
  12. package/dist/escrow-enrollment-intent.types.d.ts.map +1 -0
  13. package/dist/escrow-nitro-attestation.d.ts +2 -0
  14. package/dist/escrow-nitro-attestation.d.ts.map +1 -1
  15. package/dist/index.d.ts +8 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/sss-key-manager.cjs.development.js +1652 -214
  18. package/dist/sss-key-manager.cjs.development.js.map +4 -4
  19. package/dist/sss-key-manager.cjs.production.min.js +28 -23
  20. package/dist/sss-key-manager.cjs.production.min.js.map +4 -4
  21. package/dist/sss-key-manager.esm.js +1167 -164
  22. package/dist/sss-key-manager.esm.js.map +4 -4
  23. package/dist/sss-strategy.d.ts +2 -1
  24. package/dist/sss-strategy.d.ts.map +1 -1
  25. package/dist/types.d.ts +21 -1
  26. package/dist/types.d.ts.map +1 -1
  27. package/package.json +2 -2
  28. package/src/__fixtures__/escrow-authority-v1.json +96 -0
  29. package/src/__fixtures__/escrow-carry-contact-contract-v1.json +33 -0
  30. package/src/__fixtures__/escrow-enrollment-intent-v1.json +26 -0
  31. package/src/__fixtures__/nitro-attestation-real/staging-nsm-document.json +16 -0
  32. package/src/escrow-attestation.ts +10 -9
  33. package/src/escrow-authority.test.ts +757 -0
  34. package/src/escrow-authority.ts +671 -0
  35. package/src/escrow-authority.types.ts +56 -0
  36. package/src/escrow-crypto.ts +39 -1
  37. package/src/escrow-enrollment-intent.test.ts +224 -0
  38. package/src/escrow-enrollment-intent.ts +236 -0
  39. package/src/escrow-enrollment-intent.types.ts +28 -0
  40. package/src/escrow-nitro-attestation.test.ts +72 -0
  41. package/src/escrow-nitro-attestation.ts +34 -3
  42. package/src/index.ts +29 -0
  43. package/src/sss-authority.test.ts +889 -0
  44. package/src/sss-strategy.test.ts +32 -0
  45. package/src/sss-strategy.ts +503 -39
  46. package/src/types.ts +27 -3
@@ -1,12 +1,5 @@
1
1
  import type { EscrowAttestationPolicy } from './types';
2
+ import type { VerifiedEnclaveIdentity } from './escrow-authority.types';
2
3
  /** Parse untrusted attestation data and enforce an explicit enclave trust policy. */
3
- export declare const verifyEnclaveAttestation: (attestation: unknown, policy: EscrowAttestationPolicy, nonce?: Uint8Array) => Promise<{
4
- publicKey: string;
5
- keyId: string;
6
- /** P9.1: retired keyIds still accepted for decrypt. In nitro mode this is
7
- * the value bound inside the signed attestation document, cross-checked
8
- * against the plaintext field below — never the plaintext alone. */
9
- previousKeyIds: string[];
10
- mode: "software" | "nitro";
11
- }>;
4
+ export declare const verifyEnclaveAttestation: (attestation: unknown, policy: EscrowAttestationPolicy, nonce?: Uint8Array) => Promise<VerifiedEnclaveIdentity>;
12
5
  //# sourceMappingURL=escrow-attestation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"escrow-attestation.d.ts","sourceRoot":"","sources":["../src/escrow-attestation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAkBvD,qFAAqF;AACrF,eAAO,MAAM,wBAAwB,GACjC,aAAa,OAAO,EACpB,QAAQ,uBAAuB,EAC/B,QAAQ,UAAU,KACnB,OAAO,CAAC;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd;;wEAEoE;IACpE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;CAC9B,CA4FA,CAAC"}
1
+ {"version":3,"file":"escrow-attestation.d.ts","sourceRoot":"","sources":["../src/escrow-attestation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAkBxE,qFAAqF;AACrF,eAAO,MAAM,wBAAwB,GACjC,aAAa,OAAO,EACpB,QAAQ,uBAAuB,EAC/B,QAAQ,UAAU,KACnB,OAAO,CAAC,uBAAuB,CAoGjC,CAAC"}
@@ -0,0 +1,138 @@
1
+ import type { HistoricalEscrowEvidence } from './escrow-authority.types';
2
+ import type { EscrowAttestationPolicy } from './types';
3
+ import type { EscrowBlobPlaintext, EscrowEnvelope } from './escrow-crypto';
4
+ import type { EscrowEnrollmentIntent, SignedEscrowEnrollmentIntent } from './escrow-enrollment-intent.types';
5
+ import type { EscrowAuthorityRecord, EscrowAuthorityState, VerifiedEnclaveIdentity, VerifiedEscrowMutation } from './escrow-authority.types';
6
+ /** Verify a fresh hold-state response using an independently retained hold binding
7
+ * and a newly generated 32-byte nonce. Never reuse the nonce for another read. */
8
+ export declare const verifyEscrowHoldState: (response: {
9
+ proof: unknown;
10
+ }, nonce: string, expected: {
11
+ tenant: string;
12
+ authorityGeneration: string;
13
+ did: string;
14
+ holdId: string;
15
+ holdDigest: string;
16
+ }, identity: VerifiedEnclaveIdentity) => Promise<{
17
+ status: "awaitingConfirmation" | "pending" | "released" | "cancelled";
18
+ confirmedHiMs: number | null;
19
+ releaseWarningSentHiMs: number | null;
20
+ attemptsRemaining: number;
21
+ codeSendStatus: "unknown" | "notRequired";
22
+ }>;
23
+ /** Authenticate advisory send acceptance without changing the immutable hold commitment. */
24
+ export declare const verifyEscrowCodeDelivery: (delivery: {
25
+ codeSent: boolean;
26
+ proof: unknown;
27
+ }, expected: {
28
+ tenant: string;
29
+ authorityGeneration: string;
30
+ holdDigest: string;
31
+ }, identity: VerifiedEnclaveIdentity) => Promise<boolean>;
32
+ /** Derive historical receipt pins from the same complete PCR tuples used for
33
+ * Nitro attestation. Legacy image-only pins and malformed tuples authorize nothing. */
34
+ export declare const escrowAuthorityMeasurements: (policy: EscrowAttestationPolicy) => Promise<string[]>;
35
+ /** Check challenge, scope and signed state; never trust the unsigned duplicate. */
36
+ export declare const verifyEscrowAuthorityState: (response: unknown, nonce: string, tenant: string, did: string, identity: VerifiedEnclaveIdentity) => Promise<EscrowAuthorityState>;
37
+ /** Accept only the committed output of this exact owner intent, including reseals. */
38
+ export declare const verifyEscrowEnrollmentCommit: (response: unknown, intent: EscrowEnrollmentIntent, identity: VerifiedEnclaveIdentity) => Promise<VerifiedEscrowMutation>;
39
+ /** Opaque wire shape of `SignedHoldRecord` (wire.rs `HoldRecord` / policy.rs
40
+ * `SignedHoldRecord`) — exactly the fields `hold_hash` commits to, plus the
41
+ * embedded enclave signature over the hold's own creation. */
42
+ export interface EscrowHoldRecordLike {
43
+ hold: {
44
+ holdId: string;
45
+ did: string;
46
+ shareVersion: number;
47
+ blobHash: string;
48
+ enrollmentEpoch: number;
49
+ releasePolicy: 'hold' | 'pin';
50
+ clientEphemeralPublicKey: string;
51
+ createdLo: number;
52
+ createdHi: number;
53
+ policyVersion: number;
54
+ signature: string;
55
+ };
56
+ holdDurationMs: number;
57
+ ledgerSeq: number;
58
+ }
59
+ export interface VerifiedEscrowHold {
60
+ receipt: EscrowAuthorityRecord;
61
+ authorityGeneration: string;
62
+ holdDigest: string;
63
+ }
64
+ /** Verify the enclave committed to creating THIS exact hold before trusting
65
+ * a `SignedHoldRecord` returned by lca-api: recipient key, DID, blob
66
+ * identity and hold id all come from the caller's own expectations (never
67
+ * from the record alone), and the embedded signature is checked against the
68
+ * attested ledger key exactly like `verifyEscrowEnrollmentCommit`. Returns
69
+ * the record's own `authorityGeneration` so a later confirmation/warning
70
+ * receipt for the SAME hold can be pinned to it.
71
+ * `historical` explicitly permits an older signed measurement only if it is
72
+ * allowlisted, verifies with the current attested ledger key and an attested
73
+ * current/previous key ID, and matches the retained authority generation.
74
+ * Never use historical verification for newly produced confirmation evidence. */
75
+ export declare const verifyEscrowHoldRecord: (record: EscrowHoldRecordLike, expected: {
76
+ tenant: string;
77
+ did: string;
78
+ clientEphemeralPublicKey: string;
79
+ blobHash: string;
80
+ holdId: string;
81
+ }, identity: VerifiedEnclaveIdentity, historical?: HistoricalEscrowEvidence) => Promise<VerifiedEscrowHold>;
82
+ /** Verify a confirm-hold / send-release-warning result commits to THIS exact
83
+ * hold (the one `verifyEscrowHoldRecord` already verified). A fresh
84
+ * `commit`'s `requestDigest` is a secret-keyed, PIN-style hash the client
85
+ * cannot recompute by design (publishing an unkeyed digest here would be an
86
+ * offline oracle — see escrow-enclave-app's ledger "Operation commitments"),
87
+ * so a fresh commit is checked on tenant/generation/DID binding, epoch and
88
+ * blob identity only. The idempotent retry **snapshot** instead embeds
89
+ * `signedHoldDigest` directly in its (unkeyed) payload, so a snapshot
90
+ * additionally recomputes and compares the hold digest — exactly binding a
91
+ * retry to the hold the client itself started, not a different one. A caller
92
+ * receiving a commit MUST also obtain and verify this snapshot before claiming
93
+ * hold-specific confirmation (as createSSSStrategy does). */
94
+ export declare const verifyEscrowHoldConfirmation: (receipt: unknown, record: EscrowHoldRecordLike, expected: {
95
+ tenant: string;
96
+ did: string;
97
+ authorityGeneration: string;
98
+ }, identity: VerifiedEnclaveIdentity) => Promise<EscrowAuthorityRecord>;
99
+ export type EscrowEnrollmentActionInput = 'automatic' | 'set' | 'clear' | 'disable';
100
+ /** Pure action resolution, shared between intent-building (here) and blob
101
+ * plaintext construction (sss-strategy.ts's `enrollEscrow`), so both always
102
+ * agree on enroll/replace/carry/disable from the same inputs instead of
103
+ * maintaining two copies of this decision. P9.1 (attack C) / P2-d:
104
+ * `bindsRecoveryContact` is the single source of truth for whether
105
+ * `recoveryEmail`/`recoveryLanguage` may appear in EITHER the signed intent
106
+ * or the target blob plaintext — Rust rejects a Carry target blob whose
107
+ * plaintext already carries either field (the enclave fills them in from
108
+ * the source blob instead), so this must be computed identically in both
109
+ * places or a carry can be built with a blob the enclave will refuse. */
110
+ export declare const resolveEscrowEnrollmentAction: (current: Pick<EscrowAuthorityState, "status" | "hasPin">, input: EscrowEnrollmentActionInput) => {
111
+ action: EscrowEnrollmentIntent["action"];
112
+ pinAction: EscrowEnrollmentIntent["pinAction"];
113
+ bindsRecoveryContact: boolean;
114
+ };
115
+ /** P2-d cross-language contract: mirrors the enclave's Carry contact-field
116
+ * rejection rule (`apply_enrollment_intent` in authority.rs) — true means
117
+ * the enclave would refuse this target blob. The enclave always fills
118
+ * recoveryEmail/recoveryLanguage in from the source blob on carry, so a
119
+ * target that already claims either field is refused. Shared by
120
+ * `escrow-carry-contact-contract-v1.json`'s TS and Rust tests, and by any
121
+ * caller (e.g. a test fake) that wants to fail the same way the real
122
+ * enclave does instead of accepting a shape it would reject. */
123
+ export declare const violatesCarryContactRule: (action: EscrowEnrollmentIntent["action"], target: Pick<EscrowBlobPlaintext, "recoveryEmail" | "recoveryLanguage"> | null) => boolean;
124
+ /** Owner-only mutation selection. Recovery itself never calls this helper.
125
+ * P9.1 (attack C): `recoveryEmail`/`recoveryLanguage` are always supplied by the
126
+ * caller (the device's authenticated account email + app locale) but are only
127
+ * bound into the intent for enroll/replace; disable/carry null them out here
128
+ * regardless of input, since the enclave carries the prior value forward. */
129
+ export declare const createEscrowEnrollmentIntent: (input: {
130
+ state: EscrowAuthorityState;
131
+ target: EscrowEnvelope | null;
132
+ shareVersion: number;
133
+ privateKey: string;
134
+ pinAction: EscrowEnrollmentActionInput;
135
+ recoveryEmail: string;
136
+ recoveryLanguage: string;
137
+ }) => Promise<SignedEscrowEnrollmentIntent>;
138
+ //# sourceMappingURL=escrow-authority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow-authority.d.ts","sourceRoot":"","sources":["../src/escrow-authority.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { EscrowEnvelope } from './escrow-crypto';
2
+ /** Unverifiable or substituted recovery evidence; callers must not continue recovery. */
3
+ export declare class EscrowEvidenceError extends Error {
4
+ constructor();
5
+ }
6
+ /** Opt-in for previously issued hold evidence only. Measurements are SHA-256
7
+ * hashes of complete configured PCR0/1/2 tuples, never server-supplied values.
8
+ * The original authority generation and current attested ledger key remain pinned.
9
+ * Fresh receipts must omit this option and match the current measurement exactly. */
10
+ export interface HistoricalEscrowEvidence {
11
+ historical: true;
12
+ allowedMeasurements: readonly string[];
13
+ authorityGeneration: string;
14
+ }
15
+ /** Only construct from verified, nonce-bound NSM evidence (never wrapper JSON). */
16
+ export interface VerifiedEnclaveIdentity {
17
+ publicKey: string;
18
+ keyId: string;
19
+ previousKeyIds: string[];
20
+ mode: 'software' | 'nitro';
21
+ authority?: {
22
+ ledgerPublicKey: string;
23
+ measurement: string;
24
+ };
25
+ }
26
+ export interface EscrowAuthorityRecord {
27
+ version: 1;
28
+ kind: 'proposal' | 'commit' | 'snapshot';
29
+ keyId: string;
30
+ measurement: number[];
31
+ payload: string;
32
+ signature: string;
33
+ }
34
+ export interface EscrowAuthorityState {
35
+ tenant: string;
36
+ authorityGeneration: string;
37
+ did: string;
38
+ enrollmentVersion: number;
39
+ enrollmentEpoch: number;
40
+ status: 'empty' | 'active' | 'disabled';
41
+ envelope: EscrowEnvelope | null;
42
+ shareVersion: number | null;
43
+ hasPin: boolean;
44
+ pinGeneration: number;
45
+ attemptsUsed: number;
46
+ }
47
+ export interface VerifiedEscrowMutation {
48
+ envelope: EscrowEnvelope | null;
49
+ receipt: EscrowAuthorityRecord;
50
+ }
51
+ //# sourceMappingURL=escrow-authority.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow-authority.types.d.ts","sourceRoot":"","sources":["../src/escrow-authority.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,yFAAyF;AACzF,qBAAa,mBAAoB,SAAQ,KAAK;;CAK7C;AAED;;;qFAGqF;AACrF,MAAM,WAAW,wBAAwB;IACrC,UAAU,EAAE,IAAI,CAAC;IACjB,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,mBAAmB,EAAE,MAAM,CAAC;CAC/B;AAED,mFAAmF;AACnF,MAAM,WAAW,uBAAuB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE;AAED,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IACxC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,qBAAqB,CAAC;CAClC"}
@@ -18,13 +18,21 @@ export interface EscrowEnvelope {
18
18
  iv: string;
19
19
  ciphertext: string;
20
20
  }
21
- /** Recovery share bound to an identity and a positive share version. */
21
+ /** P9.1 (attack C): the app's compiled template languages. Keep in lockstep with
22
+ * apps/learn-card-app/src/i18n's SUPPORTED_LANGUAGES and the Rust RECOVERY_LANGUAGES. */
23
+ export declare const RECOVERY_LANGUAGES: readonly ["en", "es", "fr", "ar"];
24
+ /** Recovery share bound to an identity and a positive share version.
25
+ * `recoveryEmail`/`recoveryLanguage`: bound by the user's own device at
26
+ * enrollment, never by lca-api. Always both-present or both-absent; changing
27
+ * the address requires a fresh `replace` enrollment, not an edit. */
22
28
  export interface EscrowBlobPlaintext {
23
29
  version: typeof ESCROW_ENVELOPE_VERSION;
24
30
  recoveryShare: string;
25
31
  did: string;
26
32
  shareVersion: number;
27
33
  pinVerifier?: string;
34
+ recoveryEmail?: string;
35
+ recoveryLanguage?: string;
28
36
  }
29
37
  /** Released recovery share additionally bound to its recovery hold. */
30
38
  export interface EscrowReleasePlaintext extends EscrowBlobPlaintext {
@@ -1 +1 @@
1
- {"version":3,"file":"escrow-crypto.d.ts","sourceRoot":"","sources":["../src/escrow-crypto.ts"],"names":[],"mappings":"AAQA,4CAA4C;AAC5C,eAAO,MAAM,uBAAuB,EAAG,CAAU,CAAC;AAClD,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,EAAG,+BAAwC,CAAC;AACzE,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAC3D,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,gCAAgC,CAAC;AACjE,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB,EAAG,QAAiB,CAAC;AAEtD,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,OAAO,uBAAuB,CAAC;IACxC,SAAS,EAAE,OAAO,gBAAgB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,wEAAwE;AACxE,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,uBAAuB,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,uEAAuE;AACvE,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IAC/D,MAAM,EAAE,MAAM,CAAC;CAClB;AA+BD,wFAAwF;AACxF,eAAO,MAAM,mBAAmB,GAAI,OAAO,OAAO,KAAG,cAkBpD,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,GAAI,OAAO,OAAO,KAAG,mBA+BzD,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,2BAA2B,GAAI,OAAO,OAAO,KAAG,sBAQ5D,CAAC;AA0BF,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,QAAa,OAAO,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB,CAUA,CAAC;AA8FF,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,GAC1B,OAAO,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,EAC3C,yBAAyB,MAAM,EAC/B,OAAO,MAAM,KACd,OAAO,CAAC,cAAc,CASxB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,GAC1B,UAAU,OAAO,EACjB,2BAA2B,MAAM,KAClC,OAAO,CAAC,mBAAmB,CAGzB,CAAC;AAEN,wFAAwF;AACxF,eAAO,MAAM,iBAAiB,GAC1B,OAAO,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,EAC9C,iCAAiC,MAAM,KACxC,OAAO,CAAC,cAAc,CASxB,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,GAC1B,UAAU,OAAO,EACjB,mCAAmC,MAAM,KAC1C,OAAO,CAAC,sBAAsB,CAG5B,CAAC"}
1
+ {"version":3,"file":"escrow-crypto.d.ts","sourceRoot":"","sources":["../src/escrow-crypto.ts"],"names":[],"mappings":"AAQA,4CAA4C;AAC5C,eAAO,MAAM,uBAAuB,EAAG,CAAU,CAAC;AAClD,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,EAAG,+BAAwC,CAAC;AACzE,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAC3D,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,gCAAgC,CAAC;AACjE,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB,EAAG,QAAiB,CAAC;AAEtD,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,OAAO,uBAAuB,CAAC;IACxC,SAAS,EAAE,OAAO,gBAAgB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;yFACyF;AACzF,eAAO,MAAM,kBAAkB,mCAAoC,CAAC;AAEpE;;;qEAGqE;AACrE,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,uBAAuB,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,uEAAuE;AACvE,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IAC/D,MAAM,EAAE,MAAM,CAAC;CAClB;AA+BD,wFAAwF;AACxF,eAAO,MAAM,mBAAmB,GAAI,OAAO,OAAO,KAAG,cAkBpD,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,GAAI,OAAO,OAAO,KAAG,mBA4DzD,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,2BAA2B,GAAI,OAAO,OAAO,KAAG,sBAQ5D,CAAC;AA0BF,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,QAAa,OAAO,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB,CAUA,CAAC;AA8FF,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,GAC1B,OAAO,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,EAC3C,yBAAyB,MAAM,EAC/B,OAAO,MAAM,KACd,OAAO,CAAC,cAAc,CASxB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,GAC1B,UAAU,OAAO,EACjB,2BAA2B,MAAM,KAClC,OAAO,CAAC,mBAAmB,CAGzB,CAAC;AAEN,wFAAwF;AACxF,eAAO,MAAM,iBAAiB,GAC1B,OAAO,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,EAC9C,iCAAiC,MAAM,KACxC,OAAO,CAAC,cAAc,CASxB,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,GAC1B,UAAU,OAAO,EACjB,mCAAmC,MAAM,KAC1C,OAAO,CAAC,sBAAsB,CAG5B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { EscrowEnvelope } from './escrow-crypto';
2
+ import type { EscrowEnrollmentIntent, SignedEscrowEnrollmentIntent } from './escrow-enrollment-intent.types';
3
+ export declare const ESCROW_ENROLLMENT_INTENT_DOMAIN = "learncard-escrow-enrollment-intent-v2\0";
4
+ /** Produce the exact Rust-verified V1 message, never JSON or a prehashed signature. */
5
+ export declare const encodeEscrowEnrollmentIntent: (intent: EscrowEnrollmentIntent) => Uint8Array<ArrayBuffer>;
6
+ /** Sign with the account's 32-byte Ed25519 seed. Never needed for recovery itself.
7
+ * The caller must obtain generation/current version from an attested authority
8
+ * response and construct the exact operation it intends; signing is not consent UI.
9
+ */
10
+ export declare const signEscrowEnrollmentIntent: (intent: EscrowEnrollmentIntent, privateKey: string) => Promise<SignedEscrowEnrollmentIntent>;
11
+ /** Canonical blob identity matches Rust, including Q/-Q ECDH equivalence. */
12
+ export declare const getEscrowBlobIdentity: (input: EscrowEnvelope) => Promise<string>;
13
+ //# sourceMappingURL=escrow-enrollment-intent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow-enrollment-intent.d.ts","sourceRoot":"","sources":["../src/escrow-enrollment-intent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACR,sBAAsB,EACtB,4BAA4B,EAC/B,MAAM,kCAAkC,CAAC;AAI1C,eAAO,MAAM,+BAA+B,4CAA4C,CAAC;AAkFzF,uFAAuF;AACvF,eAAO,MAAM,4BAA4B,GACrC,QAAQ,sBAAsB,KAC/B,UAAU,CAAC,WAAW,CA8ExB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACnC,QAAQ,sBAAsB,EAC9B,YAAY,MAAM,KACnB,OAAO,CAAC,4BAA4B,CAgBtC,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,GAAU,OAAO,cAAc,KAAG,OAAO,CAAC,MAAM,CAiCjF,CAAC"}
@@ -0,0 +1,28 @@
1
+ /** V2 owner authorization, distinct from authentication and from recovery. */
2
+ export interface EscrowEnrollmentIntent {
3
+ version: 2;
4
+ tenant: string;
5
+ did: string;
6
+ authorityGeneration: string;
7
+ expectedEnrollmentVersion: number;
8
+ action: 'enroll' | 'replace' | 'disable' | 'carry';
9
+ sourceBlobIdentity: string | null;
10
+ targetBlobIdentity: string | null;
11
+ pinAction: 'set' | 'change' | 'clear' | 'keep';
12
+ shareVersion: number;
13
+ enrollmentEpoch: number;
14
+ requestId: string;
15
+ allowRewrap: boolean;
16
+ /** P9.1 (attack C): required (and must match the blob) on enroll/replace;
17
+ * must be null on disable/carry (the enclave carries the prior value forward).
18
+ * Changing the address requires a fresh signed `replace` intent, not an edit. */
19
+ recoveryEmail: string | null;
20
+ /** One of the app's compiled template languages (currently en/es/fr/ar). */
21
+ recoveryLanguage: string | null;
22
+ }
23
+ /** Signature is canonical padded standard base64 of raw Ed25519 R || S. */
24
+ export interface SignedEscrowEnrollmentIntent {
25
+ intent: EscrowEnrollmentIntent;
26
+ signature: string;
27
+ }
28
+ //# sourceMappingURL=escrow-enrollment-intent.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow-enrollment-intent.types.d.ts","sourceRoot":"","sources":["../src/escrow-enrollment-intent.types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yBAAyB,EAAE,MAAM,CAAC;IAClC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACnD,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB;;sFAEkF;IAClF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,2EAA2E;AAC3E,MAAM,WAAW,4BAA4B;IACzC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACrB"}
@@ -27,6 +27,8 @@ export declare const verifyNitroAttestationDocument: (documentB64: string, { exp
27
27
  pcrs: Record<number, string>;
28
28
  timestamp: number;
29
29
  moduleId: string;
30
+ ledgerPublicKey?: string;
31
+ measurementHash?: string;
30
32
  }>;
31
33
  export {};
32
34
  //# sourceMappingURL=escrow-nitro-attestation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"escrow-nitro-attestation.d.ts","sourceRoot":"","sources":["../src/escrow-nitro-attestation.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAS1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,MAAM,MAAM,sBAAsB,GAC5B,MAAM,GACN,MAAM,GACN,KAAK,GACL,OAAO,GACP,MAAM,GACN,WAAW,GACX,KAAK,GACL,OAAO,GACP,OAAO,GACP,WAAW,GACX,WAAW,CAAC;AAElB,6EAA6E;AAC7E,qBAAa,qBAAsB,SAAQ,KAAK;aAChB,MAAM,EAAE,sBAAsB;gBAA9B,MAAM,EAAE,sBAAsB;CAI7D;AAGD,KAAK,WAAW,GAAG,OAAO,CAAC,uBAAuB,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AA2EvE,gGAAgG;AAChG,eAAO,MAAM,8BAA8B,GACvC,aAAa,MAAM,EACnB,iCAIG;IACC,aAAa,EAAE,UAAU,CAAC;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB,KACF,OAAO,CAAC;IACP,sBAAsB,EAAE,MAAM,CAAC;IAC/B;;;qEAGiE;IACjE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;kFAC8E;IAC9E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAwJA,CAAC"}
1
+ {"version":3,"file":"escrow-nitro-attestation.d.ts","sourceRoot":"","sources":["../src/escrow-nitro-attestation.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAS1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,MAAM,MAAM,sBAAsB,GAC5B,MAAM,GACN,MAAM,GACN,KAAK,GACL,OAAO,GACP,MAAM,GACN,WAAW,GACX,KAAK,GACL,OAAO,GACP,OAAO,GACP,WAAW,GACX,WAAW,CAAC;AAElB,6EAA6E;AAC7E,qBAAa,qBAAsB,SAAQ,KAAK;aAChB,MAAM,EAAE,sBAAsB;gBAA9B,MAAM,EAAE,sBAAsB;CAI7D;AAGD,KAAK,WAAW,GAAG,OAAO,CAAC,uBAAuB,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAiFvE,gGAAgG;AAChG,eAAO,MAAM,8BAA8B,GACvC,aAAa,MAAM,EACnB,iCAIG;IACC,aAAa,EAAE,UAAU,CAAC;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB,KACF,OAAO,CAAC;IACP,sBAAsB,EAAE,MAAM,CAAC;IAC/B;;;qEAGiE;IACjE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;kFAC8E;IAC9E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CA+KA,CAAC"}
package/dist/index.d.ts CHANGED
@@ -13,7 +13,15 @@ export { EMAIL_RELAY_ALGORITHM, EMAIL_RELAY_ENVELOPE_VERSION, encryptEmailRelayP
13
13
  export type { EmailRelayBranding, EmailRelayEnvelope, EmailRelayPlaintext, } from './email-relay-crypto';
14
14
  export { ESCROW_ENVELOPE_VERSION, ESCROW_ALGORITHM, ESCROW_BLOB_INFO, ESCROW_RELEASE_INFO, ESCROW_CLIENT_KEY_ID, parseEscrowEnvelope, parseEscrowBlobPlaintext, parseEscrowReleasePlaintext, generateEscrowKeyPair, encryptEscrowBlob, decryptEscrowBlob, sealEscrowRelease, openEscrowRelease, } from './escrow-crypto';
15
15
  export type { EscrowEnvelope, EscrowBlobPlaintext, EscrowReleasePlaintext } from './escrow-crypto';
16
+ export { encodeEscrowEnrollmentIntent, signEscrowEnrollmentIntent, getEscrowBlobIdentity, ESCROW_ENROLLMENT_INTENT_DOMAIN, } from './escrow-enrollment-intent';
17
+ export type { EscrowEnrollmentIntent, SignedEscrowEnrollmentIntent, } from './escrow-enrollment-intent.types';
16
18
  export { verifyEnclaveAttestation } from './escrow-attestation';
19
+ export { EscrowEvidenceError } from './escrow-authority.types';
20
+ export type { HistoricalEscrowEvidence } from './escrow-authority.types';
21
+ export type { EscrowRecoveryExpectations } from '@learncard/types';
22
+ export { verifyEscrowAuthorityState, verifyEscrowHoldState, verifyEscrowCodeDelivery, verifyEscrowEnrollmentCommit, createEscrowEnrollmentIntent, resolveEscrowEnrollmentAction, violatesCarryContactRule, } from './escrow-authority';
23
+ export type { EscrowEnrollmentActionInput } from './escrow-authority';
24
+ export type { VerifiedEnclaveIdentity, EscrowAuthorityRecord, EscrowAuthorityState, VerifiedEscrowMutation, } from './escrow-authority.types';
17
25
  export { verifyNitroAttestationDocument, NitroAttestationError } from './escrow-nitro-attestation';
18
26
  export type { NitroAttestationReason } from './escrow-nitro-attestation';
19
27
  export type { EscrowAttestationPolicy, EscrowHoldStatus, EscrowRecoveryStart } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}