attenu-guard 0.12.0 → 0.13.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.
Files changed (59) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +27 -0
  3. package/dist/cjs/audit.d.ts.map +1 -1
  4. package/dist/cjs/audit.js +45 -11
  5. package/dist/cjs/audit.js.map +1 -1
  6. package/dist/cjs/authority.d.ts.map +1 -1
  7. package/dist/cjs/authority.js +15 -9
  8. package/dist/cjs/authority.js.map +1 -1
  9. package/dist/cjs/canonical.d.ts +24 -0
  10. package/dist/cjs/canonical.d.ts.map +1 -1
  11. package/dist/cjs/canonical.js +49 -0
  12. package/dist/cjs/canonical.js.map +1 -1
  13. package/dist/cjs/ceilings.d.ts +17 -0
  14. package/dist/cjs/ceilings.d.ts.map +1 -1
  15. package/dist/cjs/ceilings.js +48 -0
  16. package/dist/cjs/ceilings.js.map +1 -1
  17. package/dist/cjs/cli.d.ts +12 -3
  18. package/dist/cjs/cli.d.ts.map +1 -1
  19. package/dist/cjs/cli.js +272 -20
  20. package/dist/cjs/cli.js.map +1 -1
  21. package/dist/cjs/display.d.ts +76 -0
  22. package/dist/cjs/display.d.ts.map +1 -0
  23. package/dist/cjs/display.js +238 -0
  24. package/dist/cjs/display.js.map +1 -0
  25. package/dist/cjs/evidence.d.ts +74 -5
  26. package/dist/cjs/evidence.d.ts.map +1 -1
  27. package/dist/cjs/evidence.js +655 -243
  28. package/dist/cjs/evidence.js.map +1 -1
  29. package/dist/cjs/version.d.ts +1 -1
  30. package/dist/cjs/version.js +1 -1
  31. package/dist/esm/audit.d.ts.map +1 -1
  32. package/dist/esm/audit.js +46 -12
  33. package/dist/esm/audit.js.map +1 -1
  34. package/dist/esm/authority.d.ts.map +1 -1
  35. package/dist/esm/authority.js +15 -9
  36. package/dist/esm/authority.js.map +1 -1
  37. package/dist/esm/canonical.d.ts +24 -0
  38. package/dist/esm/canonical.d.ts.map +1 -1
  39. package/dist/esm/canonical.js +46 -0
  40. package/dist/esm/canonical.js.map +1 -1
  41. package/dist/esm/ceilings.d.ts +17 -0
  42. package/dist/esm/ceilings.d.ts.map +1 -1
  43. package/dist/esm/ceilings.js +46 -0
  44. package/dist/esm/ceilings.js.map +1 -1
  45. package/dist/esm/cli.d.ts +12 -3
  46. package/dist/esm/cli.d.ts.map +1 -1
  47. package/dist/esm/cli.js +273 -21
  48. package/dist/esm/cli.js.map +1 -1
  49. package/dist/esm/display.d.ts +76 -0
  50. package/dist/esm/display.d.ts.map +1 -0
  51. package/dist/esm/display.js +226 -0
  52. package/dist/esm/display.js.map +1 -0
  53. package/dist/esm/evidence.d.ts +74 -5
  54. package/dist/esm/evidence.d.ts.map +1 -1
  55. package/dist/esm/evidence.js +638 -229
  56. package/dist/esm/evidence.js.map +1 -1
  57. package/dist/esm/version.d.ts +1 -1
  58. package/dist/esm/version.js +1 -1
  59. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ceilings.d.ts","sourceRoot":"","sources":["../../src/ceilings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAA0D,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC/G,OAAO,EAAE,QAAQ,EAAsB,MAAM,cAAc,CAAC;AAoB5D,wEAAwE;AACxE,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAE3C,qEAAqE;AACrE,MAAM,WAAW,OAAO;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gFAAgF;IAChF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CAAC;IAEhC;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAEhC,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAElC,qEAAqE;IACrE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE/B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,MAAM,CAAC;IAEpB,wEAAwE;IACxE,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IAE3D,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAYD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAInD;AAED,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAGjD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEnD;AAmBD,oEAAoE;AACpE,qBAAa,QAAS,YAAW,OAAO;IAG1B,QAAQ,CAAC,OAAO,EAAE,MAAM;IAFpC,QAAQ,CAAC,GAAG,cAAc;IAC1B,QAAQ,CAAC,QAAQ,UAAU;gBACN,OAAO,EAAE,MAAM;IAIpC,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ;IAY/B,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;IAIhC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAIjC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IAI9B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,QAAQ;CAGnD;AAED,wEAAwE;AACxE,qBAAa,QAAS,YAAW,OAAO;IAG1B,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAFrC,QAAQ,CAAC,GAAG,eAAe;IAC3B,QAAQ,CAAC,QAAQ,WAAW;gBACP,QAAQ,EAAE,MAAM;IAIrC,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ;IAY/B,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;IAIhC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAIjC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IAI9B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,QAAQ;CAGnD;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,SAAU,YAAW,OAAO;IAKrC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IALnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAGf,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAAM,GAAG,IAAW;IAO1C,0EAA0E;IAC1E,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAMzD,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ;IAa/B,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS;IAIjC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAIjC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IAK9B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS;CAGpD;AAED,mFAAmF;AACnF,qBAAa,UAAW,YAAW,OAAO;IAG5B,QAAQ,CAAC,KAAK,EAAE,MAAM;IAFlC,QAAQ,CAAC,GAAG,YAAY;IACxB,QAAQ,CAAC,QAAQ,YAAY;gBACR,KAAK,EAAE,MAAM;IAElC,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ;IAc/B,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU;IAKlC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAIjC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IAI9B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,UAAU;CAGrD;AAQD,uEAAuE;AACvE,qBAAa,KAAM,YAAW,OAAO;IAGjC,QAAQ,CAAC,GAAG,EAAE,MAAM;IAEpB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAJ/B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAEvB,GAAG,EAAE,MAAM,EACpB,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EACZ,KAAK,GAAE,MAAM,GAAG,IAAW;IAKtC,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ;IAY/B,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK;IAK7B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAIjC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IAM9B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK;CAOhD;AAED,6EAA6E;AAC7E,qBAAa,IAAK,YAAW,OAAO;IAGhC,QAAQ,CAAC,GAAG,EAAE,MAAM;IAEpB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAJ/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAE1B,GAAG,EAAE,MAAM,EACpB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EACf,KAAK,GAAE,MAAM,GAAG,IAAW;IAKtC,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ;IAY/B,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAK5B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAMjC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IAU9B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;CAO/C;AAED,uEAAuE;AACvE,qBAAa,MAAO,YAAW,OAAO;IAElC,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;gBAFpB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAM,GAAG,IAAW;IAGtC,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ;IAc/B,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAc9B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAIjC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IAM9B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM;CAOjD;AAQD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC;CAC5C;AAID;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAEpE;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAe,YAAW,OAAO;IAI1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IAHpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBAEnB,GAAG,EAAE,IAAI,EACA,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAM;IAKzC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ;IAShC,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc;IAIvC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAOjC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IAI9B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,cAAc;CAGzD;AAQD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAMpD"}
1
+ {"version":3,"file":"ceilings.d.ts","sourceRoot":"","sources":["../../src/ceilings.ts"],"names":[],"mappings":"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"}
@@ -19,10 +19,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.UnknownCeiling = exports.Prefix = exports.Deny = exports.Allow = exports.EgressRank = exports.CallLimit = exports.SpendCap = exports.RowLimit = void 0;
20
20
  exports.ctxFieldOf = ctxFieldOf;
21
21
  exports.describe = describe;
22
+ exports.wireKeyOf = wireKeyOf;
23
+ exports.describeInFinding = describeInFinding;
22
24
  exports.isMetered = isMetered;
23
25
  exports.registerCeiling = registerCeiling;
24
26
  exports.ceilingFromWire = ceilingFromWire;
25
27
  const canonical_js_1 = require("./canonical.js");
28
+ const display_js_1 = require("./display.js");
26
29
  const reasons_js_1 = require("./reasons.js");
27
30
  /**
28
31
  * Reject a ceiling bound whose magnitude can't survive the signing surface
@@ -64,6 +67,51 @@ function describe(ceiling) {
64
67
  return ceiling.describe();
65
68
  return `${ceiling.key}=${JSON.stringify(ceiling.toWire())}`;
66
69
  }
70
+ /**
71
+ * A ceiling's key as the wire carried it, which is what a finding names. A ceiling this build does
72
+ * not define keeps whatever its key was, null included, where its `key` property is text: the
73
+ * Python implementation prints a null key as `None`.
74
+ */
75
+ function wireKeyOf(ceiling) {
76
+ return ceiling instanceof UnknownCeiling ? (ceiling.raw["key"] ?? null) : ceiling.key;
77
+ }
78
+ /**
79
+ * A ceiling as a verifier finding prints it: `describe`'s text, with every value the bundle supplied
80
+ * printed through `shown` (display.ts), so the finding stays on one line.
81
+ *
82
+ * `describe` itself is left alone, so dashboards and `Authority.describe()` print a region called
83
+ * "São Paulo" as it is, and for values in the bare set the two agree character for character. A
84
+ * ceiling this build does not define prints the Python implementation's description of it — its key,
85
+ * `=`, and the wire object as Python prints a dict — as it is when that is printable ASCII, spaces
86
+ * included, and as escaped JSON otherwise. Same text as the Python implementation's finding.
87
+ */
88
+ function describeInFinding(ceiling) {
89
+ // A bound the wire supplied: a number prints as `describe` prints it; anything else is shown.
90
+ const bound = (v) => (typeof v === "number" ? (0, canonical_js_1.pyNumber)(v) : (0, display_js_1.shown)(v));
91
+ const members = (values) => sortByStr(values)
92
+ .map((v) => (0, display_js_1.shownText)(strOf(v), v))
93
+ .join(", ");
94
+ // By exact class, as the Python implementation matches by exact type: a subclass of a built-in
95
+ // describes itself, and is printed the way any other ceiling this build does not define is.
96
+ const kind = ceiling.constructor;
97
+ if (kind === RowLimit)
98
+ return `${(0, display_js_1.shown)(ceiling.key)}<=${bound(ceiling.maxRows)}`;
99
+ if (kind === SpendCap)
100
+ return `${(0, display_js_1.shown)(ceiling.key)}<=${bound(ceiling.maxSpend)}`;
101
+ if (kind === CallLimit)
102
+ return `${(0, display_js_1.shown)(ceiling.key)}<=${bound(ceiling.maxCalls)}`;
103
+ if (kind === EgressRank)
104
+ return `${(0, display_js_1.shown)(ceiling.key)}<=${(0, display_js_1.shown)(ceiling.level)}`;
105
+ if (kind === Allow)
106
+ return `${(0, display_js_1.shown)(ceiling.key)} in [${members(ceiling.oneOf)}]`;
107
+ if (kind === Deny)
108
+ return `${(0, display_js_1.shown)(ceiling.key)} not in [${members(ceiling.notOneOf)}]`;
109
+ if (kind === Prefix)
110
+ return `${(0, display_js_1.shown)(ceiling.key)} startswith ${(0, display_js_1.shown)(ceiling.prefix)}`;
111
+ const key = wireKeyOf(ceiling);
112
+ const text = typeof ceiling.describe === "function" ? ceiling.describe() : `${(0, display_js_1.pyStr)(key)}=${(0, display_js_1.pyRepr)(ceiling.toWire())}`;
113
+ return /^[ -~]*$/.test(text) ? text : (0, display_js_1.escaped)(text);
114
+ }
67
115
  /**
68
116
  * A METERED ceiling bounds a consumed quantity the caller must declare (rows
69
117
  * read, spend, calls) — by convention its key starts with "max_". Rank and
@@ -1 +1 @@
1
- {"version":3,"file":"ceilings.js","sourceRoot":"","sources":["../../src/ceilings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ceilings.js","sourceRoot":"","sources":["../../src/ceilings.ts"],"names":[],"mappings":"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"}
package/dist/cjs/cli.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * attenu-guard — command-line tool.
3
3
  *
4
4
  * attenu-guard verify <log.jsonl | bundle.json> [--hs256-key HEX | --pubkey HEX] [--kid KID]
5
- * [--witness-keys FILE]
5
+ * [--witness-keys FILE] [--entries]
6
6
  *
7
7
  * A `.jsonl` audit log is checked for hash-chain integrity. A bundle (the
8
8
  * output of `exportBundle`, or of the Python library's `export_bundle`) is
@@ -10,11 +10,20 @@
10
10
  * bundle alone; the signed anchor is verified when a key is given and reported
11
11
  * as "not checked" otherwise. `--witness-keys FILE` supplies the trusted witness
12
12
  * keys for a bundle carrying observer envelopes; without it every envelope fails
13
- * `envelope_unknown_witness`, and the output says which flag to pass.
13
+ * `envelope_unknown_witness`, and the output says which flag to pass. A trust-set row may carry
14
+ * `not_after`; a row expired at the time of the run is not trusted. A trust file that is not one
15
+ * (not JSON, not an array of rows, or a row the verifier refuses) is one line naming the file and,
16
+ * for a bad row, the kid.
17
+ *
18
+ * `--entries` prints, after everything else, `entries:` and one line per ledger entry: its seq,
19
+ * event, node and scope; on a bundle, its envelope state, with the observed result and the
20
+ * witness's kid when that state is witness-signed; and the checks that failed on that entry.
21
+ * Without the flag the output is unchanged.
14
22
  *
15
23
  * A ledger with zero events is reported EMPTY, not OK.
16
24
  *
17
- * Exit codes: 0 = ok, 2 = a check failed or there was nothing to check, 1 = usage.
25
+ * Exit codes: 0 = ok, 2 = a check failed, there was nothing to check, or the trust file is
26
+ * malformed, 1 = usage (a missing argument, or a file that cannot be read).
18
27
  * The output lines match the Python CLI's, so either implementation can stand in
19
28
  * for the other in a script.
20
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAqHH,wBAAgB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,MAAM,CAanE"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAoXH,wBAAgB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,MAAM,CAanE"}
package/dist/cjs/cli.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * attenu-guard — command-line tool.
4
4
  *
5
5
  * attenu-guard verify <log.jsonl | bundle.json> [--hs256-key HEX | --pubkey HEX] [--kid KID]
6
- * [--witness-keys FILE]
6
+ * [--witness-keys FILE] [--entries]
7
7
  *
8
8
  * A `.jsonl` audit log is checked for hash-chain integrity. A bundle (the
9
9
  * output of `exportBundle`, or of the Python library's `export_bundle`) is
@@ -11,11 +11,20 @@
11
11
  * bundle alone; the signed anchor is verified when a key is given and reported
12
12
  * as "not checked" otherwise. `--witness-keys FILE` supplies the trusted witness
13
13
  * keys for a bundle carrying observer envelopes; without it every envelope fails
14
- * `envelope_unknown_witness`, and the output says which flag to pass.
14
+ * `envelope_unknown_witness`, and the output says which flag to pass. A trust-set row may carry
15
+ * `not_after`; a row expired at the time of the run is not trusted. A trust file that is not one
16
+ * (not JSON, not an array of rows, or a row the verifier refuses) is one line naming the file and,
17
+ * for a bad row, the kid.
18
+ *
19
+ * `--entries` prints, after everything else, `entries:` and one line per ledger entry: its seq,
20
+ * event, node and scope; on a bundle, its envelope state, with the observed result and the
21
+ * witness's kid when that state is witness-signed; and the checks that failed on that entry.
22
+ * Without the flag the output is unchanged.
15
23
  *
16
24
  * A ledger with zero events is reported EMPTY, not OK.
17
25
  *
18
- * Exit codes: 0 = ok, 2 = a check failed or there was nothing to check, 1 = usage.
26
+ * Exit codes: 0 = ok, 2 = a check failed, there was nothing to check, or the trust file is
27
+ * malformed, 1 = usage (a missing argument, or a file that cannot be read).
19
28
  * The output lines match the Python CLI's, so either implementation can stand in
20
29
  * for the other in a script.
21
30
  */
@@ -23,6 +32,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
23
32
  exports.main = main;
24
33
  const node_fs_1 = require("node:fs");
25
34
  const audit_js_1 = require("./audit.js");
35
+ const canonical_js_1 = require("./canonical.js");
36
+ const display_js_1 = require("./display.js");
26
37
  const evidence_js_1 = require("./evidence.js");
27
38
  const wire_js_1 = require("./wire.js");
28
39
  /** The Python CLI prints the same line for the same file. */
@@ -30,41 +41,224 @@ const EMPTY = "EMPTY — no events to verify";
30
41
  const USAGE = `attenu-guard — command-line tool.
31
42
 
32
43
  attenu-guard verify <log.jsonl | bundle.json> [--hs256-key HEX | --pubkey HEX] [--kid KID]
33
- [--witness-keys FILE]
44
+ [--witness-keys FILE] [--entries]
34
45
  verify a hash-chained audit log, or an evidence bundle
35
46
  (integrity · child ⊆ parent · containment;
36
47
  --hs256-key/--pubkey checks the anchor;
37
- --witness-keys FILE supplies the trusted observer-envelope keys)
48
+ --witness-keys FILE supplies the trusted observer-envelope keys;
49
+ --entries adds one line per entry: its envelope state and the checks that failed on it;
50
+ a line is key=value tokens split by single spaces, the key before the first "=",
51
+ and a value never contains a space; one that starts with " is a JSON string)
38
52
  `;
53
+ /** A `--witness-keys` file that was read and is not a trust set. The message says why. */
54
+ class NotATrustSet extends Error {
55
+ }
39
56
  /**
40
57
  * The trust set for a bundle's observer envelopes, read from `--witness-keys FILE`.
41
58
  *
42
59
  * The file is the `witness_keys` array the interop vectors carry — `[{kid, alg,
43
- * public_key_hex}]` — or one whole vector case, in which case its `witness_keys` member is used.
44
- * Without a trust set every envelope in a bundle fails `envelope_unknown_witness`, which is
45
- * correct (an unknown key is not a trusted one) and useless as a default, so this is how a bundle
46
- * carrying envelopes is verified from the command line.
60
+ * public_key_hex}]`, each row optionally with `not_after` — or one whole vector case, in which case
61
+ * its `witness_keys` member is used. Without a trust set every envelope in a bundle fails
62
+ * `envelope_unknown_witness`, which is correct (an unknown key is not a trusted one) and useless as
63
+ * a default, so this is how a bundle carrying envelopes is verified from the command line.
64
+ *
65
+ * Every row is validated here, by the same checks the verifier runs, so a bad row is reported
66
+ * against this file before any bundle is read. Throws the file system's error when the file cannot
67
+ * be read, and `NotATrustSet` when it is not a trust set: not JSON (JSON is UTF-8 text, so bytes
68
+ * that are not UTF-8 are not JSON either), not an array of rows, or a row the verifier refuses,
69
+ * whose message names the kid. The messages are the Python CLI's, word for word.
47
70
  */
48
71
  function readWitnessKeys(path) {
49
- let parsed = JSON.parse((0, node_fs_1.readFileSync)(path, "utf8"));
72
+ const bytes = (0, node_fs_1.readFileSync)(path);
73
+ let parsed;
74
+ try {
75
+ // `ignoreBOM` keeps a byte-order mark in the text, where JSON.parse refuses it as Python does.
76
+ parsed = JSON.parse(new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(bytes));
77
+ }
78
+ catch {
79
+ throw new NotATrustSet("the file is not valid JSON");
80
+ }
50
81
  if (parsed !== null && typeof parsed === "object" && !Array.isArray(parsed) && "witness_keys" in parsed) {
51
82
  parsed = parsed["witness_keys"];
52
83
  }
53
84
  if (!Array.isArray(parsed)) {
54
- throw new Error(`${path}: expected a list of {kid, alg, public_key_hex}, got ${typeof parsed}`);
85
+ throw new NotATrustSet("expected a JSON array of {kid, alg, public_key_hex} rows, or a vector case carrying one as witness_keys");
86
+ }
87
+ try {
88
+ (0, evidence_js_1.validateWitnessKeys)(parsed);
89
+ }
90
+ catch (err) {
91
+ throw new NotATrustSet(err.message);
55
92
  }
56
93
  return parsed;
57
94
  }
95
+ /**
96
+ * The C library's text for the file-system errors a path argument meets — what Python prints as
97
+ * `strerror` — so `cannot read FILE: REASON` reads the same from both CLIs. `null` for an error
98
+ * that is not a file-system one. A code outside this table prints Node's own message, which is
99
+ * worded differently.
100
+ */
101
+ function readFailure(err) {
102
+ const code = err?.code;
103
+ if (typeof code !== "string")
104
+ return null;
105
+ return STRERROR[code] ?? err.message;
106
+ }
107
+ const STRERROR = {
108
+ ENOENT: "No such file or directory",
109
+ EACCES: "Permission denied",
110
+ EISDIR: "Is a directory",
111
+ ENOTDIR: "Not a directory",
112
+ ELOOP: "Too many levels of symbolic links",
113
+ ENAMETOOLONG: "File name too long",
114
+ EPERM: "Operation not permitted",
115
+ EMFILE: "Too many open files",
116
+ EINVAL: "Invalid argument",
117
+ EIO: "Input/output error",
118
+ };
58
119
  /** Render a boolean the way Python does, so the two CLIs print the same line. */
59
120
  function py(value) {
60
121
  return value ? "True" : "False";
61
122
  }
123
+ /**
124
+ * Entry index -> the checks that failed on that entry: the `reason` of every failure about it,
125
+ * each once, in the order the verifier reported them.
126
+ *
127
+ * `failureEntries` is the verifier's own record of the entry each failure is about, by index
128
+ * (`VerifyReport.failure_entries`), so a failure lands on its entry even when that entry's seq is
129
+ * missing, null, a boolean, a string or another entry's. A failure about no single entry (a
130
+ * version, root, anchor or chain-id failure, or an envelope whose subject names no entry) is in
131
+ * the bundle-level output already and lands on no line.
132
+ */
133
+ function failedByEntry(failureEntries, details) {
134
+ const failed = new Map();
135
+ failureEntries.forEach((index, k) => {
136
+ if (index === null)
137
+ return;
138
+ const reason = details[k].reason;
139
+ const reasons = failed.get(index) ?? [];
140
+ if (!reasons.includes(reason))
141
+ reasons.push(reason);
142
+ failed.set(index, reasons);
143
+ });
144
+ return failed;
145
+ }
146
+ /**
147
+ * One value on an `--entries` line, byte for byte what the Python CLI prints.
148
+ *
149
+ * The values come from the bundle, which is attacker-supplied, and a line is only worth reading if
150
+ * no value can end it early or start a forged one: a `scope` carrying a newline and a clean-looking
151
+ * second line would otherwise print a fake entry with the real entry's `failed=` attached to it. So
152
+ * a value is printed as it is only when it is printable ASCII with no space, `"` or `\`, and an
153
+ * integer in decimal. Anything else is printed in the `escaped` JSON form (display.ts), which holds
154
+ * no whitespace and which a JSON parser reads back.
155
+ */
156
+ function entryValue(value) {
157
+ if (typeof value === "string" && display_js_1.BARE.test(value))
158
+ return value;
159
+ return (0, display_js_1.integerText)(value) ?? (0, display_js_1.escaped)(value);
160
+ }
161
+ /**
162
+ * One `--entries` line: two spaces, then `key=value` tokens separated by single spaces, in a fixed
163
+ * order. `seq` is always printed, as the integer when it is integral (`1.0` prints 1, as the
164
+ * verifier reads it), and as `seq=null` for an entry that has none: an entry without a seq is
165
+ * exactly the entry a reader must see. Any other key with no value is left out.
166
+ *
167
+ * How a line parses: no token contains whitespace; the key is the text before the token's first
168
+ * `=`, and keys never contain one, though a value may (`scope=failed=containment` is the scope
169
+ * "failed=containment"); a value that starts with `"` is a JSON string, and any other value is
170
+ * printed as it is.
171
+ */
172
+ function entryLine(e, rest) {
173
+ const tokens = [`seq=${entryValue(((0, canonical_js_1.intOr)(e["seq"]) ?? null))}`];
174
+ const pairs = [
175
+ ["event", e["event"]],
176
+ ["node", e["node"]],
177
+ ["scope", e["scope"]],
178
+ ...rest,
179
+ ];
180
+ for (const [key, value] of pairs) {
181
+ if (value !== null && value !== undefined)
182
+ tokens.push(`${key}=${entryValue(value)}`);
183
+ }
184
+ return ` ${tokens.join(" ")}`;
185
+ }
186
+ /**
187
+ * A bundle's entries with the state the verifier computed for each, read by index: an entry is
188
+ * witness-signed exactly when `envelopes.witnesses` holds its index, which is the entry the
189
+ * verifier resolved an envelope to, so of two entries sharing a seq only the one the witness signed
190
+ * reads witness-signed. `observed` and `witness` are printed only on such an entry: they are what
191
+ * its envelope says, and an entry that is process-asserted carries no observation the reader may
192
+ * rely on.
193
+ */
194
+ function bundleEntryLines(entries, rep) {
195
+ const failed = failedByEntry(rep.failure_entries, rep.failure_details);
196
+ const { results, witnesses } = rep.envelopes;
197
+ return entries.map((e, i) => {
198
+ const kid = Object.hasOwn(witnesses, String(i)) ? witnesses[String(i)] : null;
199
+ // `results` is keyed the way `states` is (`stateKey`), and for a covered entry the result filed
200
+ // there is its own envelope's.
201
+ const key = (0, evidence_js_1.stateKey)(e, i);
202
+ return entryLine(e, [
203
+ ["state", kid === null ? evidence_js_1.PROCESS_ASSERTED : evidence_js_1.WITNESS_SIGNED],
204
+ ["observed", kid !== null && Object.hasOwn(results, key) ? results[key] : null],
205
+ ["witness", kid],
206
+ ["failed", failed.get(i)?.join(",") ?? null],
207
+ ]);
208
+ });
209
+ }
210
+ /** A plain ledger's entries. A plain ledger carries no envelopes, so there is no state to print. */
211
+ function ledgerEntryLines(entries, failureEntries, details) {
212
+ const failed = failedByEntry(failureEntries, details);
213
+ return entries.map((e, i) => entryLine(e, [["failed", failed.get(i)?.join(",") ?? null]]));
214
+ }
215
+ /** One JSON object with an `entries` member: what `exportBundle` writes. */
216
+ function isBundleShaped(value) {
217
+ return value !== null && typeof value === "object" && !Array.isArray(value) && "entries" in value;
218
+ }
219
+ /**
220
+ * Why a file that is neither a bundle nor a ledger could not be read, in one line.
221
+ *
222
+ * A file that is ONE JSON object with `entries`, read by JavaScript's lenient parser, is a bundle
223
+ * the strict one refused — a duplicate member, a number past the double range, a lone surrogate —
224
+ * and that refusal is the reason. Anything else was read as JSON Lines, and the reason is the first
225
+ * line that does not parse. A parser's message can quote the input, so it goes through `oneLine`.
226
+ */
227
+ function unparsable(text, bundleError, ledgerError) {
228
+ if (bundleError !== null) {
229
+ let lenient = null;
230
+ try {
231
+ lenient = JSON.parse(text);
232
+ }
233
+ catch {
234
+ lenient = null;
235
+ }
236
+ if (isBundleShaped(lenient))
237
+ return (0, display_js_1.oneLine)(bundleError.message);
238
+ }
239
+ const lines = text.split(/\r?\n/);
240
+ for (let n = 0; n < lines.length; n++) {
241
+ if (lines[n].trim() === "")
242
+ continue;
243
+ try {
244
+ (0, canonical_js_1.parseJson)(lines[n]);
245
+ }
246
+ catch (err) {
247
+ return `line ${n + 1}: ${(0, display_js_1.oneLine)(err.message)}`;
248
+ }
249
+ }
250
+ return (0, display_js_1.oneLine)(ledgerError.message);
251
+ }
252
+ function writeEntries(lines) {
253
+ process.stdout.write(`entries:\n${lines.map((line) => `${line}\n`).join("")}`);
254
+ }
62
255
  function verify(args) {
63
256
  let path = null;
64
257
  let keyHex = null;
65
258
  let pubHex = null;
66
259
  let kid = null;
67
260
  let witnessPath = null;
261
+ let listEntries = false;
68
262
  for (let i = 0; i < args.length; i++) {
69
263
  const a = args[i];
70
264
  if (a === "--hs256-key")
@@ -75,6 +269,8 @@ function verify(args) {
75
269
  kid = args[++i] ?? null;
76
270
  else if (a === "--witness-keys")
77
271
  witnessPath = args[++i] ?? null;
272
+ else if (a === "--entries")
273
+ listEntries = true;
78
274
  else if (path === null)
79
275
  path = a;
80
276
  }
@@ -82,18 +278,28 @@ function verify(args) {
82
278
  process.stdout.write(USAGE);
83
279
  return 1;
84
280
  }
85
- const text = (0, node_fs_1.readFileSync)(path, "utf8");
281
+ let text;
282
+ try {
283
+ text = (0, node_fs_1.readFileSync)(path, "utf8");
284
+ }
285
+ catch (err) {
286
+ // A wrong path is a usage error, not a stack trace.
287
+ const reason = readFailure(err);
288
+ if (reason === null)
289
+ throw err;
290
+ process.stdout.write(`cannot read ${path}: ${reason}\n`);
291
+ return 1;
292
+ }
86
293
  let bundle = null;
294
+ let bundleError = null;
87
295
  try {
88
296
  // A bundle is ONE JSON object; a ledger is JSON Lines.
89
297
  const parsed = (0, evidence_js_1.parseBundle)(text);
90
- bundle =
91
- parsed !== null && typeof parsed === "object" && !Array.isArray(parsed) && "entries" in parsed
92
- ? parsed
93
- : null;
298
+ bundle = isBundleShaped(parsed) ? parsed : null;
94
299
  }
95
- catch {
300
+ catch (err) {
96
301
  bundle = null;
302
+ bundleError = err;
97
303
  }
98
304
  if (bundle !== null) {
99
305
  const anchorKid = bundle.anchor?.["kid"] ?? undefined;
@@ -103,12 +309,34 @@ function verify(args) {
103
309
  else if (pubHex) {
104
310
  signer = new wire_js_1.Ed25519Verifier(Buffer.from(pubHex, "hex"), kid ?? anchorKid ?? "k1");
105
311
  }
106
- const witnessKeys = witnessPath === null ? null : readWitnessKeys(witnessPath);
312
+ let witnessKeys = null;
313
+ if (witnessPath) {
314
+ try {
315
+ witnessKeys = readWitnessKeys(witnessPath);
316
+ }
317
+ catch (err) {
318
+ // Read, and not a trust set: one line, naming the file and, for a bad row, the kid.
319
+ if (err instanceof NotATrustSet) {
320
+ process.stdout.write(`cannot use --witness-keys ${witnessPath}: ${err.message}\n`);
321
+ return 2;
322
+ }
323
+ // Unreadable, as for the bundle path above.
324
+ const reason = readFailure(err);
325
+ if (reason === null)
326
+ throw err;
327
+ process.stdout.write(`cannot read ${witnessPath}: ${reason}\n`);
328
+ return 1;
329
+ }
330
+ }
107
331
  const rep = (0, evidence_js_1.verifyBundle)(bundle, signer, { witnessKeys });
108
332
  const c = rep.checks;
333
+ // An allow marked `policy: "unlisted"` passed through un-gated and is excused from containment,
334
+ // so `actions_checked` does not count it. Say how many there were, only when there were any:
335
+ // every other bundle prints this line exactly as it always has.
336
+ const ungated = rep.ungated > 0 ? ` ungated=${rep.ungated}` : "";
109
337
  process.stdout.write(`integrity=${py(c.integrity)} monotonicity=${py(c.monotonicity)} ` +
110
338
  `containment=${py(c.containment)} anchor=${c.anchor} ` +
111
- `nodes=${rep.nodes} actions_checked=${rep.actions_checked}\n`);
339
+ `nodes=${rep.nodes} actions_checked=${rep.actions_checked}${ungated}\n`);
112
340
  for (const f of rep.failures)
113
341
  process.stdout.write(` - ${f}\n`);
114
342
  // A bundle carrying envelopes and no trust set fails every one of them, correctly and
@@ -118,17 +346,41 @@ function verify(args) {
118
346
  process.stdout.write("hint: pass --witness-keys FILE to supply the trusted witness keys\n");
119
347
  }
120
348
  process.stdout.write(rep.ok ? "OK\n" : "FAILED\n");
349
+ if (listEntries)
350
+ writeEntries(bundleEntryLines(bundle.entries ?? [], rep));
121
351
  return rep.ok ? 0 : 2;
122
352
  }
123
- const entries = audit_js_1.AuditLog.parseLines(text);
353
+ let entries;
354
+ try {
355
+ entries = audit_js_1.AuditLog.parseLines(text);
356
+ }
357
+ catch (err) {
358
+ // Neither a bundle nor a ledger this build reads: one line, not a stack trace. Exit 1, as the
359
+ // Python CLI exits on a file it cannot parse.
360
+ process.stdout.write(`cannot parse ${path}: ${unparsable(text, bundleError, err)}\n`);
361
+ return 1;
362
+ }
124
363
  if (entries.length === 0) {
125
364
  // A ledger with no entries has nothing to verify. Reporting it OK would be a fail-open: a
126
365
  // truncated or never-written file would pass the same check as a clean chain.
127
366
  process.stdout.write(`${EMPTY}\n`);
367
+ if (listEntries)
368
+ writeEntries([]);
128
369
  return 2;
129
370
  }
130
371
  const [ok, reason] = audit_js_1.AuditLog.verify(entries);
131
372
  process.stdout.write(ok ? "OK\n" : `TAMPERED — ${reason}\n`);
373
+ if (listEntries) {
374
+ // A plain ledger has one check, the hash chain, and its failure is about the entry a bundle's
375
+ // integrity failure is about: the first one the chain does not reproduce at.
376
+ const at = [];
377
+ const details = [];
378
+ if (!ok) {
379
+ at.push((0, evidence_js_1.integrityBreak)(entries));
380
+ details.push({ reason: "integrity", seq: null, node: null, call_id: null, detail: `integrity: ${reason}` });
381
+ }
382
+ writeEntries(ledgerEntryLines(entries, at, details));
383
+ }
132
384
  return ok ? 0 : 2;
133
385
  }
134
386
  function main(argv = process.argv.slice(2)) {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}