// Copyright (c) 2014-2018 Zano Project // Copyright (c) 2014-2018 The Louisdor Project // Copyright (c) 2012-2013 The Boolberry developers // Copyright (c) 2017-2025 Lethean (https://lt.hn) // // Licensed under the European Union Public Licence (EUPL) version 1.2. // You may obtain a copy of the licence at: // // https://joinup.ec.europa.eu/software/page/eupl/licence-eupl // // The EUPL is a copyleft licence that is compatible with the MIT/X11 // licence used by the original projects; the MIT terms are therefore // considered “grandfathered” under the EUPL for this code. // // SPDX‑License‑Identifier: EUPL-1.2 // #include #include #include #include "hash-ops.h" #include "keccak.h" void hash_permutation(union hash_state *state) { keccakf((uint64_t*)state, 24); } void hash_process(union hash_state *state, const uint8_t *buf, size_t count) { keccak1600(buf, (int)count, (uint8_t*)state); } void cn_fast_hash_old(const void *data, size_t length, char *hash) { union hash_state state; hash_process(&state, data, length); memcpy(hash, &state, HASH_SIZE); } void cn_fast_hash(const void *data, size_t length, char *hash) { keccak(data, (int)length, (uint8_t*)hash, HASH_SIZE); }