📄 crc24.cpp
字号:
/************************************************** CRC24 Source File ** (C) 1999-2002 The Botan Project **************************************************/#include <botan/crc24.h>namespace Botan {/************************************************** Update a CRC24 Hash **************************************************/void CRC24::add_data(const byte input[], u32bit length) { u32bit tmp = crc; while(length >= 16) { tmp = TABLE[((tmp >> 16) ^ input[ 0]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 1]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 2]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 3]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 4]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 5]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 6]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 7]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 8]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 9]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[10]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[11]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[12]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[13]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[14]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[15]) & 0xFF] ^ (tmp << 8); input += 16; length -= 16; } for(u32bit j = 0; j != length; j++) tmp = TABLE[((tmp >> 16) ^ input[j]) & 0xFF] ^ (tmp << 8); crc = tmp; }/************************************************** Finalize a CRC24 Hash **************************************************/void CRC24::final_result(byte output[]) { for(u32bit j = 0; j != 3; j++) output[j] = get_byte(j+1, crc); clear(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -