Keep membership signature regressions on shared verifier
This commit is contained in:
1 parent
ade9401e05
commit
ada1406d79
1 file changed
+6
-6
@@ -54,16 +54,16 @@ static void sign_record(const struct UTUN_INSTANCE* author, uint64_t channel, st
|
||||
static void check_author_rejection(struct UTUN_INSTANCE* inst) {
|
||||
sqlite3_stmt* st = NULL; uint8_t key[32], tree[64];
|
||||
assert(member_sync_sign_pubkey(owner_private, inst->my_keys.public_key, tree) == 0);
|
||||
assert(fb_author_key(inst, "1001", inst->node_id, key) == 0 && !memcmp(key, inst->my_ed25519_pubkey, 32));
|
||||
assert(member_sync_verified_ed25519(inst, "1001", inst->node_id, key) == 0 && !memcmp(key, inst->my_ed25519_pubkey, 32));
|
||||
assert(sqlite3_prepare_v2(inst->topo_sqlite_db, "UPDATE peers_1001 SET signature=? WHERE node_id=?", -1, &st, NULL) == SQLITE_OK);
|
||||
uint8_t zero[64] = {0}; sqlite3_bind_blob(st, 1, zero, 64, SQLITE_STATIC); sqlite3_bind_int64(st, 2, inst->node_id);
|
||||
assert(sqlite3_step(st) == SQLITE_DONE && fb_author_key(inst, "1001", inst->node_id, key) < 0);
|
||||
assert(sqlite3_step(st) == SQLITE_DONE && member_sync_verified_ed25519(inst, "1001", inst->node_id, key) < 0);
|
||||
sqlite3_reset(st); sqlite3_bind_null(st, 1);
|
||||
assert(sqlite3_step(st) == SQLITE_DONE && fb_author_key(inst, "1001", inst->node_id, key) < 0);
|
||||
assert(sqlite3_step(st) == SQLITE_DONE && member_sync_verified_ed25519(inst, "1001", inst->node_id, key) < 0);
|
||||
sqlite3_reset(st); tree[0] ^= 1; sqlite3_bind_blob(st, 1, tree, 64, SQLITE_STATIC);
|
||||
assert(sqlite3_step(st) == SQLITE_DONE && fb_author_key(inst, "1001", inst->node_id, key) < 0);
|
||||
assert(sqlite3_step(st) == SQLITE_DONE && member_sync_verified_ed25519(inst, "1001", inst->node_id, key) < 0);
|
||||
sqlite3_reset(st); tree[0] ^= 1;
|
||||
assert(sqlite3_step(st) == SQLITE_DONE && fb_author_key(inst, "1001", inst->node_id, key) == 0);
|
||||
assert(sqlite3_step(st) == SQLITE_DONE && member_sync_verified_ed25519(inst, "1001", inst->node_id, key) == 0);
|
||||
sqlite3_finalize(st);
|
||||
puts("PASS: root author requires a valid channel signature; zero, missing and forged certificates are rejected");
|
||||
}
|
||||
@@ -81,7 +81,7 @@ static int check_profile_authors(const char* path) {
|
||||
assert(sqlite3_prepare_v2(inst.topo_sqlite_db, sql, -1, &members, NULL) == SQLITE_OK);
|
||||
int step;
|
||||
while ((step = sqlite3_step(members)) == SQLITE_ROW) {
|
||||
uint8_t key[32]; assert(fb_author_key(&inst, channel, sqlite3_column_int64(members, 0), key) == 0); total++;
|
||||
uint8_t key[32]; assert(member_sync_verified_ed25519(&inst, channel, sqlite3_column_int64(members, 0), key) == 0); total++;
|
||||
}
|
||||
assert(step == SQLITE_DONE); sqlite3_finalize(members); members = NULL;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user