/* Copyright (c) 2014 The Chromium OS Authors. All rights reserved. | |
* Use of this source code is governed by a BSD-style license that can be | |
* found in the LICENSE file. | |
*/ | |
#include "common.h" | |
#include "crc8.h" | |
uint8_t crc8(const uint8_t *data, int len) | |
{ | |
unsigned crc = 0; | |
int i, j; | |
for (j = len; j; j--, data++) { | |
crc ^= (*data << 8); | |
for (i = 8; i; i--) { | |
if (crc & 0x8000) | |
crc ^= (0x1070 << 3); | |
crc <<= 1; | |
} | |
} | |
return (uint8_t)(crc >> 8); | |
} |