@@ -961,7 +961,7 @@ non_null() static bool broadcast_gc_mod_list(const GC_Chat *chat);
961961non_null () static bool broadcast_gc_shared_state (const GC_Chat * chat );
962962non_null () static bool update_gc_sanctions_list (GC_Chat * chat , const uint8_t * public_sig_key );
963963non_null () static bool update_gc_topic (GC_Chat * chat , const uint8_t * public_sig_key );
964- non_null () static bool send_gc_set_observer (const GC_Chat * chat , const uint8_t * target_ext_pk ,
964+ non_null () static bool send_gc_set_observer (const GC_Chat * chat , const Extended_Public_Key * target_ext_pk ,
965965 const uint8_t * sanction_data , uint16_t length , bool add_obs );
966966
967967/** Returns true if peer designated by `peer_number` is in the sanctions list as an observer. */
@@ -1119,7 +1119,7 @@ static bool prune_gc_mod_list(GC_Chat *chat)
11191119non_null ()
11201120static bool prune_gc_sanctions_list_inner (
11211121 GC_Chat * chat , const Mod_Sanction * sanction ,
1122- const uint8_t target_ext_pk [ ENC_PUBLIC_KEY_SIZE + SIG_PUBLIC_KEY_SIZE ] )
1122+ const Extended_Public_Key * target_ext_pk )
11231123{
11241124 if (!sanctions_list_remove_observer (& chat -> moderation , sanction -> target_public_enc_key , nullptr )) {
11251125 LOGGER_WARNING (chat -> log , "Failed to remove entry from observer list" );
@@ -1159,10 +1159,10 @@ static bool prune_gc_sanctions_list(GC_Chat *chat)
11591159
11601160 if (peer_number == -1 ) {
11611161 const Mod_Sanction * sanction = & chat -> moderation .sanctions [i ];
1162- uint8_t target_ext_pk [ ENC_PUBLIC_KEY_SIZE + SIG_PUBLIC_KEY_SIZE ] ;
1163- memcpy (target_ext_pk , sanction -> target_public_enc_key , ENC_PUBLIC_KEY_SIZE );
1164- memcpy (target_ext_pk + ENC_PUBLIC_KEY_SIZE , sanction -> setter_public_sig_key , SIG_PUBLIC_KEY_SIZE );
1165- return prune_gc_sanctions_list_inner (chat , sanction , target_ext_pk );
1162+ Extended_Public_Key target_ext_pk ;
1163+ memcpy (target_ext_pk . enc , sanction -> target_public_enc_key , ENC_PUBLIC_KEY_SIZE );
1164+ memcpy (target_ext_pk . sig , sanction -> setter_public_sig_key , SIG_PUBLIC_KEY_SIZE );
1165+ return prune_gc_sanctions_list_inner (chat , sanction , & target_ext_pk );
11661166 }
11671167 }
11681168
@@ -4457,10 +4457,10 @@ static int handle_gc_set_observer(const GC_Session *c, GC_Chat *chat, uint32_t p
44574457 * Returns true on success.
44584458 */
44594459non_null ()
4460- static bool send_gc_set_observer (const GC_Chat * chat , const uint8_t * target_ext_pk , const uint8_t * sanction_data ,
4461- uint16_t length , bool add_obs )
4460+ static bool send_gc_set_observer (const GC_Chat * chat , const Extended_Public_Key * target_ext_pk ,
4461+ const uint8_t * sanction_data , uint16_t length , bool add_obs )
44624462{
4463- const uint16_t packet_len = 1 + EXT_PUBLIC_KEY_SIZE + length ;
4463+ const uint16_t packet_len = 1 + ENC_PUBLIC_KEY_SIZE + SIG_PUBLIC_KEY_SIZE + length ;
44644464 uint8_t * packet = (uint8_t * )malloc (packet_len );
44654465
44664466 if (packet == nullptr ) {
@@ -4469,8 +4469,9 @@ static bool send_gc_set_observer(const GC_Chat *chat, const uint8_t *target_ext_
44694469
44704470 net_pack_bool (& packet [0 ], add_obs );
44714471
4472- memcpy (packet + 1 , target_ext_pk , EXT_PUBLIC_KEY_SIZE );
4473- memcpy (packet + 1 + EXT_PUBLIC_KEY_SIZE , sanction_data , length );
4472+ memcpy (packet + 1 , target_ext_pk -> enc , ENC_PUBLIC_KEY_SIZE );
4473+ memcpy (packet + 1 + ENC_PUBLIC_KEY_SIZE , target_ext_pk -> sig , SIG_PUBLIC_KEY_SIZE );
4474+ memcpy (packet + 1 + ENC_PUBLIC_KEY_SIZE + SIG_PUBLIC_KEY_SIZE , sanction_data , length );
44744475
44754476 if (!send_gc_broadcast_message (chat , packet , packet_len , GM_SET_OBSERVER )) {
44764477 free (packet );
@@ -4557,7 +4558,7 @@ static bool mod_gc_set_observer(GC_Chat *chat, uint32_t peer_number, bool add_ob
45574558
45584559 update_gc_peer_roles (chat );
45594560
4560- return send_gc_set_observer (chat , gconn -> addr .public_key . enc , sanction_data , length , add_obs );
4561+ return send_gc_set_observer (chat , & gconn -> addr .public_key , sanction_data , length , add_obs );
45614562}
45624563
45634564/** @brief Sets the role of `peer_number` to `new_role`. If necessary this function will first
0 commit comments