core: generate fixed fallback timestamp in _host_id_read_timestamp()

nm_hash_siphash42() uses a randomized seed like nm_hash*(). In this case,
we want to always generate the same fake timestamp, based on the host-id.

In practice, it doesn't really matter, because this is only the fallback
path for something gone horribly wrong already.
This commit is contained in:
Thomas Haller
2023-11-03 10:43:35 +01:00
parent 0d6885c087
commit 27ae71b504
2 changed files with 4 additions and 1 deletions

View File

@@ -2711,7 +2711,7 @@ _host_id_read_timestamp(gboolean use_secret_key_file,
#define EPOCH_TWO_YEARS (G_GINT64_CONSTANT(2 * 365 * 24 * 3600) * NM_UTILS_NSEC_PER_SEC)
v = nm_hash_siphash42(1156657133u, host_id, host_id_len);
v = c_siphash_hash(NM_HASH_SEED_16_U64(1156657133u), host_id, host_id_len);
now = time(NULL);
*out_timestamp_ns =

View File

@@ -56,6 +56,9 @@ void nm_hash_siphash42_init(CSipHash *h, guint static_seed);
* Then, why not use c_siphash_hash() directly? Because this also uses the randomized,
* per-run hash-seed like nm_hash_init(). So, you get siphash24 with a random
* seed (which is cached for the current run of the program).
*
* WARNING: the static_seed gets randomized like with nm_hash*(). If you want a reproducible
* siphash42, use instead `c_siphash_hash(NM_HASH_SEED_16_U64(number), ptr, len)`.
*/
static inline guint64
nm_hash_siphash42(guint static_seed, const void *ptr, gsize n)