#include <wireshark.h>
Go to the source code of this file.
|
#define | CRC32_CCITT_SEED 0xFFFFFFFF |
|
#define | CRC32C_PRELOAD 0xffffffff |
|
#define | CRC32_MPEG2_SEED 0xFFFFFFFF |
|
#define | CRC32C_SWAP(crc32c_value) |
|
|
WS_DLL_PUBLIC uint32_t | crc32_ccitt_table_lookup (unsigned char pos) |
| Lookup a CRC-32/CCITT table value by position.
|
|
WS_DLL_PUBLIC uint32_t | crc32c_table_lookup (unsigned char pos) |
|
WS_DLL_PUBLIC uint32_t | crc32c_calculate (const void *buf, int len, uint32_t crc) |
| Compute CRC32C checksum of a buffer of data.
|
|
WS_DLL_PUBLIC uint32_t | crc32c_calculate_no_swap (const void *buf, int len, uint32_t crc) |
| Compute CRC32C checksum of a buffer of data without swapping seed crc or completed checksum.
|
|
WS_DLL_PUBLIC uint32_t | crc32_ccitt (const uint8_t *buf, unsigned len) |
| Compute CRC32 CCITT checksum of a buffer of data.
|
|
WS_DLL_PUBLIC uint32_t | crc32_ccitt_seed (const uint8_t *buf, unsigned len, uint32_t seed) |
| Compute CRC32 CCITT checksum of a buffer of data.
|
|
WS_DLL_PUBLIC uint32_t | crc32_mpeg2_seed (const uint8_t *buf, unsigned len, uint32_t seed) |
| Compute MPEG-2 CRC32 checksum of a buffer of data.
|
|
WS_DLL_PUBLIC uint32_t | crc32_0x0AA725CF_seed (const uint8_t *buf, unsigned len, uint32_t seed) |
| Computes CRC32 checksum for the given data with the polynom 0x0AA725CF using precompiled CRC table.
|
|
WS_DLL_PUBLIC uint32_t | crc32_0x5D6DCB_seed (const uint8_t *buf, unsigned len, uint32_t seed) |
| Computes CRC32 checksum for the given data with the polynom 0x5D6DCB using precompiled CRC table.
|
|
WS_DLL_PUBLIC int | Dot11DecryptWepDecrypt (const unsigned char *seed, const size_t seed_len, unsigned char *cypher_text, const size_t data_len) |
| Decrypt WEP-encrypted 802.11 payload using RC4 stream cipher.
|
|
Declaration of CRC-32 routine and table
Wireshark - Network traffic analyzer By Gerald Combs geral.nosp@m.d@wi.nosp@m.resha.nosp@m.rk.o.nosp@m.rg Copyright 1998 Gerald Combs
SPDX-License-Identifier: GPL-2.0-or-later
◆ CRC32C_SWAP
#define CRC32C_SWAP |
( |
|
crc32c_value | ) |
|
Value: (((crc32c_value & 0xff000000) >> 24) | \
((crc32c_value & 0x00ff0000) >> 8) | \
((crc32c_value & 0x0000ff00) << 8) | \
((crc32c_value & 0x000000ff) << 24))
◆ crc32_0x0AA725CF_seed()
WS_DLL_PUBLIC uint32_t crc32_0x0AA725CF_seed |
( |
const uint8_t * |
buf, |
|
|
unsigned |
len, |
|
|
uint32_t |
seed |
|
) |
| |
Computes CRC32 checksum for the given data with the polynom 0x0AA725CF using precompiled CRC table.
- Parameters
-
buf | a pointer to a buffer of the given length |
len | the length of the given buffer |
seed | The seed to use. |
- Returns
- the CRC32 checksum for the buffer
◆ crc32_0x5D6DCB_seed()
WS_DLL_PUBLIC uint32_t crc32_0x5D6DCB_seed |
( |
const uint8_t * |
buf, |
|
|
unsigned |
len, |
|
|
uint32_t |
seed |
|
) |
| |
Computes CRC32 checksum for the given data with the polynom 0x5D6DCB using precompiled CRC table.
- Parameters
-
buf | a pointer to a buffer of the given length |
len | the length of the given buffer |
seed | The seed to use. |
- Returns
- the CRC32 checksum for the buffer
◆ crc32_ccitt()
WS_DLL_PUBLIC uint32_t crc32_ccitt |
( |
const uint8_t * |
buf, |
|
|
unsigned |
len |
|
) |
| |
Compute CRC32 CCITT checksum of a buffer of data.
- Parameters
-
buf | The buffer containing the data. |
len | The number of bytes to include in the computation. |
- Returns
- The CRC32 CCITT checksum.
◆ crc32_ccitt_seed()
WS_DLL_PUBLIC uint32_t crc32_ccitt_seed |
( |
const uint8_t * |
buf, |
|
|
unsigned |
len, |
|
|
uint32_t |
seed |
|
) |
| |
Compute CRC32 CCITT checksum of a buffer of data.
If computing the checksum over multiple buffers and you want to feed the partial CRC32 back in, remember to take the 1's complement of the partial CRC32 first.
- Parameters
-
buf | The buffer containing the data. |
len | The number of bytes to include in the computation. |
seed | The seed to use. |
- Returns
- The CRC32 CCITT checksum (using the given seed).
◆ crc32_ccitt_table_lookup()
WS_DLL_PUBLIC uint32_t crc32_ccitt_table_lookup |
( |
unsigned char |
pos | ) |
|
Lookup a CRC-32/CCITT table value by position.
Retrieves the precomputed CRC value from the crc32_ccitt_table
at the specified position. This table is typically used to accelerate CRC-32/CCITT calculations by avoiding repeated polynomial division.
- Parameters
-
pos | Index into the CRC-32/CCITT lookup table (0–255). |
- Returns
- CRC value corresponding to the given position.
◆ crc32_mpeg2_seed()
WS_DLL_PUBLIC uint32_t crc32_mpeg2_seed |
( |
const uint8_t * |
buf, |
|
|
unsigned |
len, |
|
|
uint32_t |
seed |
|
) |
| |
Compute MPEG-2 CRC32 checksum of a buffer of data.
- Parameters
-
buf | The buffer containing the data. |
len | The number of bytes to include in the computation. |
seed | The seed to use. |
- Returns
- The CRC32 MPEG-2 checksum (using the given seed).
◆ crc32c_calculate()
WS_DLL_PUBLIC uint32_t crc32c_calculate |
( |
const void * |
buf, |
|
|
int |
len, |
|
|
uint32_t |
crc |
|
) |
| |
Compute CRC32C checksum of a buffer of data.
- Parameters
-
buf | The buffer containing the data. |
len | The number of bytes to include in the computation. |
crc | The preload value for the CRC32C computation. |
- Returns
- The CRC32C checksum.
◆ crc32c_calculate_no_swap()
WS_DLL_PUBLIC uint32_t crc32c_calculate_no_swap |
( |
const void * |
buf, |
|
|
int |
len, |
|
|
uint32_t |
crc |
|
) |
| |
Compute CRC32C checksum of a buffer of data without swapping seed crc or completed checksum.
- Parameters
-
buf | The buffer containing the data. |
len | The number of bytes to include in the computation. |
crc | The preload value for the CRC32C computation. |
- Returns
- The CRC32C checksum.
◆ crc32c_table_lookup()
WS_DLL_PUBLIC uint32_t crc32c_table_lookup |
( |
unsigned char |
pos | ) |
|
Lookup the crc value in the crc32c_table
- Parameters
-
pos | Position in the table. |
◆ Dot11DecryptWepDecrypt()
WS_DLL_PUBLIC int Dot11DecryptWepDecrypt |
( |
const unsigned char * |
seed, |
|
|
const size_t |
seed_len, |
|
|
unsigned char * |
cypher_text, |
|
|
const size_t |
data_len |
|
) |
| |
Decrypt WEP-encrypted 802.11 payload using RC4 stream cipher.
Performs WEP decryption on the provided cypher_text
buffer using the RC4 algorithm seeded with the specified initialization vector and WEP key. The decryption is done in-place, modifying cypher_text
directly.
This function assumes the input data is WEP-encrypted and that the seed contains both the IV and the shared WEP key. It does not verify the ICV.
- Parameters
-
seed | Pointer to the RC4 seed (IV + WEP key). |
seed_len | Length of the seed in bytes. |
cypher_text | Pointer to the encrypted data buffer (will be decrypted in-place). |
data_len | Length of the encrypted data in bytes. |
- Returns
- 0 on success, non-zero on failure.