@ -388,6 +388,18 @@ static void t_process_request(void) {
uint64_t group_id = strtoull ( CH_COMP , NULL , 10 ) ;
uint64_t group_id = strtoull ( CH_COMP , NULL , 10 ) ;
/* 0. неизвестный join-ключ → отклонён (ключ ещё не зарегистрирован) */
TEST ( " process_request: unknown join_key rejected " ) ; {
struct joiner j ; make_joiner ( & j , ch_x_pub , ch_ed_pub ) ;
uint8_t buf [ 512 ] ; size_t len = 0 ;
serialize_member ( j . node_id , j . x_pub , j . ed_pub , j . join_sig , j . join_ts , buf , sizeof ( buf ) , & len ) ;
chat_join_process_request ( inst , group_id , j . node_id , JOIN_KEY , buf , len ) ;
if ( ! topo_node_sqlite_member_in_channel ( db , CH_COMP , j . node_id ) ) OK ( ) ; else FAIL ( ) ;
}
/* регистрируем ключ локально — дальше process_request его принимает */
chat_join_register_key ( inst , group_id , inst - > node_id , JOIN_KEY ) ;
/* 1. валидный join_sig → мембер добавлен, signed_by=self, подпись валидна */
/* 1. валидный join_sig → мембер добавлен, signed_by=self, подпись валидна */
TEST ( " process_request: valid join_sig accepted " ) ; {
TEST ( " process_request: valid join_sig accepted " ) ; {
struct joiner j ; make_joiner ( & j , ch_x_pub , ch_ed_pub ) ;
struct joiner j ; make_joiner ( & j , ch_x_pub , ch_ed_pub ) ;
@ -456,6 +468,7 @@ static void t_validate_pubkey(void) {
uint64_t gid = strtoull ( " 61616161616 " , NULL , 10 ) ;
uint64_t gid = strtoull ( " 61616161616 " , NULL , 10 ) ;
uint8_t buf [ 512 ] ; size_t len = 0 ;
uint8_t buf [ 512 ] ; size_t len = 0 ;
serialize_member ( j . node_id , j . x_pub , j . ed_pub , j . join_sig , j . join_ts , buf , sizeof ( buf ) , & len ) ;
serialize_member ( j . node_id , j . x_pub , j . ed_pub , j . join_sig , j . join_ts , buf , sizeof ( buf ) , & len ) ;
chat_join_register_key ( inst , gid , inst - > node_id , JOIN_KEY ) ;
chat_join_process_request ( inst , gid , j . node_id , JOIN_KEY , buf , len ) ;
chat_join_process_request ( inst , gid , j . node_id , JOIN_KEY , buf , len ) ;
TEST ( " validate_pubkey: member -> 1 " ) ; {
TEST ( " validate_pubkey: member -> 1 " ) ; {