commit dba000e: [Rework] Use full crypto hash for regexp maps
Vsevolod Stakhov
vsevolod at highsecure.ru
Wed Nov 25 13:35:07 UTC 2020
Author: Vsevolod Stakhov
Date: 2020-11-24 15:46:22 +0000
URL: https://github.com/rspamd/rspamd/commit/dba000eb38a733a2bf049b66391710c6885f0469
[Rework] Use full crypto hash for regexp maps
---
src/libserver/maps/map_helpers.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/libserver/maps/map_helpers.c b/src/libserver/maps/map_helpers.c
index de6b849f3..7eacdf61a 100644
--- a/src/libserver/maps/map_helpers.c
+++ b/src/libserver/maps/map_helpers.c
@@ -72,12 +72,13 @@ struct rspamd_cdb_map_helper {
};
struct rspamd_regexp_map_helper {
+ rspamd_cryptobox_hash_state_t hst;
+ guchar re_digest[rspamd_cryptobox_HASHBYTES];
rspamd_mempool_t *pool;
struct rspamd_map *map;
GPtrArray *regexps;
GPtrArray *values;
khash_t(rspamd_map_hash) *htb;
- rspamd_cryptobox_fast_hash_state_t hst;
enum rspamd_regexp_map_flags map_flags;
#ifdef WITH_HYPERSCAN
hs_database_t *hs_db;
@@ -685,7 +686,7 @@ rspamd_map_helper_insert_re (gpointer st, gconstpointer key, gconstpointer value
nk = kh_key (re_map->htb, k).begin;
val->key = nk;
kh_value (re_map->htb, k) = val;
- rspamd_cryptobox_fast_hash_update (&re_map->hst, nk, tok.len);
+ rspamd_cryptobox_hash_update (&re_map->hst, nk, tok.len);
pcre_flags = rspamd_regexp_get_pcre_flags (re);
@@ -860,7 +861,7 @@ rspamd_map_helper_new_regexp (struct rspamd_map *map,
re_map->map = map;
re_map->map_flags = flags;
re_map->htb = kh_init (rspamd_map_hash);
- rspamd_cryptobox_fast_hash_init (&re_map->hst, map_hash_seed);
+ rspamd_cryptobox_hash_init (&re_map->hst, NULL, 0);
return re_map;
}
@@ -1245,12 +1246,13 @@ rspamd_regexp_list_fin (struct map_cb_data *data, void **target)
if (data->cur_data) {
re_map = data->cur_data;
+ rspamd_cryptobox_hash_final (&re_map->hst, re_map->re_digest);
+ memcpy (&data->map->digest, re_map->re_digest, sizeof (data->map->digest));
rspamd_re_map_finalize (re_map);
msg_info_map ("read regexp list of %ud elements",
re_map->regexps->len);
data->map->traverse_function = rspamd_map_helper_traverse_regexp;
data->map->nelts = kh_size (re_map->htb);
- data->map->digest = rspamd_cryptobox_fast_hash_final (&re_map->hst);
}
if (target) {
More information about the Commits
mailing list