burnledger 0.8.1 → 0.9.1
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 +144 -2
- package/dist/cjs/anchor.d.ts +5 -3
- package/dist/cjs/anchor.d.ts.map +1 -1
- package/dist/cjs/anchor.js +10 -4
- package/dist/cjs/anchor.js.map +1 -1
- package/dist/cjs/client.d.ts +95 -0
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +175 -54
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/customer-keys.d.ts +73 -1
- package/dist/cjs/customer-keys.d.ts.map +1 -1
- package/dist/cjs/customer-keys.js +329 -3
- package/dist/cjs/customer-keys.js.map +1 -1
- package/dist/cjs/enclave-registration.d.ts +165 -0
- package/dist/cjs/enclave-registration.d.ts.map +1 -0
- package/dist/cjs/enclave-registration.js +287 -0
- package/dist/cjs/enclave-registration.js.map +1 -0
- package/dist/cjs/enclave-seal.d.ts +43 -0
- package/dist/cjs/enclave-seal.d.ts.map +1 -1
- package/dist/cjs/enclave-seal.js +62 -1
- package/dist/cjs/enclave-seal.js.map +1 -1
- package/dist/cjs/errors.d.ts +10 -0
- package/dist/cjs/errors.d.ts.map +1 -1
- package/dist/cjs/errors.js +11 -1
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.browser.d.ts +7 -3
- package/dist/cjs/index.browser.d.ts.map +1 -1
- package/dist/cjs/index.browser.js +6 -3
- package/dist/cjs/index.browser.js.map +1 -1
- package/dist/cjs/index.d.ts +22 -10
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +75 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/key-group.d.ts +80 -0
- package/dist/cjs/key-group.d.ts.map +1 -0
- package/dist/cjs/key-group.js +136 -0
- package/dist/cjs/key-group.js.map +1 -0
- package/dist/cjs/models.d.ts +60 -0
- package/dist/cjs/models.d.ts.map +1 -1
- package/dist/cjs/models.js +63 -0
- package/dist/cjs/models.js.map +1 -1
- package/dist/cjs/node-runtime.d.ts +40 -0
- package/dist/cjs/node-runtime.d.ts.map +1 -0
- package/dist/cjs/node-runtime.js +42 -0
- package/dist/cjs/node-runtime.js.map +1 -0
- package/dist/cjs/status-document.d.ts +25 -0
- package/dist/cjs/status-document.d.ts.map +1 -0
- package/dist/cjs/status-document.js +62 -0
- package/dist/cjs/status-document.js.map +1 -0
- package/dist/cjs/verify.d.ts +108 -3
- package/dist/cjs/verify.d.ts.map +1 -1
- package/dist/cjs/verify.js +451 -171
- package/dist/cjs/verify.js.map +1 -1
- package/dist/cjs/web-verifier.d.ts +23 -3
- package/dist/cjs/web-verifier.d.ts.map +1 -1
- package/dist/cjs/web-verifier.js +31 -5
- package/dist/cjs/web-verifier.js.map +1 -1
- package/dist/cjs/webhooks.d.ts +9 -2
- package/dist/cjs/webhooks.d.ts.map +1 -1
- package/dist/cjs/webhooks.js +29 -11
- package/dist/cjs/webhooks.js.map +1 -1
- package/dist/esm/anchor.d.ts +5 -3
- package/dist/esm/anchor.d.ts.map +1 -1
- package/dist/esm/anchor.js +10 -4
- package/dist/esm/anchor.js.map +1 -1
- package/dist/esm/cli.d.ts +30 -17
- package/dist/esm/cli.d.ts.map +1 -1
- package/dist/esm/cli.js +142 -83
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/client.d.ts +95 -0
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +175 -21
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/customer-keys.d.ts +73 -1
- package/dist/esm/customer-keys.d.ts.map +1 -1
- package/dist/esm/customer-keys.js +323 -3
- package/dist/esm/customer-keys.js.map +1 -1
- package/dist/esm/enclave-registration.d.ts +165 -0
- package/dist/esm/enclave-registration.d.ts.map +1 -0
- package/dist/esm/enclave-registration.js +277 -0
- package/dist/esm/enclave-registration.js.map +1 -0
- package/dist/esm/enclave-seal.d.ts +43 -0
- package/dist/esm/enclave-seal.d.ts.map +1 -1
- package/dist/esm/enclave-seal.js +61 -1
- package/dist/esm/enclave-seal.js.map +1 -1
- package/dist/esm/errors.d.ts +10 -0
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +10 -0
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.browser.d.ts +7 -3
- package/dist/esm/index.browser.d.ts.map +1 -1
- package/dist/esm/index.browser.js +6 -3
- package/dist/esm/index.browser.js.map +1 -1
- package/dist/esm/index.d.ts +22 -10
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +30 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/key-group.d.ts +80 -0
- package/dist/esm/key-group.d.ts.map +1 -0
- package/dist/esm/key-group.js +130 -0
- package/dist/esm/key-group.js.map +1 -0
- package/dist/esm/models.d.ts +60 -0
- package/dist/esm/models.d.ts.map +1 -1
- package/dist/esm/models.js +59 -0
- package/dist/esm/models.js.map +1 -1
- package/dist/esm/node-runtime.d.ts +40 -0
- package/dist/esm/node-runtime.d.ts.map +1 -0
- package/dist/esm/node-runtime.js +38 -0
- package/dist/esm/node-runtime.js.map +1 -0
- package/dist/esm/status-document.d.ts +25 -0
- package/dist/esm/status-document.d.ts.map +1 -0
- package/dist/esm/status-document.js +59 -0
- package/dist/esm/status-document.js.map +1 -0
- package/dist/esm/verify.d.ts +108 -3
- package/dist/esm/verify.d.ts.map +1 -1
- package/dist/esm/verify.js +448 -171
- package/dist/esm/verify.js.map +1 -1
- package/dist/esm/web-verifier.d.ts +23 -3
- package/dist/esm/web-verifier.d.ts.map +1 -1
- package/dist/esm/web-verifier.js +27 -5
- package/dist/esm/web-verifier.js.map +1 -1
- package/dist/esm/webhooks.d.ts +9 -2
- package/dist/esm/webhooks.d.ts.map +1 -1
- package/dist/esm/webhooks.js +29 -11
- package/dist/esm/webhooks.js.map +1 -1
- package/package.json +1 -1
- package/src/anchor.ts +10 -4
- package/src/cli.ts +145 -78
- package/src/client.ts +241 -25
- package/src/customer-keys.ts +373 -3
- package/src/enclave-registration.ts +402 -0
- package/src/enclave-seal.ts +108 -1
- package/src/errors.ts +11 -0
- package/src/index.browser.ts +9 -3
- package/src/index.ts +48 -6
- package/src/key-group.ts +181 -0
- package/src/models.ts +131 -0
- package/src/node-runtime.ts +57 -0
- package/src/status-document.ts +59 -0
- package/src/verify.ts +565 -177
- package/src/web-verifier.ts +36 -3
- package/src/webhooks.ts +28 -11
package/README.md
CHANGED
|
@@ -68,12 +68,154 @@ const key = await publicKeyFromHex("abcdef...", { revoked: false });
|
|
|
68
68
|
const keys = new Map([[key.keyId, key]]);
|
|
69
69
|
|
|
70
70
|
const certResult = await verifyCertificate(certificate, keys);
|
|
71
|
-
// "VALID"
|
|
71
|
+
// "VALID" or a soft key verdict; throws VerificationError on failure
|
|
72
72
|
|
|
73
73
|
const logResult = await verifyTransparency(certificate, keys);
|
|
74
|
-
// "INCLUDED" | "
|
|
74
|
+
// "INCLUDED" | "NOT_AVAILABLE"; throws VerificationError on an invalid proof
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
+
Malformed input — a missing field, a value of the wrong JSON type, bytes that
|
|
78
|
+
are neither hex nor base64, a hash or signature of the wrong length — throws
|
|
79
|
+
`VerificationError` too, with a message naming the field
|
|
80
|
+
(`systems[0].query_hash is 31 bytes, expected 32`). A record in a format this
|
|
81
|
+
version cannot read throws it with `code === UNSUPPORTED_FORMAT_VERSION`.
|
|
82
|
+
|
|
83
|
+
### Requiring a registration
|
|
84
|
+
|
|
85
|
+
From format 9.0 every system in a record says whether the enclave checked it
|
|
86
|
+
against a registration (`authorization: certified`, with the `customer_key_id`
|
|
87
|
+
it was registered under) or not (`authorization: none`). A `none` record is
|
|
88
|
+
still genuine, and verifies by default: whoever relays requests to the enclave
|
|
89
|
+
can always leave a registration out, and the enclave cannot refuse that. What
|
|
90
|
+
nothing but you can do is refuse the record, so ask for it, naming your key id:
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
import { AUTHORIZATION_POLICY_FAILED, verifyCertificate } from "burnledger";
|
|
94
|
+
|
|
95
|
+
await verifyCertificate(certificate, keys, {
|
|
96
|
+
requireAuthorization: { customerKeyIds: ["cust_k_..."] }, // every system, your key
|
|
97
|
+
});
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
What a pass means: every required system is `certified` under a key id you
|
|
101
|
+
named, in a record from an enclave image of wire protocol 12 or later — the
|
|
102
|
+
first that registers a system only with the signatures of the key group that id
|
|
103
|
+
names. So that key group signed the registration. Earlier images, which include
|
|
104
|
+
every image that has issued format 9.0 so far, could register a system with no
|
|
105
|
+
customer signature, so a `certified` record from one of them fails the policy,
|
|
106
|
+
and so does a record that names no image. The key id is required for the same
|
|
107
|
+
reason: `certified` under a key you did not name could be under a key group the
|
|
108
|
+
relay enrolled itself.
|
|
109
|
+
|
|
110
|
+
`systems` narrows the requirement to the system ids you name. A record that does
|
|
111
|
+
not meet the policy throws `VerificationError` with
|
|
112
|
+
`code === AUTHORIZATION_POLICY_FAILED`, naming the reason. A record older than
|
|
113
|
+
9.0 always fails: nothing signs its `authorization` field.
|
|
114
|
+
`verifyCertificateWithStatus` takes the same options as its last argument, and
|
|
115
|
+
the CLI takes `--require-certified` or `--require-certified-system <system_id>`,
|
|
116
|
+
each with `--customer-key-id <id>`.
|
|
117
|
+
|
|
118
|
+
## Registering a system with your own key
|
|
119
|
+
|
|
120
|
+
ADR-025 lets a system's Verification Records say `authorization: certified`
|
|
121
|
+
with your `customer_key_id`: before measuring it, the enclave checked that the
|
|
122
|
+
system's config and query are the ones a key group *you* hold registered. That
|
|
123
|
+
holds for records from an enclave image of protocol 12 or later; the verifiers
|
|
124
|
+
say when a record comes from an earlier one, whose `certified` is not evidence.
|
|
125
|
+
All of it happens on your machine, and the SDK never holds or sends a private key.
|
|
126
|
+
Node only: ADR-025 makes a client you run locally the only place enrolment can
|
|
127
|
+
happen, so these calls are not part of the browser entry point.
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
import { BurnLedger, generateKeyGroup } from "burnledger";
|
|
131
|
+
|
|
132
|
+
// 1. A key group: n Ed25519 members, any t of which can act.
|
|
133
|
+
const { group, signers } = await generateKeyGroup({ members: 2, threshold: 1 });
|
|
134
|
+
const seeds = signers.map((s) => s.exportSeed()); // store these offline, now
|
|
135
|
+
|
|
136
|
+
const dp = new BurnLedger({ apiKey: "dp_..." });
|
|
137
|
+
|
|
138
|
+
// 2. Verify the enclave against the PCR0 you pinned out of band. Configs are
|
|
139
|
+
// sealed to it, and everything below must come back signed by its key.
|
|
140
|
+
const enclave = await dp.attestEnclaveIdentity({ expectedPcr0: PINNED_PCR0 });
|
|
141
|
+
|
|
142
|
+
// 3. Enrol the group for your team. Every member signs, over the latest the
|
|
143
|
+
// authorization may end (`notAfter`, by default the enclave's 90-day maximum).
|
|
144
|
+
await dp.enrollKeyGroup({ teamId: TEAM_ID, group, signers, enclave });
|
|
145
|
+
|
|
146
|
+
// 4. Seal the config to the enclave, create the system with only the sealed
|
|
147
|
+
// bytes, and register it, signed at the group's threshold.
|
|
148
|
+
const { system, registration } = await dp.createRegisteredSystem({
|
|
149
|
+
teamId: TEAM_ID,
|
|
150
|
+
group,
|
|
151
|
+
signers: signers.slice(0, 1),
|
|
152
|
+
enclave,
|
|
153
|
+
name: "users-db",
|
|
154
|
+
connectorType: "postgresql",
|
|
155
|
+
dsn: "postgres://...",
|
|
156
|
+
subjectQuery: "SELECT id FROM users WHERE email = $1",
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
// 5. Rotate when you must. The OUTGOING group signs at its threshold and every
|
|
160
|
+
// incoming member signs; nothing is re-registered.
|
|
161
|
+
const next = await generateKeyGroup({ members: 2, threshold: 1 });
|
|
162
|
+
await dp.rotateKeyGroup({
|
|
163
|
+
teamId: TEAM_ID,
|
|
164
|
+
previousGroup: group,
|
|
165
|
+
previousSigners: signers.slice(0, 1),
|
|
166
|
+
nextGroup: next.group,
|
|
167
|
+
nextSigners: next.signers,
|
|
168
|
+
enclave,
|
|
169
|
+
});
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**What each call checks.** The API relays every document, so each one that
|
|
173
|
+
comes back — the enrolment statement, the authorization, the registration — must
|
|
174
|
+
verify under the signing key of the enclave you attested, or the call throws
|
|
175
|
+
`VerificationError`. A relay that forged an enrolment would otherwise have you
|
|
176
|
+
believe you were registered. The key comes from your attestation, not from
|
|
177
|
+
`/.well-known/burnledger-keys`, which the same API serves. Then the enrolment
|
|
178
|
+
must name the group you hold and the team you asked for, its authorization must
|
|
179
|
+
end exactly at the `notAfter` you signed and not start in the future, so an older
|
|
180
|
+
genuine answer or another team's is refused, and the registration must name the
|
|
181
|
+
system, config and connector you signed. `verifyKeyEnrollmentStatement`,
|
|
182
|
+
`verifyTeamAuthorization` and `verifySystemRegistration` re-check a stored
|
|
183
|
+
document against the enclave key.
|
|
184
|
+
Two of the registration's signed fields are deliberately not compared. Its
|
|
185
|
+
`query_template_hash` is HashQuery over the template *after* the server
|
|
186
|
+
normalizes it, while the request signs `sha256` of the raw template, so the two
|
|
187
|
+
are not byte-equal even for an honest registration and the SDK has no normalizer
|
|
188
|
+
to reconcile them. `registered_at` is not freshness-checked either, as there is
|
|
189
|
+
no signed bound to hold it to. So a relay could hand back an older genuine
|
|
190
|
+
registration of this system, under this key and config, over a template you
|
|
191
|
+
signed for it earlier; the customer path calls the check right after its own
|
|
192
|
+
POST, which narrows that window but does not close it.
|
|
193
|
+
|
|
194
|
+
A signer is anything with a `publicKey` and an async `sign(payload)`
|
|
195
|
+
(`KeyGroupSigner`), so a member can live in an HSM, a cloud KMS or another
|
|
196
|
+
process; `InMemorySigner` is the convenience for keys on this machine. A system
|
|
197
|
+
that already exists is registered with `registerSystemWithKey`, given the exact
|
|
198
|
+
config bytes it was created with.
|
|
199
|
+
|
|
200
|
+
**What the records then say.** Every Verification Record of a registered system
|
|
201
|
+
carries `authorization: certified` and your `customer_key_id` for it, and the CLI
|
|
202
|
+
prints that key id on the system's Registration line, with what the record's
|
|
203
|
+
enclave image makes of it. A system never registered
|
|
204
|
+
says `authorization: none`. A record naming a key id that is not yours means
|
|
205
|
+
someone else authorized that verification. The authorization behind your key
|
|
206
|
+
expires; enrol the same group again before `authorization.notAfter` to renew it.
|
|
207
|
+
|
|
208
|
+
**Custody.** The private keys are yours alone: BurnLedger never sees them and
|
|
209
|
+
cannot reissue them. Lose enough members that the group can no longer reach its
|
|
210
|
+
threshold and it can neither register a system nor authorize its own rotation,
|
|
211
|
+
and there is no recovery, because an operator who could re-enrol on your behalf
|
|
212
|
+
is an operator who could mint (ADR-025 §3). The way back is a new group and
|
|
213
|
+
re-registering every system, and records before and after will name different key
|
|
214
|
+
ids, visibly. So enrol more members than the threshold and keep one offline — two
|
|
215
|
+
members, threshold one, is the simplest. A recovery-phrase format is not defined
|
|
216
|
+
yet; until it is, back up each member's 32-byte seed (`exportSeed()`) as you
|
|
217
|
+
would any credential that cannot be reissued.
|
|
218
|
+
|
|
77
219
|
## Webhook Verification
|
|
78
220
|
|
|
79
221
|
Verify incoming webhook signatures (HMAC-SHA256):
|
package/dist/cjs/anchor.d.ts
CHANGED
|
@@ -63,9 +63,11 @@ export interface AnchorResult {
|
|
|
63
63
|
* whether the anchor is consistent would hand that decision to whoever answered
|
|
64
64
|
* the HTTP request.
|
|
65
65
|
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
66
|
+
* The anchor fields are checked here, before anything is asked of the log. The
|
|
67
|
+
* /verify page passes a statement exactly as the status endpoint served it, and
|
|
68
|
+
* verifyCertificateWithStatus, which authenticated it, accepts a root spelled as
|
|
69
|
+
* hex, base64 or bytes. A root that is not hex cannot be read here and says
|
|
70
|
+
* nothing about the log either way, so the anchor is UNVERIFIED.
|
|
69
71
|
*/
|
|
70
72
|
export declare function checkStatementAnchor(crypto: CryptoOps, apiUrl: string, statement: Record<string, unknown>, key: PublicKeyInfo): Promise<AnchorResult>;
|
|
71
73
|
//# sourceMappingURL=anchor.d.ts.map
|
package/dist/cjs/anchor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/anchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQ7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;AAExE,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAC5C,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAC9C,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAcD
|
|
1
|
+
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/anchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQ7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;AAExE,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAC5C,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAC9C,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAcD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,YAAY,CAAC,CAyFvB"}
|
package/dist/cjs/anchor.js
CHANGED
|
@@ -53,9 +53,11 @@ const REQUEST_TIMEOUT_MS = 10_000;
|
|
|
53
53
|
* whether the anchor is consistent would hand that decision to whoever answered
|
|
54
54
|
* the HTTP request.
|
|
55
55
|
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
56
|
+
* The anchor fields are checked here, before anything is asked of the log. The
|
|
57
|
+
* /verify page passes a statement exactly as the status endpoint served it, and
|
|
58
|
+
* verifyCertificateWithStatus, which authenticated it, accepts a root spelled as
|
|
59
|
+
* hex, base64 or bytes. A root that is not hex cannot be read here and says
|
|
60
|
+
* nothing about the log either way, so the anchor is UNVERIFIED.
|
|
59
61
|
*/
|
|
60
62
|
async function checkStatementAnchor(crypto, apiUrl, statement, key) {
|
|
61
63
|
const treeSize = statement.sth_tree_size;
|
|
@@ -67,6 +69,10 @@ async function checkStatementAnchor(crypto, apiUrl, statement, key) {
|
|
|
67
69
|
}
|
|
68
70
|
if (treeSize === 0)
|
|
69
71
|
return unverified("the statement names no log head to anchor to");
|
|
72
|
+
const root = statement.sth_root_hash;
|
|
73
|
+
if (typeof root !== "string" || !/^[0-9a-fA-F]{64}$/.test(root)) {
|
|
74
|
+
return unverified("the statement's anchored root hash is not 32 bytes of hex");
|
|
75
|
+
}
|
|
70
76
|
let head;
|
|
71
77
|
try {
|
|
72
78
|
head = await fetchLogHead(apiUrl);
|
|
@@ -87,7 +93,7 @@ async function checkStatementAnchor(crypto, apiUrl, statement, key) {
|
|
|
87
93
|
}
|
|
88
94
|
const headSize = head.tree_size;
|
|
89
95
|
const headRoot = (0, verify_js_1.hexToBytes)(head.root_hash);
|
|
90
|
-
const statementRoot = (0, verify_js_1.hexToBytes)(
|
|
96
|
+
const statementRoot = (0, verify_js_1.hexToBytes)(root);
|
|
91
97
|
// A head SMALLER than one the same issuer signed into a statement means the
|
|
92
98
|
// log went backwards. An append-only structure cannot do that, so this needs
|
|
93
99
|
// no proof to refuse.
|
package/dist/cjs/anchor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.js","sourceRoot":"","sources":["../../src/anchor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;;;;AAGH,2CAMqB;AAkBR,QAAA,gBAAgB,GAAG,WAAW,CAAC;AAC/B,QAAA,iBAAiB,GAAG,YAAY,CAAC;AACjC,QAAA,mBAAmB,GAAG,cAAc,CAAC;AAOlD;;gFAEgF;AAChF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,CAAC;AAEnC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAOlC
|
|
1
|
+
{"version":3,"file":"anchor.js","sourceRoot":"","sources":["../../src/anchor.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/client.d.ts
CHANGED
|
@@ -4,7 +4,12 @@
|
|
|
4
4
|
* Pagination uses AsyncIterable<T> via Paginator.
|
|
5
5
|
*/
|
|
6
6
|
import type { ApiKeyListItem, ApiKeyResponse, Attestation, BatchAttestationResponse, BatchRevokeResponse, CertificateResponse, CertificateStats, ConsistencyProof, InclusionProof, LogEntry, Profile, RevocationStatus, SignedTreeHead, System, SystemHealth, VerifyResult, Webhook, WebhookDelivery, WebhookRotateResponse } from "./models.js";
|
|
7
|
+
import type { KeyEnrollmentResult, SystemRegistrationCertificate } from "./models.js";
|
|
7
8
|
import { Paginator } from "./pagination.js";
|
|
9
|
+
import type { CustomerKeyGroup } from "./customer-keys.js";
|
|
10
|
+
import type { EnclavePinOptions, RegisteredSystem } from "./enclave-registration.js";
|
|
11
|
+
import type { EnclaveIdentity } from "./enclave-seal.js";
|
|
12
|
+
import type { KeyGroupSigner } from "./key-group.js";
|
|
8
13
|
export interface BurnLedgerOptions {
|
|
9
14
|
apiKey: string;
|
|
10
15
|
baseUrl?: string;
|
|
@@ -33,6 +38,13 @@ export declare class BurnLedger {
|
|
|
33
38
|
connectionConfig?: Record<string, unknown>;
|
|
34
39
|
dsn?: string;
|
|
35
40
|
uri?: string;
|
|
41
|
+
/**
|
|
42
|
+
* The connection config already sealed to the enclave — by
|
|
43
|
+
* sealConnectionConfig, or by createRegisteredSystem, which does it for you.
|
|
44
|
+
* The API relays these bytes and cannot open them. Instead of
|
|
45
|
+
* connectionConfig/dsn/uri, never beside them.
|
|
46
|
+
*/
|
|
47
|
+
sealedConnectionConfig?: Uint8Array;
|
|
36
48
|
subjectQuery: string;
|
|
37
49
|
hashScope?: string;
|
|
38
50
|
/** The system holds data you treat as PHI. Makes the default proof mode
|
|
@@ -125,6 +137,89 @@ export declare class BurnLedger {
|
|
|
125
137
|
email: string;
|
|
126
138
|
}): Promise<Profile>;
|
|
127
139
|
deleteMe(): Promise<void>;
|
|
140
|
+
/**
|
|
141
|
+
* Verify the enclave: `GET /v1/enclave/attestation` over a 32-byte challenge
|
|
142
|
+
* drawn here (or `pin.nonce`), checked against the PCR0 you pinned out of band.
|
|
143
|
+
* Returns the keys the document binds. Throws EnclaveAttestationError on
|
|
144
|
+
* anything short of a document from the pinned image answering this challenge.
|
|
145
|
+
* Pass the result as `enclave` to the calls below: configs are sealed to it,
|
|
146
|
+
* and every document they return must verify under its signing key.
|
|
147
|
+
*/
|
|
148
|
+
attestEnclaveIdentity(pin: EnclavePinOptions): Promise<EnclaveIdentity>;
|
|
149
|
+
/**
|
|
150
|
+
* Enrol a key group for your team (ENROLL_KEY). Every member signs; the private
|
|
151
|
+
* keys stay with the signers. `notAfter` is the latest the authorization may
|
|
152
|
+
* end, signed by every member so a relayed copy of this request cannot renew
|
|
153
|
+
* it; it defaults to the enclave's 90-day maximum. Throws VerificationError
|
|
154
|
+
* unless both documents that come back verify under `enclave`'s signing key,
|
|
155
|
+
* name exactly this group — ADR-025 §2's one comparison — and your team, end
|
|
156
|
+
* exactly at `notAfter` and do not start after `now` (this machine's clock by default).
|
|
157
|
+
*/
|
|
158
|
+
enrollKeyGroup(opts: {
|
|
159
|
+
teamId: string;
|
|
160
|
+
group: CustomerKeyGroup;
|
|
161
|
+
signers: readonly KeyGroupSigner[];
|
|
162
|
+
enclave: EnclaveIdentity;
|
|
163
|
+
notAfter?: Date;
|
|
164
|
+
/** The time to judge the answer's not_before against. Defaults to now. */
|
|
165
|
+
now?: Date;
|
|
166
|
+
}): Promise<KeyEnrollmentResult>;
|
|
167
|
+
/**
|
|
168
|
+
* Replace an enrolled group with another (ROTATE_KEY). The OUTGOING group
|
|
169
|
+
* signs at its threshold and EVERY incoming member signs, over the same
|
|
170
|
+
* request and `notAfter`. Systems registered under the old group keep working
|
|
171
|
+
* through the link this issues; nothing is re-registered. The answer is checked
|
|
172
|
+
* as `enrollKeyGroup`'s is, and must also link to the outgoing group.
|
|
173
|
+
*/
|
|
174
|
+
rotateKeyGroup(opts: {
|
|
175
|
+
teamId: string;
|
|
176
|
+
previousGroup: CustomerKeyGroup;
|
|
177
|
+
previousSigners: readonly KeyGroupSigner[];
|
|
178
|
+
nextGroup: CustomerKeyGroup;
|
|
179
|
+
nextSigners: readonly KeyGroupSigner[];
|
|
180
|
+
enclave: EnclaveIdentity;
|
|
181
|
+
notAfter?: Date;
|
|
182
|
+
/** The time to judge the answer's not_before against. Defaults to now. */
|
|
183
|
+
now?: Date;
|
|
184
|
+
}): Promise<KeyEnrollmentResult>;
|
|
185
|
+
/**
|
|
186
|
+
* Register an existing system under your key group (REGISTER_SYSTEM), signed at
|
|
187
|
+
* the group's threshold. `config` must be the exact bytes submitted when the
|
|
188
|
+
* system was created, and `queryTemplate` the system's subject query exactly.
|
|
189
|
+
* The registration that comes back must verify under `enclave`'s signing key.
|
|
190
|
+
*/
|
|
191
|
+
registerSystemWithKey(opts: {
|
|
192
|
+
teamId: string;
|
|
193
|
+
group: CustomerKeyGroup;
|
|
194
|
+
signers: readonly KeyGroupSigner[];
|
|
195
|
+
enclave: EnclaveIdentity;
|
|
196
|
+
systemId: string;
|
|
197
|
+
config: Uint8Array | string;
|
|
198
|
+
queryTemplate: string;
|
|
199
|
+
connectorType: string;
|
|
200
|
+
}): Promise<SystemRegistrationCertificate>;
|
|
201
|
+
/**
|
|
202
|
+
* ADR-025's whole customer path for a new system: seal the config to `enclave`
|
|
203
|
+
* (from {@link attestEnclaveIdentity}), create the system with only the sealed
|
|
204
|
+
* bytes, and register it under your key group.
|
|
205
|
+
*/
|
|
206
|
+
createRegisteredSystem(opts: {
|
|
207
|
+
teamId: string;
|
|
208
|
+
group: CustomerKeyGroup;
|
|
209
|
+
signers: readonly KeyGroupSigner[];
|
|
210
|
+
enclave: EnclaveIdentity;
|
|
211
|
+
name: string;
|
|
212
|
+
connectorType: string;
|
|
213
|
+
connectionConfig?: Record<string, unknown>;
|
|
214
|
+
dsn?: string;
|
|
215
|
+
uri?: string;
|
|
216
|
+
subjectQuery: string;
|
|
217
|
+
hashScope?: string;
|
|
218
|
+
phiInScope?: boolean;
|
|
219
|
+
maxRecords?: number;
|
|
220
|
+
maxBytes?: number;
|
|
221
|
+
queryTimeout?: string;
|
|
222
|
+
}): Promise<RegisteredSystem>;
|
|
128
223
|
getSystemHealth(systemId: string): Promise<SystemHealth>;
|
|
129
224
|
getLogHead(): Promise<SignedTreeHead>;
|
|
130
225
|
getLogEntry(index: number): Promise<LogEntry>;
|
package/dist/cjs/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,eAAe,EACf,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAsBrB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|