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