ГОСТ 33465—2015
Приложение Д
(справочное)
Пример реализации алгоритма расчета контрольной суммы CRC8 на языке СГ
Name : CRC-8
Poly : 0x31 хЛ8 + хл5 + хА4 + 1
Init : OxFF
Revert: false
XorOut: 0x00
Check : 0xF7 ("123456789")
V
const unsigned char CRC8TaWe(256] - {
0x00. 0x31.0x62. 0x53, 0xC4. 0xF5. 0xA6.0x97.
0xB9, 0x88. OxDB. OxEA, 0x7D. 0x4C. 0x1F. 0x2E.
0x43. 0x72. 0x21. 0x10. 0x87. 0xB6. 0xE5. 0x04.
OxFA. OxCB. 0x98. 0xA9. 0x3E. OxOF. 0x5C. 0x6D.
0x86. 0xB7. 0xE4. 0xD5. 0x42. 0x73. 0x20. 0x11.
0x3F. OxOE, 0x5D. 0x6C. OxFB. OxCA. 0x99. 0xA8.
0xC5. 0xF4. 0xA7. 0x96. 0x01. 0x30. 0x63, 0x52.
0x7C. 0x4D. 0x1 E. 0x2F. 0xB8. 0x89. OxDA. OxEB.
0x3D. OxOC. 0x5F. 0x6E. 0xF9. 0xC8. 0x9B. OxAA.
0x84. 0xB5. 0xE6. 0x07. 0x40. 0x71.0x22. 0x13.
0x7E, 0x4F. 0x1 C. 0x2D. OxBA. 0x8B. 0x08. 0xE9.
0xC7. 0xF6. 0xA5. 0x94. 0x03. 0x32. 0x61.0x50.
OxBB. 0x8A. 0x09. 0xE8, 0x7F. 0x4E. 0x10. 0x2C.
0x02. 0x33. 0x60. 0x51.0xC6. 0xF7. 0xA4, 0x95.
0xF8. 0xC9. 0x9A. OxAB. 0x3C. 0x00. 0x5E. 0x6F.
0x41.0x70. 0x23. 0x12. 0x85. 0xB4. 0xE7. 0x06.
0x7A. 0x4B. 0x18. 0x29. OxBE. 0x8F. OxDC. OxED.
0xC3. 0xF2. 0xA1. 0x90. 0x07. 0x36. 0x65. 0x54.
0x39. 0x08, 0x58. ОхбА. OxFD, OxCC. 0x9F. OxAE.
0x80. 0xB1, 0xE2. 0x03. 0x44. 0x75. 0x26. 0x17.
OxFC. OxCD. 0x9E, OxAF. 0x38. 0x09, 0x5A. 0x6B.
0x45. 0x74. 0x27. 0x16. 0x81. OxBO, 0xE3. 0x02.
OxBF. 0x8E. OxDD. OxEC. Ox7B. 0x4A. 0x19. 0x28.
0x06. 0x37. 0x64. 0x55. 0xC2. 0xF3. OxAO. 0x91.
0x47. 0x76. 0x25. 0x14. 0x83. 0xB2. OxE1. OxDO.
OxFE. OxCF. 0x9C. OxAD. 0x3A. OxOB. 0x58. 0x69.
0x04. 0x35. 0x66. 0x57. OxCO. OxF1. 0xA2. 0x93.
OxBD. 0x8C. OxOF. OxEE. 0x79. 0x48. Ox1B. Ox2A.
OxC1. OxFO. OxA3. 0x92. 0x05. 0x34. 0x67. 0x56.
0x78. 0x49. Ox1A. 0x2B. OxBC. 0x80. OxOE. OxEF.
0x82. 0xB3. OxEO. 0x01. 0x46. 0x77. 0x24. 0x15.
0x3B. OxOA. 0x59. 0x68. OxFF. OxCE. Ox9D. OxAC
}:
unsigned char CRC8(unsigned char MpBlock, unsigned char len)
{
unsigned char crc - OxFF:
while (len-)
crc - CRC8Tabte{crc A,lpBlock++]:
return crc;
}
59