Decrypt all incoming OMEMO msg
Trust all key as long as it's for reading. This code isn't multithread safe.
This commit is contained in:
@@ -362,6 +362,11 @@ save_identity(const signal_protocol_address *address, uint8_t *key_data,
|
||||
{
|
||||
identity_key_store_t *identity_key_store = (identity_key_store_t *)user_data;
|
||||
|
||||
if (identity_key_store->recv && !identity_key_store->trusted_msg) {
|
||||
/* Do not trust identity automatically */
|
||||
return SG_SUCCESS;
|
||||
}
|
||||
|
||||
signal_buffer *buffer = signal_buffer_create(key_data, key_len);
|
||||
|
||||
GHashTable *trusted = g_hash_table_lookup(identity_key_store->trusted, strdup(address->name));
|
||||
@@ -390,9 +395,18 @@ is_trusted_identity(const signal_protocol_address *address, uint8_t *key_data,
|
||||
int ret;
|
||||
identity_key_store_t *identity_key_store = (identity_key_store_t *)user_data;
|
||||
|
||||
if (identity_key_store->recv) {
|
||||
return true;
|
||||
}
|
||||
|
||||
GHashTable *trusted = g_hash_table_lookup(identity_key_store->trusted, address->name);
|
||||
if (!trusted) {
|
||||
return 0;
|
||||
if (identity_key_store->recv) {
|
||||
identity_key_store->trusted_msg = false;
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
signal_buffer *buffer = signal_buffer_create(key_data, key_len);
|
||||
|
||||
Reference in New Issue
Block a user