xref: /aosp_15_r20/external/vboot_reference/firmware/2lib/include/2crc8.h (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
1*8617a60dSAndroid Build Coastguard Worker /* Copyright 2014 The ChromiumOS Authors
2*8617a60dSAndroid Build Coastguard Worker  * Use of this source code is governed by a BSD-style license that can be
3*8617a60dSAndroid Build Coastguard Worker  * found in the LICENSE file.
4*8617a60dSAndroid Build Coastguard Worker  *
5*8617a60dSAndroid Build Coastguard Worker  * Very simple 8-bit CRC function.
6*8617a60dSAndroid Build Coastguard Worker  */
7*8617a60dSAndroid Build Coastguard Worker 
8*8617a60dSAndroid Build Coastguard Worker #ifndef VBOOT_REFERENCE_2CRC8_H_
9*8617a60dSAndroid Build Coastguard Worker #define VBOOT_REFERENCE_2CRC8_H_
10*8617a60dSAndroid Build Coastguard Worker 
11*8617a60dSAndroid Build Coastguard Worker #include "2sysincludes.h"
12*8617a60dSAndroid Build Coastguard Worker 
13*8617a60dSAndroid Build Coastguard Worker /**
14*8617a60dSAndroid Build Coastguard Worker  * Calculate CRC-8 of the data, using the ITU version.
15*8617a60dSAndroid Build Coastguard Worker  *
16*8617a60dSAndroid Build Coastguard Worker  * Calculate CRC-8 ITU version of the given buffer, using x^8 + x^2 + x + 1
17*8617a60dSAndroid Build Coastguard Worker  * polynomial.  Note that the CRC-8 will evaluate to zero for a buffer of all
18*8617a60dSAndroid Build Coastguard Worker  * zeroes.
19*8617a60dSAndroid Build Coastguard Worker  *
20*8617a60dSAndroid Build Coastguard Worker  * @param data		Data to CRC
21*8617a60dSAndroid Build Coastguard Worker  * @param size		Size of data in bytes
22*8617a60dSAndroid Build Coastguard Worker  * @return CRC-8 of the data.
23*8617a60dSAndroid Build Coastguard Worker  */
24*8617a60dSAndroid Build Coastguard Worker uint8_t vb2_crc8(const void *data, uint32_t size);
25*8617a60dSAndroid Build Coastguard Worker 
26*8617a60dSAndroid Build Coastguard Worker #endif  /* VBOOT_REFERENCE_2CRC8_H_ */
27