@@ -961,7 +961,7 @@ non_null() static bool broadcast_gc_mod_list(const GC_Chat *chat);
961
961
non_null () static bool broadcast_gc_shared_state (const GC_Chat * chat );
962
962
non_null () static bool update_gc_sanctions_list (GC_Chat * chat , const uint8_t * public_sig_key );
963
963
non_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 ,
965
965
const uint8_t * sanction_data , uint16_t length , bool add_obs );
966
966
967
967
/** 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)
1119
1119
non_null ()
1120
1120
static bool prune_gc_sanctions_list_inner (
1121
1121
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 )
1123
1123
{
1124
1124
if (!sanctions_list_remove_observer (& chat -> moderation , sanction -> target_public_enc_key , nullptr )) {
1125
1125
LOGGER_WARNING (chat -> log , "Failed to remove entry from observer list" );
@@ -1159,10 +1159,10 @@ static bool prune_gc_sanctions_list(GC_Chat *chat)
1159
1159
1160
1160
if (peer_number == -1 ) {
1161
1161
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 );
1166
1166
}
1167
1167
}
1168
1168
@@ -4457,10 +4457,10 @@ static int handle_gc_set_observer(const GC_Session *c, GC_Chat *chat, uint32_t p
4457
4457
* Returns true on success.
4458
4458
*/
4459
4459
non_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 )
4462
4462
{
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 ;
4464
4464
uint8_t * packet = (uint8_t * )malloc (packet_len );
4465
4465
4466
4466
if (packet == nullptr ) {
@@ -4469,8 +4469,9 @@ static bool send_gc_set_observer(const GC_Chat *chat, const uint8_t *target_ext_
4469
4469
4470
4470
net_pack_bool (& packet [0 ], add_obs );
4471
4471
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 );
4474
4475
4475
4476
if (!send_gc_broadcast_message (chat , packet , packet_len , GM_SET_OBSERVER )) {
4476
4477
free (packet );
@@ -4557,7 +4558,7 @@ static bool mod_gc_set_observer(GC_Chat *chat, uint32_t peer_number, bool add_ob
4557
4558
4558
4559
update_gc_peer_roles (chat );
4559
4560
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 );
4561
4562
}
4562
4563
4563
4564
/** @brief Sets the role of `peer_number` to `new_role`. If necessary this function will first
0 commit comments