Separate missing member verification keys from SQLite failures
This commit is contained in:
1 parent
fe7bcb334c
commit
1f3f1d9a34
2 files changed
+48
-20
No files matched your search
@@ -17,6 +17,10 @@
|
||||
#define PEERS_JOIN_TS_SIZE 8
|
||||
#define PEERS_UPDATE_SIG_SIZE 64
|
||||
|
||||
/* Результаты channel_get/get_ed25519_pubkey: отсутствие зависимости и отказ чтения различаются. */
|
||||
#define TOPO_SQLITE_LOOKUP_MISSING (-1)
|
||||
#define TOPO_SQLITE_LOOKUP_ERROR (-2)
|
||||
|
||||
/* flags byte in wire format */
|
||||
#define PEERS_FLAG_HAS_JOIN 0x01
|
||||
|
||||
@@ -104,7 +108,9 @@ int topo_node_sqlite_member_del(sqlite3* db, const char* channel_id, uint64_t no
|
||||
int topo_node_sqlite_node_update_verified(sqlite3* db, uint64_t node_id,
|
||||
const char* name, const uint8_t* x25519, const uint8_t* ed25519, uint64_t update_ts, time_t created_at);
|
||||
|
||||
/* Метаданные канала; 0/-1. Все выходы необязательны; name_sz включает NUL, ключи по 32, подпись 64 байта. */
|
||||
/* Метаданные канала: 0 — успех, LOOKUP_MISSING — нет строки/запрошенного ключа,
|
||||
* LOOKUP_ERROR — аргументы/SQL/повреждённый размер. Выходы действительны только при 0.
|
||||
* Все выходы необязательны; name_sz включает NUL, ключи по 32, подпись 64 байта. */
|
||||
int topo_node_sqlite_channel_get(sqlite3* db, const char* channel_id,
|
||||
char* name_out, int name_sz, uint64_t* owner_node_id,
|
||||
uint8_t* x25519_pub, uint8_t* ed25519_pub, uint8_t* signature);
|
||||
@@ -126,7 +132,8 @@ int topo_node_sqlite_channel_set_privs(sqlite3* db, const char* channel_id,
|
||||
int topo_node_sqlite_node_set_online(sqlite3* db, uint64_t node_id, int online);
|
||||
/* online из nodes; 0, если записи нет или запрос не выполнен. */
|
||||
int topo_node_sqlite_node_get_online(sqlite3* db, uint64_t node_id);
|
||||
/* Скопировать ровно 32 байта Ed25519 из nodes: 0 — найден, -1 — отсутствует/другая длина/ошибка SQLite.
|
||||
/* Скопировать ровно 32 байта Ed25519 из nodes: 0 — найден, LOOKUP_MISSING — нет строки/ключа,
|
||||
* LOOKUP_ERROR — аргументы/SQL/повреждённый размер. При отказе выход не меняется.
|
||||
* Значение байтов не определяет наличие ключа; криптографическую пригодность проверяет операция verify. */
|
||||
int topo_node_sqlite_get_ed25519_pubkey(sqlite3* db, uint64_t node_id, uint8_t pubkey_out[32]);
|
||||
|
||||
|
||||
Reference in new issue
Block a user