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:
Paul Fariello
2019-06-07 23:44:26 +02:00
parent 7c119aa9bf
commit 2604786cb6
3 changed files with 23 additions and 1 deletions

View File

@@ -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);