/src/suricata8/src/datasets-md5.c
Line | Count | Source |
1 | | /* Copyright (C) 2017-2024 Open Information Security Foundation |
2 | | * |
3 | | * You can copy, redistribute or modify this Program under the terms of |
4 | | * the GNU General Public License version 2 as published by the Free |
5 | | * Software Foundation. |
6 | | * |
7 | | * This program is distributed in the hope that it will be useful, |
8 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
9 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
10 | | * GNU General Public License for more details. |
11 | | * |
12 | | * You should have received a copy of the GNU General Public License |
13 | | * version 2 along with this program; if not, write to the Free Software |
14 | | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
15 | | * 02110-1301, USA. |
16 | | */ |
17 | | |
18 | | /** |
19 | | * \file |
20 | | * |
21 | | * \author Victor Julien <victor@inliniac.net> |
22 | | */ |
23 | | |
24 | | #include "suricata-common.h" |
25 | | #include "conf.h" |
26 | | #include "datasets.h" |
27 | | #include "datasets-context-json.h" |
28 | | #include "datasets-md5.h" |
29 | | #include "util-hash-lookup3.h" |
30 | | |
31 | | #include "util-thash.h" |
32 | | #include "util-print.h" |
33 | | |
34 | | int Md5StrSet(void *dst, void *src) |
35 | 0 | { |
36 | 0 | Md5Type *src_s = src; |
37 | 0 | Md5Type *dst_s = dst; |
38 | 0 | memcpy(dst_s->md5, src_s->md5, sizeof(dst_s->md5)); |
39 | 0 | dst_s->rep = src_s->rep; |
40 | 0 | return 0; |
41 | 0 | } |
42 | | |
43 | | int Md5StrJsonSet(void *dst, void *src) |
44 | 0 | { |
45 | 0 | if (Md5StrSet(dst, src) < 0) |
46 | 0 | return -1; |
47 | | |
48 | 0 | Md5Type *src_s = src; |
49 | 0 | Md5Type *dst_s = dst; |
50 | |
|
51 | 0 | if (DatajsonCopyJson(&dst_s->json, &src_s->json) < 0) |
52 | 0 | return -1; |
53 | | |
54 | 0 | return 0; |
55 | 0 | } |
56 | | |
57 | | bool Md5StrCompare(void *a, void *b) |
58 | 0 | { |
59 | 0 | const Md5Type *as = a; |
60 | 0 | const Md5Type *bs = b; |
61 | |
|
62 | 0 | return (memcmp(as->md5, bs->md5, sizeof(as->md5)) == 0); |
63 | 0 | } |
64 | | |
65 | | uint32_t Md5StrHash(uint32_t hash_seed, void *s) |
66 | 5 | { |
67 | 5 | const Md5Type *str = s; |
68 | 5 | return hashword((uint32_t *)str->md5, sizeof(str->md5) / 4, hash_seed); |
69 | 5 | } |
70 | | |
71 | | // data stays in hash |
72 | | void Md5StrFree(void *s) |
73 | 8.69M | { |
74 | 8.69M | } |
75 | | |
76 | | void Md5StrJsonFree(void *s) |
77 | 5.00k | { |
78 | 5.00k | const Md5Type *as = s; |
79 | 5.00k | if (as->json.value) { |
80 | 0 | SCFree(as->json.value); |
81 | 0 | } |
82 | 5.00k | } |
83 | | |
84 | | uint32_t Md5StrJsonGetLength(void *s) |
85 | 5.00k | { |
86 | 5.00k | const Md5Type *as = s; |
87 | 5.00k | return as->json.len; |
88 | 5.00k | } |