burnledger 0.4.0 → 0.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 +11 -4
- package/dist/cjs/anchor.d.ts +71 -0
- package/dist/cjs/anchor.d.ts.map +1 -0
- package/dist/cjs/anchor.js +279 -0
- package/dist/cjs/anchor.js.map +1 -0
- package/dist/cjs/client.d.ts +26 -2
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +27 -5
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/enclave-seal.d.ts +101 -0
- package/dist/cjs/enclave-seal.d.ts.map +1 -0
- package/dist/cjs/enclave-seal.js +479 -0
- package/dist/cjs/enclave-seal.js.map +1 -0
- package/dist/cjs/errors.d.ts +42 -1
- package/dist/cjs/errors.d.ts.map +1 -1
- package/dist/cjs/errors.js +44 -2
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/http.d.ts +21 -1
- package/dist/cjs/http.d.ts.map +1 -1
- package/dist/cjs/http.js +76 -12
- package/dist/cjs/http.js.map +1 -1
- package/dist/cjs/index.browser.d.ts +2 -4
- package/dist/cjs/index.browser.d.ts.map +1 -1
- package/dist/cjs/index.browser.js.map +1 -1
- package/dist/cjs/index.d.ts +16 -11
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +20 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/keys.d.ts +66 -0
- package/dist/cjs/keys.d.ts.map +1 -1
- package/dist/cjs/keys.js +128 -3
- package/dist/cjs/keys.js.map +1 -1
- package/dist/cjs/models.d.ts +41 -3
- package/dist/cjs/models.d.ts.map +1 -1
- package/dist/cjs/models.js +25 -4
- package/dist/cjs/models.js.map +1 -1
- package/dist/cjs/verify.d.ts +72 -6
- package/dist/cjs/verify.d.ts.map +1 -1
- package/dist/cjs/verify.js +392 -62
- package/dist/cjs/verify.js.map +1 -1
- package/dist/cjs/web-verifier.d.ts +54 -5
- package/dist/cjs/web-verifier.d.ts.map +1 -1
- package/dist/cjs/web-verifier.js +36 -3
- package/dist/cjs/web-verifier.js.map +1 -1
- package/dist/esm/anchor.d.ts +71 -0
- package/dist/esm/anchor.d.ts.map +1 -0
- package/dist/esm/anchor.js +275 -0
- package/dist/esm/anchor.js.map +1 -0
- package/dist/esm/cli.d.ts +45 -14
- package/dist/esm/cli.d.ts.map +1 -1
- package/dist/esm/cli.js +357 -50
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/client.d.ts +26 -2
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +27 -5
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/enclave-seal.d.ts +101 -0
- package/dist/esm/enclave-seal.d.ts.map +1 -0
- package/dist/esm/enclave-seal.js +472 -0
- package/dist/esm/enclave-seal.js.map +1 -0
- package/dist/esm/errors.d.ts +42 -1
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +43 -1
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/http.d.ts +21 -1
- package/dist/esm/http.d.ts.map +1 -1
- package/dist/esm/http.js +75 -12
- package/dist/esm/http.js.map +1 -1
- package/dist/esm/index.browser.d.ts +2 -4
- package/dist/esm/index.browser.d.ts.map +1 -1
- package/dist/esm/index.browser.js.map +1 -1
- package/dist/esm/index.d.ts +16 -11
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +11 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/keys.d.ts +66 -0
- package/dist/esm/keys.d.ts.map +1 -1
- package/dist/esm/keys.js +125 -3
- package/dist/esm/keys.js.map +1 -1
- package/dist/esm/models.d.ts +41 -3
- package/dist/esm/models.d.ts.map +1 -1
- package/dist/esm/models.js +24 -4
- package/dist/esm/models.js.map +1 -1
- package/dist/esm/verify.d.ts +72 -6
- package/dist/esm/verify.d.ts.map +1 -1
- package/dist/esm/verify.js +390 -63
- package/dist/esm/verify.js.map +1 -1
- package/dist/esm/web-verifier.d.ts +54 -5
- package/dist/esm/web-verifier.d.ts.map +1 -1
- package/dist/esm/web-verifier.js +40 -3
- package/dist/esm/web-verifier.js.map +1 -1
- package/package.json +1 -1
- package/src/anchor.ts +330 -0
- package/src/cli.ts +389 -54
- package/src/client.ts +46 -4
- package/src/enclave-seal.ts +582 -0
- package/src/errors.ts +47 -2
- package/src/http.ts +79 -12
- package/src/index.browser.ts +2 -2
- package/src/index.ts +28 -9
- package/src/keys.ts +176 -3
- package/src/models.ts +72 -7
- package/src/verify.ts +467 -72
- package/src/web-verifier.ts +58 -5
package/dist/cjs/keys.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Public-key file parsing shared by the CLI
|
|
2
|
+
// Public-key file parsing shared by the CLI and the browser verifier, and the
|
|
3
|
+
// key_list.v3 verdict (ADR-017 §5a) — unit-testable in isolation.
|
|
3
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.KEY_LIST_SIGNING_KEY_ABSENT = exports.KEY_LIST_STALE = exports.KEY_LIST_INVALID_SIGNATURE = exports.KEY_LIST_SIGNING_KEY_UNUSABLE = exports.KEY_LIST_MALFORMED = exports.KEY_LIST_VALID = void 0;
|
|
4
6
|
exports.parseKeyEntries = parseKeyEntries;
|
|
7
|
+
exports.parseKeyListDocument = parseKeyListDocument;
|
|
8
|
+
exports.verifyKeyList = verifyKeyList;
|
|
9
|
+
const verify_js_1 = require("./verify.js");
|
|
5
10
|
/**
|
|
6
11
|
* Normalize a parsed keys file to an array of key entries. Accepts a bare
|
|
7
12
|
* JSON array (the generated keys.json shape), a { "keys": [...] } envelope,
|
|
@@ -9,11 +14,131 @@ exports.parseKeyEntries = parseKeyEntries;
|
|
|
9
14
|
* actually publishes. Throws on any other shape.
|
|
10
15
|
*/
|
|
11
16
|
function parseKeyEntries(parsed) {
|
|
17
|
+
return parseKeyListDocument(parsed).keys;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Read a published key set in any shape this project has ever served — a bare
|
|
21
|
+
* array, a {"keys": [...]} object, or either inside the API's {"data": ...}
|
|
22
|
+
* envelope — keeping the statement fields when the object forms carry them.
|
|
23
|
+
* Mirrors core.ParseKeyListDocument, so this CLI, the Go CLI and the browser
|
|
24
|
+
* cannot disagree about which files are key sets.
|
|
25
|
+
*/
|
|
26
|
+
function parseKeyListDocument(parsed) {
|
|
12
27
|
const root = parsed?.data ?? parsed;
|
|
13
|
-
|
|
28
|
+
if (Array.isArray(root))
|
|
29
|
+
return { keys: root };
|
|
30
|
+
const entries = root?.keys;
|
|
14
31
|
if (!Array.isArray(entries)) {
|
|
15
32
|
throw new Error('--keys file must be a JSON array of keys or a {"keys": [...]} object');
|
|
16
33
|
}
|
|
17
|
-
return
|
|
34
|
+
return root;
|
|
35
|
+
}
|
|
36
|
+
/** Verdicts about a key list. Mirrors core.KeyListResult, plus the one the CLI
|
|
37
|
+
* adds (SIGNING_KEY_NOT_IN_LIST) because core never reaches it: VerifyKeyList
|
|
38
|
+
* is told which key to trust, and this is the case where there is none to offer. */
|
|
39
|
+
exports.KEY_LIST_VALID = "VALID";
|
|
40
|
+
exports.KEY_LIST_MALFORMED = "MALFORMED_KEY_LIST";
|
|
41
|
+
exports.KEY_LIST_SIGNING_KEY_UNUSABLE = "KEY_LIST_SIGNING_KEY_UNUSABLE";
|
|
42
|
+
exports.KEY_LIST_INVALID_SIGNATURE = "INVALID_KEY_LIST_SIGNATURE";
|
|
43
|
+
exports.KEY_LIST_STALE = "KEY_LIST_STALE";
|
|
44
|
+
exports.KEY_LIST_SIGNING_KEY_ABSENT = "SIGNING_KEY_NOT_IN_LIST";
|
|
45
|
+
/** The whole-second RFC 3339 form every published key date uses
|
|
46
|
+
* (core.KeyTimeFormat). Entry dates are validated against it strictly, as
|
|
47
|
+
* core.KeyEntry.PublicKeyInfo does, so a date Go refuses is refused here. */
|
|
48
|
+
const KEY_TIME_RE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/;
|
|
49
|
+
function requireKeyTime(keyId, field, value) {
|
|
50
|
+
if (typeof value !== "string" || !KEY_TIME_RE.test(value)) {
|
|
51
|
+
throw new Error(`key ${keyId}: ${field} is not YYYY-MM-DDTHH:MM:SSZ`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function requireHex(field, value, bytes) {
|
|
55
|
+
if (typeof value !== "string" || value.length !== bytes * 2 || !/^[0-9a-fA-F]+$/.test(value)) {
|
|
56
|
+
throw new Error(`key list: ${field} is not ${bytes} bytes of hex`);
|
|
57
|
+
}
|
|
58
|
+
return (0, verify_js_1.hexToBytes)(value);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Check a key-list statement the way cmd/cli/keys.go does, so four verifiers
|
|
62
|
+
* agree: the trusted key is looked up IN THE LIST ITSELF (trust-on-first-use,
|
|
63
|
+
* and selfSigned says so), then core.VerifyKeyList's order — the list parses
|
|
64
|
+
* and has no duplicate, the signing key is usable at `now` under ADR-017's
|
|
65
|
+
* table, the signature verifies over the published entries, and only then
|
|
66
|
+
* freshness. A stale verdict is never returned for a signature never tested.
|
|
67
|
+
*
|
|
68
|
+
* THROWS where the Go CLI exits 2: an entry that does not parse, a key_id that
|
|
69
|
+
* is not sha256(public_key), or a statement whose fields will not read. Someone
|
|
70
|
+
* signed something the reader cannot read, and continuing as though the file
|
|
71
|
+
* were merely unsigned would throw that fact away.
|
|
72
|
+
*/
|
|
73
|
+
async function verifyKeyList(crypto, doc, now) {
|
|
74
|
+
if (doc.keys.length === 0)
|
|
75
|
+
throw new Error("keys file contains no keys");
|
|
76
|
+
const signed = doc.signature !== undefined && doc.signature !== "";
|
|
77
|
+
const keys = new Map();
|
|
78
|
+
let duplicate = false;
|
|
79
|
+
for (const e of doc.keys) {
|
|
80
|
+
if (typeof e.public_key !== "string")
|
|
81
|
+
throw new Error(`key ${e.key_id}: public_key is not a string`);
|
|
82
|
+
const pki = await (0, verify_js_1.publicKeyFromHex)(crypto, e.public_key, {
|
|
83
|
+
keyStatus: e.key_status,
|
|
84
|
+
notBefore: e.not_before,
|
|
85
|
+
notAfter: e.not_after ?? undefined,
|
|
86
|
+
compromisedFrom: e.compromised_from ?? undefined,
|
|
87
|
+
});
|
|
88
|
+
// The strict Go loader rules — key_id is sha256(public_key), dates are
|
|
89
|
+
// whole-second UTC — apply to a SIGNED list, whose statement signs the
|
|
90
|
+
// published strings. An unsigned list keeps this CLI's existing
|
|
91
|
+
// tolerance (an absent key_id is allowed, and the map is keyed on the
|
|
92
|
+
// derived id either way); tightening the unsigned path would refuse files
|
|
93
|
+
// it accepts today.
|
|
94
|
+
if (signed) {
|
|
95
|
+
if (e.key_id !== pki.keyId) {
|
|
96
|
+
throw new Error(`key_id ${e.key_id} does not match sha256(public_key) (${pki.keyId})`);
|
|
97
|
+
}
|
|
98
|
+
if (e.not_before != null && e.not_before !== "")
|
|
99
|
+
requireKeyTime(e.key_id, "not_before", e.not_before);
|
|
100
|
+
if (e.not_after != null)
|
|
101
|
+
requireKeyTime(e.key_id, "not_after", e.not_after);
|
|
102
|
+
if (e.compromised_from != null)
|
|
103
|
+
requireKeyTime(e.key_id, "compromised_from", e.compromised_from);
|
|
104
|
+
}
|
|
105
|
+
if (keys.has(pki.keyId))
|
|
106
|
+
duplicate = true;
|
|
107
|
+
keys.set(pki.keyId, pki);
|
|
108
|
+
}
|
|
109
|
+
if (!signed) {
|
|
110
|
+
return { present: false, selfSigned: false };
|
|
111
|
+
}
|
|
112
|
+
// The statement's own fields. Refused rather than defaulted: a zero
|
|
113
|
+
// statement_expires_at would read as "expired", which is an answer.
|
|
114
|
+
requireHex("sth_root_hash", doc.sth_root_hash, 32);
|
|
115
|
+
const signature = requireHex("signature", doc.signature, 64);
|
|
116
|
+
if (typeof doc.key_id !== "string" || doc.key_id === "")
|
|
117
|
+
throw new Error("key list: key_id is missing");
|
|
118
|
+
if (typeof doc.sth_tree_size !== "number" || !Number.isInteger(doc.sth_tree_size) || doc.sth_tree_size < 0) {
|
|
119
|
+
throw new Error("key list: sth_tree_size is not a non-negative integer");
|
|
120
|
+
}
|
|
121
|
+
const issued = (0, verify_js_1.formatTimestamp)(doc.statement_issued_at);
|
|
122
|
+
const expires = (0, verify_js_1.formatTimestamp)(doc.statement_expires_at);
|
|
123
|
+
const evidence = { present: true, selfSigned: false, expiresAt: expires };
|
|
124
|
+
const signingKey = keys.get(doc.key_id);
|
|
125
|
+
if (signingKey === undefined) {
|
|
126
|
+
return { ...evidence, result: exports.KEY_LIST_SIGNING_KEY_ABSENT };
|
|
127
|
+
}
|
|
128
|
+
evidence.selfSigned = true;
|
|
129
|
+
if (duplicate)
|
|
130
|
+
return { ...evidence, result: exports.KEY_LIST_MALFORMED };
|
|
131
|
+
const at = (0, verify_js_1.formatTimestamp)(now.toISOString());
|
|
132
|
+
if (!(0, verify_js_1.keyIsUsable)((0, verify_js_1.evaluateKey)(signingKey, Math.floor(Date.parse(at) / 1000)))) {
|
|
133
|
+
return { ...evidence, result: exports.KEY_LIST_SIGNING_KEY_UNUSABLE };
|
|
134
|
+
}
|
|
135
|
+
const payload = (0, verify_js_1.buildKeyListPayload)(doc);
|
|
136
|
+
if (!(await crypto.ed25519Verify(signingKey.keyBytes, payload, signature))) {
|
|
137
|
+
return { ...evidence, result: exports.KEY_LIST_INVALID_SIGNATURE };
|
|
138
|
+
}
|
|
139
|
+
if (at < issued || at >= expires) {
|
|
140
|
+
return { ...evidence, result: exports.KEY_LIST_STALE };
|
|
141
|
+
}
|
|
142
|
+
return { ...evidence, result: exports.KEY_LIST_VALID };
|
|
18
143
|
}
|
|
19
144
|
//# sourceMappingURL=keys.js.map
|
package/dist/cjs/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/keys.ts"],"names":[],"mappings":";AAAA,8EAA8E
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/keys.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/models.d.ts
CHANGED
|
@@ -94,6 +94,13 @@ export interface CertificateResponse {
|
|
|
94
94
|
readonly revokedAt: Date | undefined;
|
|
95
95
|
readonly revocationReason: string | undefined;
|
|
96
96
|
readonly certificate: Record<string, unknown>;
|
|
97
|
+
/**
|
|
98
|
+
* Raw enclave-signed status statement stapled by the server. Best-effort on
|
|
99
|
+
* the server side, so undefined when it could not be produced; GET
|
|
100
|
+
* /v1/certificates/{id}/status is the call that errors instead. Kept raw so
|
|
101
|
+
* it can be handed straight to verifyCertificateWithStatus().
|
|
102
|
+
*/
|
|
103
|
+
readonly statusStatement: Record<string, unknown> | undefined;
|
|
97
104
|
}
|
|
98
105
|
export interface RevocationStatus {
|
|
99
106
|
readonly certificateId: string;
|
|
@@ -142,6 +149,9 @@ export interface Profile {
|
|
|
142
149
|
readonly id: string;
|
|
143
150
|
readonly name: string;
|
|
144
151
|
readonly email: string;
|
|
152
|
+
/** A new address waiting for the code mailed to it; `email` stays the
|
|
153
|
+
* current one until the change is confirmed from the dashboard. */
|
|
154
|
+
readonly pendingEmail: string | undefined;
|
|
145
155
|
readonly plan: string;
|
|
146
156
|
readonly planStartedAt: string | undefined;
|
|
147
157
|
readonly createdAt: string;
|
|
@@ -149,16 +159,37 @@ export interface Profile {
|
|
|
149
159
|
}
|
|
150
160
|
export interface SystemHealth {
|
|
151
161
|
readonly systemId: string;
|
|
152
|
-
readonly
|
|
153
|
-
readonly
|
|
154
|
-
readonly
|
|
162
|
+
readonly healthStatus: HealthStatus;
|
|
163
|
+
readonly healthCheckedAt: Date | undefined;
|
|
164
|
+
readonly healthError: string | undefined;
|
|
155
165
|
}
|
|
156
166
|
export interface BatchAttestationResponse {
|
|
157
167
|
readonly attestations: readonly Attestation[];
|
|
158
168
|
readonly errors: readonly BatchAttestationError[];
|
|
159
169
|
}
|
|
160
170
|
export interface BatchAttestationError {
|
|
171
|
+
/** Position in the submitted subjectIdentifiers list. index is the durable
|
|
172
|
+
* key: subjectIdentifier is verbatim on the live response, but a replayed
|
|
173
|
+
* (Idempotency-Key) response carries a "sha256:<hex>" placeholder instead,
|
|
174
|
+
* because the cached copy never holds a raw identifier (PRIV-2). Do not key
|
|
175
|
+
* a retry on it after a replay. */
|
|
176
|
+
readonly index: number;
|
|
177
|
+
readonly error: string;
|
|
161
178
|
readonly subjectIdentifier: string;
|
|
179
|
+
}
|
|
180
|
+
/** Result of POST /v1/certificates/batch-revoke. The server answers 200
|
|
181
|
+
* whether all, some or none of the ids were revoked; `errors` is the only
|
|
182
|
+
* signal of partial completion. The records in `certificates` never carry a
|
|
183
|
+
* `statusStatement` (revoking invalidates the cached one). */
|
|
184
|
+
export interface BatchRevokeResponse {
|
|
185
|
+
readonly certificates: readonly CertificateResponse[];
|
|
186
|
+
readonly errors: readonly BatchRevokeError[];
|
|
187
|
+
}
|
|
188
|
+
export interface BatchRevokeError {
|
|
189
|
+
/** Position in the submitted certificateIds list. */
|
|
190
|
+
readonly index: number;
|
|
191
|
+
readonly certificateId: string;
|
|
192
|
+
/** Code and message, e.g. "NOT_FOUND: certificate not found". */
|
|
162
193
|
readonly error: string;
|
|
163
194
|
}
|
|
164
195
|
export interface MonthlyCount {
|
|
@@ -180,6 +211,7 @@ export interface WebhookRotateResponse {
|
|
|
180
211
|
readonly id: string;
|
|
181
212
|
readonly url: string;
|
|
182
213
|
readonly newSecret: string;
|
|
214
|
+
readonly rotationExpiresAt: Date | undefined;
|
|
183
215
|
}
|
|
184
216
|
export interface WebhookDelivery {
|
|
185
217
|
readonly id: string;
|
|
@@ -187,6 +219,7 @@ export interface WebhookDelivery {
|
|
|
187
219
|
readonly eventType: string;
|
|
188
220
|
readonly errorMessage: string;
|
|
189
221
|
readonly attempts: number;
|
|
222
|
+
readonly nextAttemptAt: Date | undefined;
|
|
190
223
|
readonly createdAt: Date;
|
|
191
224
|
}
|
|
192
225
|
export type ApiKeyRole = "read_only" | "read_write";
|
|
@@ -194,6 +227,8 @@ export interface ApiKeyListItem {
|
|
|
194
227
|
readonly id: string;
|
|
195
228
|
readonly prefix: string;
|
|
196
229
|
readonly role: ApiKeyRole;
|
|
230
|
+
/** The team the key is pinned to; undefined for an unpinned key. */
|
|
231
|
+
readonly teamId: string | undefined;
|
|
197
232
|
readonly createdAt: Date;
|
|
198
233
|
readonly revokedAt: Date | undefined;
|
|
199
234
|
}
|
|
@@ -201,6 +236,8 @@ export interface ApiKeyResponse {
|
|
|
201
236
|
readonly id: string;
|
|
202
237
|
readonly prefix: string;
|
|
203
238
|
readonly key: string;
|
|
239
|
+
/** The team the key is pinned to; undefined for an unpinned key. */
|
|
240
|
+
readonly teamId: string | undefined;
|
|
204
241
|
readonly createdAt: Date;
|
|
205
242
|
}
|
|
206
243
|
type Raw = Record<string, any>;
|
|
@@ -215,6 +252,7 @@ export declare function parseLogEntry(d: Raw): LogEntry;
|
|
|
215
252
|
export declare function parseInclusionProof(d: Raw): InclusionProof;
|
|
216
253
|
export declare function parseConsistencyProof(d: Raw): ConsistencyProof;
|
|
217
254
|
export declare function parseBatchAttestationResponse(d: Raw): BatchAttestationResponse;
|
|
255
|
+
export declare function parseBatchRevokeResponse(d: Raw): BatchRevokeResponse;
|
|
218
256
|
export declare function parseCertificateStats(d: Raw): CertificateStats;
|
|
219
257
|
export declare function parseWebhookRotateResponse(d: Raw): WebhookRotateResponse;
|
|
220
258
|
export declare function parseWebhookDelivery(d: Raw): WebhookDelivery;
|
package/dist/cjs/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/models.js
CHANGED
|
@@ -16,6 +16,7 @@ exports.parseLogEntry = parseLogEntry;
|
|
|
16
16
|
exports.parseInclusionProof = parseInclusionProof;
|
|
17
17
|
exports.parseConsistencyProof = parseConsistencyProof;
|
|
18
18
|
exports.parseBatchAttestationResponse = parseBatchAttestationResponse;
|
|
19
|
+
exports.parseBatchRevokeResponse = parseBatchRevokeResponse;
|
|
19
20
|
exports.parseCertificateStats = parseCertificateStats;
|
|
20
21
|
exports.parseWebhookRotateResponse = parseWebhookRotateResponse;
|
|
21
22
|
exports.parseWebhookDelivery = parseWebhookDelivery;
|
|
@@ -107,6 +108,7 @@ function parseCertificateResponse(d) {
|
|
|
107
108
|
revokedAt: parseDtOpt(d.revoked_at),
|
|
108
109
|
revocationReason: d.revocation_reason ?? undefined,
|
|
109
110
|
certificate: d.certificate,
|
|
111
|
+
statusStatement: d.status_statement ?? undefined,
|
|
110
112
|
};
|
|
111
113
|
}
|
|
112
114
|
function parseRevocationStatus(d) {
|
|
@@ -159,8 +161,9 @@ function parseConsistencyProof(d) {
|
|
|
159
161
|
}
|
|
160
162
|
function parseBatchAttestationError(d) {
|
|
161
163
|
return {
|
|
162
|
-
|
|
164
|
+
index: d.index,
|
|
163
165
|
error: d.error,
|
|
166
|
+
subjectIdentifier: d.subject_identifier ?? "",
|
|
164
167
|
};
|
|
165
168
|
}
|
|
166
169
|
function parseBatchAttestationResponse(d) {
|
|
@@ -169,6 +172,19 @@ function parseBatchAttestationResponse(d) {
|
|
|
169
172
|
errors: (d.errors ?? []).map(parseBatchAttestationError),
|
|
170
173
|
};
|
|
171
174
|
}
|
|
175
|
+
function parseBatchRevokeError(d) {
|
|
176
|
+
return {
|
|
177
|
+
index: d.index,
|
|
178
|
+
certificateId: d.certificate_id,
|
|
179
|
+
error: d.error,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
function parseBatchRevokeResponse(d) {
|
|
183
|
+
return {
|
|
184
|
+
certificates: (d.certificates ?? []).map(parseCertificateResponse),
|
|
185
|
+
errors: (d.errors ?? []).map(parseBatchRevokeError),
|
|
186
|
+
};
|
|
187
|
+
}
|
|
172
188
|
function parseMonthlyCount(d) {
|
|
173
189
|
return {
|
|
174
190
|
month: d.month,
|
|
@@ -192,6 +208,7 @@ function parseWebhookRotateResponse(d) {
|
|
|
192
208
|
id: d.id,
|
|
193
209
|
url: d.url,
|
|
194
210
|
newSecret: d.new_secret,
|
|
211
|
+
rotationExpiresAt: parseDtOpt(d.rotation_expires_at),
|
|
195
212
|
};
|
|
196
213
|
}
|
|
197
214
|
function parseWebhookDelivery(d) {
|
|
@@ -201,6 +218,7 @@ function parseWebhookDelivery(d) {
|
|
|
201
218
|
eventType: d.event_type,
|
|
202
219
|
errorMessage: d.error_message,
|
|
203
220
|
attempts: d.attempts,
|
|
221
|
+
nextAttemptAt: parseDtOpt(d.next_attempt_at),
|
|
204
222
|
createdAt: parseDt(d.created_at),
|
|
205
223
|
};
|
|
206
224
|
}
|
|
@@ -209,6 +227,7 @@ function parseApiKeyListItem(d) {
|
|
|
209
227
|
id: d.id,
|
|
210
228
|
prefix: d.prefix,
|
|
211
229
|
role: d.role,
|
|
230
|
+
teamId: d.team_id ?? undefined,
|
|
212
231
|
createdAt: parseDt(d.created_at),
|
|
213
232
|
revokedAt: parseDtOpt(d.revoked_at),
|
|
214
233
|
};
|
|
@@ -218,6 +237,7 @@ function parseApiKeyResponse(d) {
|
|
|
218
237
|
id: d.id,
|
|
219
238
|
prefix: d.prefix,
|
|
220
239
|
key: d.key,
|
|
240
|
+
teamId: d.team_id ?? undefined,
|
|
221
241
|
createdAt: parseDt(d.created_at),
|
|
222
242
|
};
|
|
223
243
|
}
|
|
@@ -238,6 +258,7 @@ function parseProfile(d) {
|
|
|
238
258
|
id: d.id,
|
|
239
259
|
name: d.name,
|
|
240
260
|
email: d.email,
|
|
261
|
+
pendingEmail: d.pending_email ?? undefined,
|
|
241
262
|
plan: d.plan,
|
|
242
263
|
planStartedAt: d.plan_started_at ?? undefined,
|
|
243
264
|
createdAt: d.created_at,
|
|
@@ -247,9 +268,9 @@ function parseProfile(d) {
|
|
|
247
268
|
function parseSystemHealth(d) {
|
|
248
269
|
return {
|
|
249
270
|
systemId: d.system_id,
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
271
|
+
healthStatus: (d.health_status ?? "UNKNOWN"),
|
|
272
|
+
healthCheckedAt: parseDtOpt(d.health_checked_at),
|
|
273
|
+
healthError: d.health_error ?? undefined,
|
|
253
274
|
};
|
|
254
275
|
}
|
|
255
276
|
//# sourceMappingURL=models.js.map
|
package/dist/cjs/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":";AAAA;;;;GAIG
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/verify.d.ts
CHANGED
|
@@ -17,6 +17,17 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import type { CryptoOps } from "./crypto.js";
|
|
19
19
|
import type { TransparencyResult, VerificationResult } from "./models.js";
|
|
20
|
+
/**
|
|
21
|
+
* Every format this build can read, oldest first. Mirrors core.FormatVersions()
|
|
22
|
+
* in the Go source; the cross-language conformance corpus carries a fixture per
|
|
23
|
+
* version, so a version present in one language and missing here fails there.
|
|
24
|
+
*
|
|
25
|
+
* Frozen because `readonly` is erased at build time: it stops a TypeScript
|
|
26
|
+
* caller from writing to the array, and does nothing at all to the JavaScript
|
|
27
|
+
* this compiles to — which is what the browser bundle actually runs, where any
|
|
28
|
+
* script on the page could otherwise push a version onto it.
|
|
29
|
+
*/
|
|
30
|
+
export declare const KNOWN_FORMAT_VERSIONS: readonly string[];
|
|
20
31
|
export declare function hexToBytes(hex: string): Uint8Array;
|
|
21
32
|
export declare function bytesToHex(bytes: Uint8Array): string;
|
|
22
33
|
/** A signing key's disposition (ADR-017 §1).
|
|
@@ -43,18 +54,36 @@ export interface PublicKeyInfo {
|
|
|
43
54
|
* fail-closed behaviour it always did. */
|
|
44
55
|
readonly revoked: boolean;
|
|
45
56
|
}
|
|
46
|
-
|
|
57
|
+
/**
|
|
58
|
+
* The options publicKeyFromHex accepts, mirroring one entry of the published key
|
|
59
|
+
* set at `/.well-known/burnledger-keys`.
|
|
60
|
+
*
|
|
61
|
+
* Named, and exported, because it is restated by every entry point that wraps
|
|
62
|
+
* publicKeyFromHex — index.ts, index.browser.ts, web-verifier.ts. When the
|
|
63
|
+
* ADR-017 fields were added, two of the three were widened and the browser entry
|
|
64
|
+
* was not, so the dashboard could not express a compromised key through the API
|
|
65
|
+
* it imports and every key it built looked unconditionally active. A shared type
|
|
66
|
+
* is what stops the next field from being added to two places out of three.
|
|
67
|
+
*/
|
|
68
|
+
export interface PublicKeyOptions {
|
|
69
|
+
/** @deprecated Use keyStatus. Retained: true still means "unusable". */
|
|
47
70
|
revoked?: boolean;
|
|
48
71
|
keyStatus?: string;
|
|
49
72
|
notBefore?: string;
|
|
50
73
|
notAfter?: string;
|
|
51
74
|
compromisedFrom?: string;
|
|
52
|
-
}
|
|
75
|
+
}
|
|
76
|
+
export declare function publicKeyFromHex(crypto: CryptoOps, hexKey: string, opts?: PublicKeyOptions): Promise<PublicKeyInfo>;
|
|
53
77
|
/** Verdicts for the key check (ADR-017 §2). */
|
|
54
78
|
export declare const KEY_OUTSIDE_VALIDITY = "KEY_OUTSIDE_VALIDITY";
|
|
55
79
|
export declare const KEY_COMPROMISED = "KEY_COMPROMISED";
|
|
56
80
|
export declare const VALID_KEY_COMPROMISED_LATER = "VALID_KEY_COMPROMISED_LATER";
|
|
57
81
|
export declare const VALID_KEY_WINDOW_UNKNOWN = "VALID_KEY_WINDOW_UNKNOWN";
|
|
82
|
+
/** Whether a key verdict permits relying on a signature. Mirrors
|
|
83
|
+
* core.KeyIsUsable; exported so the key-list verifier (keys.ts) refuses the
|
|
84
|
+
* same set requireUsableKey refuses rather than keeping a second copy of it —
|
|
85
|
+
* a second copy is exactly how #684's fourth answer came to exist. */
|
|
86
|
+
export declare function keyIsUsable(verdict: string): boolean;
|
|
58
87
|
/** Whether a key was authorized to sign at anchor time `t`.
|
|
59
88
|
*
|
|
60
89
|
* Returns `"VALID"` when the key clears. The anchor is seconds since the epoch
|
|
@@ -68,7 +97,17 @@ export declare const VALID_KEY_WINDOW_UNKNOWN = "VALID_KEY_WINDOW_UNKNOWN";
|
|
|
68
97
|
* without an anchor we cannot show the signature predates the compromise.
|
|
69
98
|
*/
|
|
70
99
|
export declare function evaluateKey(pki: PublicKeyInfo, anchor: number | null): string;
|
|
71
|
-
/**
|
|
100
|
+
/**
|
|
101
|
+
* The anchor a certificate supplies, or null when it supplies none.
|
|
102
|
+
*
|
|
103
|
+
* READS AN UNSIGNED FIELD. `transparency` is stripped before signing, so on a
|
|
104
|
+
* certificate handed to a verifier the timestamp is holder-editable. Use
|
|
105
|
+
* {@link verifiedCertificateAnchor} anywhere the anchor decides whether a key
|
|
106
|
+
* may be relied on; this is safe only where the same timestamp is inside a
|
|
107
|
+
* payload the caller goes on to verify, which is what verifyTransparency does.
|
|
108
|
+
*
|
|
109
|
+
* Exported and unchanged because it is published API.
|
|
110
|
+
*/
|
|
72
111
|
export declare function certificateAnchor(certificate: Record<string, unknown>): number | null;
|
|
73
112
|
type Cert = Record<string, unknown>;
|
|
74
113
|
/** Verify all signatures on a deletion certificate offline. */
|
|
@@ -108,6 +147,20 @@ export declare function issuanceBytes(certificate: Cert): Uint8Array;
|
|
|
108
147
|
* is not part of the published package surface.
|
|
109
148
|
*/
|
|
110
149
|
export declare function formatTimestamp(ts: unknown): string;
|
|
150
|
+
/**
|
|
151
|
+
* Port of Go's BuildTreeHeadPayload.
|
|
152
|
+
*
|
|
153
|
+
* A head that names its log is signed in a DIFFERENT DOMAIN from one that does
|
|
154
|
+
* not (Q31). That is what makes log_id unstrippable: removing it moves the
|
|
155
|
+
* rebuild into burnledger.sth.v3 and adding one moves it into
|
|
156
|
+
* burnledger.sth.v7, and the signature fails either way. Heads signed before
|
|
157
|
+
* log ids existed carry none and reproduce exactly the bytes they always did.
|
|
158
|
+
*
|
|
159
|
+
* Exported for anchor.ts, which rebuilds the preimage of a head fetched from
|
|
160
|
+
* GET /v1/log/head. Not re-exported from index.ts: it is an internal seam
|
|
161
|
+
* between two modules of this package, not published surface.
|
|
162
|
+
*/
|
|
163
|
+
export declare function buildTreeHeadPayload(head: Record<string, unknown>): Uint8Array;
|
|
111
164
|
/** Verify a Merkle consistency proof (RFC 6962 Section 2.1.4).
|
|
112
165
|
*
|
|
113
166
|
* Port of Go's VerifyConsistency / Python's _verify_consistency.
|
|
@@ -121,6 +174,18 @@ export declare function verifyConsistency(crypto: CryptoOps, oldSize: number, ne
|
|
|
121
174
|
* genuine statement.
|
|
122
175
|
*/
|
|
123
176
|
export declare function buildCertificateStatusPayload(stmt: Record<string, unknown>): Uint8Array;
|
|
177
|
+
/**
|
|
178
|
+
* Port of Go's BuildKeyListPayload (core/key_list.go).
|
|
179
|
+
*
|
|
180
|
+
* The key array is sorted by key_id before signing: canonical JSON sorts
|
|
181
|
+
* object keys but does nothing to array order, and the server has no reason to
|
|
182
|
+
* preserve any particular order across a rotation. Optional entry fields are
|
|
183
|
+
* omitted, never emitted as null, for the reason buildCertificateStatusPayload
|
|
184
|
+
* omits them. `keys` is the array exactly as HANDED to the verifier — the
|
|
185
|
+
* signature covers the published entries, not a parsed reinterpretation of
|
|
186
|
+
* them, which is what makes an edited key_status detectable.
|
|
187
|
+
*/
|
|
188
|
+
export declare function buildKeyListPayload(doc: Record<string, unknown>): Uint8Array;
|
|
124
189
|
/** The verdict when a certificate verified but nothing said whether it was revoked. */
|
|
125
190
|
export declare const VALID_REVOCATION_UNKNOWN = "VALID_REVOCATION_UNKNOWN";
|
|
126
191
|
/**
|
|
@@ -136,10 +201,11 @@ export declare const VALID_REVOCATION_UNKNOWN = "VALID_REVOCATION_UNKNOWN";
|
|
|
136
201
|
* | input | result |
|
|
137
202
|
* |---|---|
|
|
138
203
|
* | fresh statement, REVOKED | throws VerificationError |
|
|
139
|
-
* | fresh statement, ACTIVE | `"VALID"
|
|
140
|
-
* | absent or expired statement | `"VALID_REVOCATION_UNKNOWN"
|
|
204
|
+
* | fresh statement, ACTIVE | `"VALID"`, or a soft verdict on either key |
|
|
205
|
+
* | absent or expired statement | `"VALID_REVOCATION_UNKNOWN"`, or the certificate key's soft verdict |
|
|
206
|
+
* | statement key unusable (ADR-017) | throws VerificationError |
|
|
141
207
|
*
|
|
142
|
-
* The
|
|
208
|
+
* The third row is the point: `verifyCertificate` answers VALID there, which
|
|
143
209
|
* reads as "not revoked" and is not something it checked.
|
|
144
210
|
*/
|
|
145
211
|
export declare function verifyCertificateWithStatus(crypto: CryptoOps, certificate: Cert, publicKeys: Map<string, PublicKeyInfo>, status?: Record<string, unknown> | null, now?: Date): Promise<string>;
|
package/dist/cjs/verify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AA+C1E;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAMjD,CAAC;AA6BH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CASlD;AAYD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQpD;AAoCD;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;2DAEuD;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;8CAE0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,aAAa,CAAC,CAqBxB;AAED,+CAA+C;AAC/C,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,2BAA2B,gCAAgC,CAAC;AACzE,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAoBnE;;;sEAGsE;AACtE,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAyB7E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAUrF;AAiFD,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpC,+DAA+D;AAC/D,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GACrC,OAAO,CAAC,kBAAkB,CAAC,CAyH7B;AAKD,+DAA+D;AAC/D,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GACrC,OAAO,CAAC,kBAAkB,CAAC,CAwF7B;AAMD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,IAAI,GAAG,UAAU,CAK3D;AAoFD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAMnD;AA2WD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAW9E;AAqFD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,UAAU,EAAE,GAClB,OAAO,CAAC,OAAO,CAAC,CAwDlB;AAGD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,UAAU,CAoBZ;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAqB5E;AAED,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EACtC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACvC,GAAG,CAAC,EAAE,IAAI,GACT,OAAO,CAAC,MAAM,CAAC,CA8FjB"}
|