コード例 #1
0
ファイル: hash.c プロジェクト: bushido/yara
uint32_t hash(
    uint32_t seed,
    const char* buffer,
    int len)
{
  int i;
  uint32_t result = seed;

  for (i = len - 1; i > 0; i--)
  {
    result ^= ROTATE_INT32(byte_to_int32[*buffer], i);
    buffer++;
  }

  result ^= byte_to_int32[*buffer];
  return result;
}
コード例 #2
0
ファイル: hash.c プロジェクト: TidyHuang/yara
uint32_t hash(
    uint32_t seed,
    const void* buffer,
    size_t len)
{
  const uint8_t* b = (uint8_t*) buffer;

  uint32_t result = seed;
  size_t i;

  for (i = len - 1; i > 0; i--)
  {
    result ^= ROTATE_INT32(byte_to_int32[*b], i);
    b++;
  }

  result ^= byte_to_int32[*b];
  return result;
}