1 /* crc_data.c
2  * static crc tables for crc.c
3  *
4  * Copyright (c) 2007 by Intel Corporation.
5  *
6  * Author: Mike Harvey <michael.harvey@intel.com>
7  *
8  * Wireshark - Network traffic analyzer
9  * By Gerald Combs <gerald@wireshark.org>
10  * Copyright 1999 Gerald Combs
11  *
12  * SPDX-License-Identifier: GPL-2.0-or-later
13  */
14 
15 #include "crc.h"
16 
17 #ifdef STATIC_DATA
18 
19 #include <glib.h>
20 
21 guint32 crc32_table[256] = {
22     0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9,
23     0x130476dc, 0x17c56b6b, 0x1a864db2, 0x1e475005,
24     0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61,
25     0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,
26     0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9,
27     0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75,
28     0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011,
29     0x791d4014, 0x7ddc5da3, 0x709f7b7a, 0x745e66cd,
30     0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
31     0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5,
32     0xbe2b5b58, 0xbaea46ef, 0xb7a96036, 0xb3687d81,
33     0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d,
34     0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49,
35     0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,
36     0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1,
37     0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d,
38     0x34867077, 0x30476dc0, 0x3d044b19, 0x39c556ae,
39     0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072,
40     0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16,
41     0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca,
42     0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde,
43     0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02,
44     0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, 0x53dc6066,
45     0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
46     0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e,
47     0xbfa1b04b, 0xbb60adfc, 0xb6238b25, 0xb2e29692,
48     0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6,
49     0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a,
50     0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e,
51     0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2,
52     0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686,
53     0xd5b88683, 0xd1799b34, 0xdc3abded, 0xd8fba05a,
54     0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637,
55     0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,
56     0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f,
57     0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53,
58     0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47,
59     0x36194d42, 0x32d850f5, 0x3f9b762c, 0x3b5a6b9b,
60     0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
61     0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623,
62     0xf12f560e, 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7,
63     0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b,
64     0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f,
65     0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,
66     0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7,
67     0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b,
68     0x9b3660c6, 0x9ff77d71, 0x92b45ba8, 0x9675461f,
69     0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3,
70     0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640,
71     0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c,
72     0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8,
73     0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24,
74     0x119b4be9, 0x155a565e, 0x18197087, 0x1cd86d30,
75     0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
76     0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088,
77     0x2497d08d, 0x2056cd3a, 0x2d15ebe3, 0x29d4f654,
78     0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0,
79     0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c,
80     0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18,
81     0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4,
82     0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0,
83     0x9abc8bd5, 0x9e7d9662, 0x933eb0bb, 0x97ffad0c,
84     0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668,
85     0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
86 };
87 
88 
89 guint8 hcs_table[256] = {
90     0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15,
91     0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d,
92     0x70, 0x77, 0x7e, 0x79, 0x6c, 0x6b, 0x62, 0x65,
93     0x48, 0x4f, 0x46, 0x41, 0x54, 0x53, 0x5a, 0x5d,
94     0xe0, 0xe7, 0xee, 0xe9, 0xfc, 0xfb, 0xf2, 0xf5,
95     0xd8, 0xdf, 0xd6, 0xd1, 0xc4, 0xc3, 0xca, 0xcd,
96     0x90, 0x97, 0x9e, 0x99, 0x8c, 0x8b, 0x82, 0x85,
97     0xa8, 0xaf, 0xa6, 0xa1, 0xb4, 0xb3, 0xba, 0xbd,
98     0xc7, 0xc0, 0xc9, 0xce, 0xdb, 0xdc, 0xd5, 0xd2,
99     0xff, 0xf8, 0xf1, 0xf6, 0xe3, 0xe4, 0xed, 0xea,
100     0xb7, 0xb0, 0xb9, 0xbe, 0xab, 0xac, 0xa5, 0xa2,
101     0x8f, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9d, 0x9a,
102     0x27, 0x20, 0x29, 0x2e, 0x3b, 0x3c, 0x35, 0x32,
103     0x1f, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0d, 0x0a,
104     0x57, 0x50, 0x59, 0x5e, 0x4b, 0x4c, 0x45, 0x42,
105     0x6f, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7d, 0x7a,
106     0x89, 0x8e, 0x87, 0x80, 0x95, 0x92, 0x9b, 0x9c,
107     0xb1, 0xb6, 0xbf, 0xb8, 0xad, 0xaa, 0xa3, 0xa4,
108     0xf9, 0xfe, 0xf7, 0xf0, 0xe5, 0xe2, 0xeb, 0xec,
109     0xc1, 0xc6, 0xcf, 0xc8, 0xdd, 0xda, 0xd3, 0xd4,
110     0x69, 0x6e, 0x67, 0x60, 0x75, 0x72, 0x7b, 0x7c,
111     0x51, 0x56, 0x5f, 0x58, 0x4d, 0x4a, 0x43, 0x44,
112     0x19, 0x1e, 0x17, 0x10, 0x05, 0x02, 0x0b, 0x0c,
113     0x21, 0x26, 0x2f, 0x28, 0x3d, 0x3a, 0x33, 0x34,
114     0x4e, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5c, 0x5b,
115     0x76, 0x71, 0x78, 0x7f, 0x6a, 0x6d, 0x64, 0x63,
116     0x3e, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2c, 0x2b,
117     0x06, 0x01, 0x08, 0x0f, 0x1a, 0x1d, 0x14, 0x13,
118     0xae, 0xa9, 0xa0, 0xa7, 0xb2, 0xb5, 0xbc, 0xbb,
119     0x96, 0x91, 0x98, 0x9f, 0x8a, 0x8d, 0x84, 0x83,
120     0xde, 0xd9, 0xd0, 0xd7, 0xc2, 0xc5, 0xcc, 0xcb,
121     0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3
122 };
123 #endif
124 
125 guint16 crc16_table[256] = {
126     0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
127     0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
128     0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
129     0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
130     0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
131     0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
132     0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
133     0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
134     0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
135     0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
136     0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
137     0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
138     0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
139     0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
140     0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
141     0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
142     0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
143     0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
144     0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
145     0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
146     0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
147     0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
148     0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
149     0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
150     0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
151     0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
152     0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
153     0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
154     0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
155     0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
156     0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
157     0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0,
158 };
159 
160 /*
161  * Editor modelines  -  https://www.wireshark.org/tools/modelines.html
162  *
163  * Local variables:
164  * c-basic-offset: 4
165  * tab-width: 8
166  * indent-tabs-mode: nil
167  * End:
168  *
169  * vi: set shiftwidth=4 tabstop=8 expandtab:
170  * :indentSize=4:tabSize=8:noTabs=true:
171  */
172