UltrafastSecp256k1 3.50.0
Ultra high-performance secp256k1 elliptic curve cryptography library
Loading...
Searching...
No Matches
hash_accel.hpp File Reference
#include <array>
#include <cstdint>
#include <cstddef>

Go to the source code of this file.

Namespaces

namespace  secp256k1
 
namespace  secp256k1::hash
 
namespace  secp256k1::hash::scalar
 

Enumerations

enum class  secp256k1::hash::HashTier : int {
  secp256k1::hash::SCALAR = 0 , secp256k1::hash::ARM_SHA2 = 1 , secp256k1::hash::SHA_NI = 2 , secp256k1::hash::AVX2 = 3 ,
  secp256k1::hash::AVX512 = 4
}
 

Functions

HashTier secp256k1::hash::detect_hash_tier () noexcept
 Detect best available hashing tier at runtime.
 
const char * secp256k1::hash::hash_tier_name (HashTier tier) noexcept
 Human-readable tier name.
 
bool secp256k1::hash::sha_ni_available () noexcept
 Check individual features.
 
bool secp256k1::hash::avx2_available () noexcept
 
bool secp256k1::hash::avx512_available () noexcept
 
std::array< std::uint8_t, 32 > secp256k1::hash::sha256 (const void *data, std::size_t len) noexcept
 SHA-256 of arbitrary data (auto-selects best implementation).
 
void secp256k1::hash::sha256_33 (const std::uint8_t *pubkey33, std::uint8_t *out32) noexcept
 
void secp256k1::hash::sha256_32 (const std::uint8_t *in32, std::uint8_t *out32) noexcept
 SHA-256 of exactly 32 bytes (e.g. second hash in double-SHA256)
 
std::array< std::uint8_t, 32 > secp256k1::hash::sha256d (const void *data, std::size_t len) noexcept
 Double-SHA256: SHA256(SHA256(data)) for arbitrary data.
 
std::array< std::uint8_t, 20 > secp256k1::hash::ripemd160 (const void *data, std::size_t len) noexcept
 RIPEMD-160 of arbitrary data (auto-selects best implementation).
 
void secp256k1::hash::ripemd160_32 (const std::uint8_t *in32, std::uint8_t *out20) noexcept
 
std::array< std::uint8_t, 20 > secp256k1::hash::hash160 (const void *data, std::size_t len) noexcept
 Hash160 of arbitrary data.
 
void secp256k1::hash::hash160_33 (const std::uint8_t *pubkey33, std::uint8_t *out20) noexcept
 
void secp256k1::hash::sha256_33_batch (const std::uint8_t *pubkeys, std::uint8_t *out32s, std::size_t count) noexcept
 
void secp256k1::hash::ripemd160_32_batch (const std::uint8_t *in32s, std::uint8_t *out20s, std::size_t count) noexcept
 
void secp256k1::hash::hash160_33_batch (const std::uint8_t *pubkeys, std::uint8_t *out20s, std::size_t count) noexcept
 
void secp256k1::hash::scalar::sha256_compress (const std::uint8_t block[64], std::uint32_t state[8]) noexcept
 
void secp256k1::hash::scalar::sha256_33 (const std::uint8_t *pubkey33, std::uint8_t *out32) noexcept
 
void secp256k1::hash::scalar::sha256_32 (const std::uint8_t *in32, std::uint8_t *out32) noexcept
 
void secp256k1::hash::scalar::ripemd160_compress (const std::uint8_t block[64], std::uint32_t state[5]) noexcept
 
void secp256k1::hash::scalar::ripemd160_32 (const std::uint8_t *in32, std::uint8_t *out20) noexcept
 
void secp256k1::hash::scalar::hash160_33 (const std::uint8_t *pubkey33, std::uint8_t *out20) noexcept