/
githubmirror
/
bitcoin
Обзор
Документация
Войти
/
githubmirror
/
bitcoin
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/crypto/sha3.h
40 строк
1 KB
Hennadii Stepanov
refactor: Fix includes in `crypto` directory
09 сен 2025, 13:25
Не верифицирован
09 сен 2025, 13:25
bdb8ead
Код
Авторство
О чём код?
// Copyright (c) 2020-present The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_CRYPTO_SHA3_H #define BITCOIN_CRYPTO_SHA3_H #include <cstdint> #include <cstdlib> #include <span> //! The Keccak-f[1600] transform. void KeccakF(uint64_t (&st)[25]); class SHA3_256 { private: uint64_t m_state[25] = {0}; unsigned char m_buffer[8]; unsigned m_bufsize = 0; unsigned m_pos = 0; //! Sponge rate in bits. static constexpr unsigned RATE_BITS = 1088; //! Sponge rate expressed as a multiple of the buffer size. static constexpr unsigned RATE_BUFFERS = RATE_BITS / (8 * sizeof(m_buffer)); static_assert(RATE_BITS % (8 * sizeof(m_buffer)) == 0, "Rate must be a multiple of 8 bytes"); public: static constexpr size_t OUTPUT_SIZE = 32; SHA3_256() = default; SHA3_256& Write(std::span<const unsigned char> data); SHA3_256& Finalize(std::span<unsigned char> output); SHA3_256& Reset(); }; #endif // BITCOIN_CRYPTO_SHA3_H