Wireshark  2.9.0-477-g68ec514b
The Wireshark network protocol analyzer
crc32.h
1 /* crc32.h
2  * Declaration of CRC-32 routine and table
3  *
4  * Wireshark - Network traffic analyzer
5  * By Gerald Combs <gerald@wireshark.org>
6  * Copyright 1998 Gerald Combs
7  *
8  * SPDX-License-Identifier: GPL-2.0-or-later
9  */
10 
11 #ifndef __CRC32_H__
12 #define __CRC32_H__
13 
14 #include "ws_symbol_export.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif /* __cplusplus */
19 
20 #define CRC32_CCITT_SEED 0xFFFFFFFF
21 #define CRC32C_PRELOAD 0xffffffff
22 #define CRC32_MPEG2_SEED 0xFFFFFFFF
23 
24 /*
25  * Byte swap fix contributed by Dave Wysochanski <davidw@netapp.com>.
26  */
27 #define CRC32C_SWAP(crc32c_value) \
28  (((crc32c_value & 0xff000000) >> 24) | \
29  ((crc32c_value & 0x00ff0000) >> 8) | \
30  ((crc32c_value & 0x0000ff00) << 8) | \
31  ((crc32c_value & 0x000000ff) << 24))
32 
35 WS_DLL_PUBLIC guint32 crc32_ccitt_table_lookup (guchar pos);
36 
39 WS_DLL_PUBLIC guint32 crc32c_table_lookup (guchar pos);
40 
46 WS_DLL_PUBLIC guint32 crc32c_calculate(const void *buf, int len, guint32 crc);
47 
54 WS_DLL_PUBLIC guint32 crc32c_calculate_no_swap(const void *buf, int len, guint32 crc);
55 
60 WS_DLL_PUBLIC guint32 crc32_ccitt(const guint8 *buf, guint len);
61 
69 WS_DLL_PUBLIC guint32 crc32_ccitt_seed(const guint8 *buf, guint len, guint32 seed);
70 
76 WS_DLL_PUBLIC guint32 crc32_mpeg2_seed(const guint8 *buf, guint len, guint32 seed);
77 
85 WS_DLL_PUBLIC guint32 crc32_0x0AA725CF_seed(const guint8 *buf, guint len, guint32 seed);
86 
94 WS_DLL_PUBLIC guint32 crc32_0x5D6DCB_seed(const guint8 *buf, guint len, guint32 seed);
95 
96 WS_DLL_PUBLIC int Dot11DecryptWepDecrypt(
97  const guchar *seed,
98  const size_t seed_len,
99  guchar *cypher_text,
100  const size_t data_len);
101 
102 #ifdef __cplusplus
103 }
104 #endif /* __cplusplus */
105 
106 #endif /* crc32.h */