diff options
| author | Anders Betts <anders.betts@gmail.com> | 2026-09-20 09:20:39 +0200 |
|---|---|---|
| committer | Anders Betts <anders.betts@gmail.com> | 2026-09-20 09:20:39 +0200 |
| commit | 5b27bb0950fd03d29c223b5960faff89baf37970 (patch) | |
| tree | 5cc99420a4fc1365fdb8bf4bbec8237fa306fd4b /src/ledger.h | |
| parent | a61cfeefb0599e74fc9189b189b16dd0b6d36f0f (diff) | |
| download | bokf-5b27bb0950fd03d29c223b5960faff89baf37970.tar.gz bokf-5b27bb0950fd03d29c223b5960faff89baf37970.zip | |
audit: verify voucher chains and attachment hashes
Diffstat (limited to 'src/ledger.h')
| -rw-r--r-- | src/ledger.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ledger.h b/src/ledger.h index 30271d0..cf8f9b1 100644 --- a/src/ledger.h +++ b/src/ledger.h @@ -48,4 +48,15 @@ void ledger_voucher_hash(const unsigned char prev[32], int64_t org_id, const struct ledger_row *rows, size_t nrows, unsigned char out[32]); +struct ledger_verify_result { + int64_t vouchers_checked; + int64_t first_bad_voucher_id; /* 0 = none */ + int64_t unbalanced_vouchers; + int64_t first_unbalanced_voucher_id; /* 0 = none */ +}; + +/* Recomputes every org's voucher hash chain (SCHEMA.md 7.1) and scans for + unbalanced vouchers. 0 = intact, 1 = broken, -1 = database error. */ +int ledger_verify(sqlite3 *db, struct ledger_verify_result *out, char **err); + #endif |
