diff options
Diffstat (limited to 'src/common/fnv1a.c')
-rw-r--r-- | src/common/fnv1a.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/common/fnv1a.c b/src/common/fnv1a.c index a8afd0a..057d6c9 100644 --- a/src/common/fnv1a.c +++ b/src/common/fnv1a.c @@ -2,7 +2,7 @@ /* Chrysalide - Outil d'analyse de fichiers binaires * fnv1a.c - implémentaton du calcul rapide d'empreintes de chaînes * - * Copyright (C) 2012-2018 Cyrille Bagard + * Copyright (C) 2012-2024 Cyrille Bagard * * This file is part of Chrysalide. * @@ -87,3 +87,34 @@ fnv64_t fnv_64a_hash(const char *str) return result; } + + +/****************************************************************************** +* * +* Paramètres : data = données binaires à traiter. * +* size = quantité de ces données. * +* * +* Description : Détermine l'empreinte FNV1a d'une séquence d'octets. * +* * +* Retour : Valeur calculée. * +* * +* Remarques : - * +* * +******************************************************************************/ + +fnv64_t fnv_64a_hash_data(const uint8_t *data, size_t size) +{ + fnv64_t result; /* Valeur à retourner */ + size_t i; /* Boucle de parcours */ + + result = FNV1A_64_INIT; + + for (i = 0; i < size; i++) + { + result ^= (fnv64_t)data[i]; + result *= FNV_64_PRIME; + } + + return result; + +} |