Monero
Classes | Namespaces | Enumerations | Functions | Variables
hash.h File Reference
#include <iostream>
#include <stddef.h>
#include <stdexcept>
#include "common/pod-class.h"
#include "generic-ops.h"
#include "hex.h"
#include "span.h"
#include "hash-ops.h"
Include dependency graph for hash.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

union  crypto::hash_state
 

Namespaces

 crypto
 crypto namespace.
 

Enumerations

enum  { crypto::HASH_SIZE = 32, crypto::HASH_DATA_AREA = 136 }
 

Functions

static void * crypto::padd (void *p, size_t i)
 
static const void * crypto::cpadd (const void *p, size_t i)
 
static void crypto::place_length (uint8_t *buffer, size_t bufsize, size_t length)
 
void crypto::hash_permutation (union hash_state *state)
 
void crypto::hash_process (union hash_state *state, const uint8_t *buf, size_t count)
 
void crypto::cn_fast_hash (const void *data, size_t length, char *hash)
 
void crypto::cn_slow_hash (const void *data, size_t length, char *hash, int variant, int prehashed, uint64_t height)
 
void crypto::hash_extra_blake (const void *data, size_t length, char *hash)
 
void crypto::hash_extra_groestl (const void *data, size_t length, char *hash)
 
void crypto::hash_extra_jh (const void *data, size_t length, char *hash)
 
void crypto::hash_extra_skein (const void *data, size_t length, char *hash)
 
void crypto::tree_hash (const char(*hashes)[HASH_SIZE], size_t count, char *root_hash)
 
bool crypto::tree_path (size_t count, size_t idx, uint32_t *path)
 
bool crypto::tree_branch (const char(*hashes)[HASH_SIZE], size_t count, const char *hash, char(*branch)[HASH_SIZE], size_t *depth, uint32_t *path)
 
bool crypto::tree_branch_hash (const char hash[HASH_SIZE], const char(*branch)[HASH_SIZE], size_t depth, uint32_t path, char root[HASH_SIZE])
 
bool crypto::is_branch_in_tree (const char hash[HASH_SIZE], const char root[HASH_SIZE], const char(*branch)[HASH_SIZE], size_t depth, uint32_t path)
 
void crypto::rx_slow_hash_allocate_state (void)
 
void crypto::rx_slow_hash_free_state (void)
 
uint64_t crypto::rx_seedheight (const uint64_t height)
 
void crypto::rx_seedheights (const uint64_t height, uint64_t *seed_height, uint64_t *next_height)
 
void crypto::rx_set_main_seedhash (const char *seedhash, size_t max_dataset_init_threads)
 
void crypto::rx_slow_hash (const char *seedhash, const void *data, size_t length, char *result_hash)
 
void crypto::rx_set_miner_thread (uint32_t value, size_t max_dataset_init_threads)
 
uint32_t crypto::rx_get_miner_thread (void)
 
void crypto::cn_fast_hash (const void *data, std::size_t length, hash &hash)
 
hash crypto::cn_fast_hash (const void *data, std::size_t length)
 
static constexpr void crypto::cn_variant1_check (const std::size_t length, const int variant)
 
void crypto::cn_slow_hash (const void *data, std::size_t length, hash &hash, int variant=0, uint64_t height=0)
 
void crypto::cn_slow_hash_prehashed (const void *data, std::size_t length, hash &hash, int variant=0, uint64_t height=0)
 
void crypto::tree_hash (const hash *hashes, std::size_t count, hash &root_hash)
 
std::ostream & crypto::operator<< (std::ostream &o, const crypto::hash &v)
 
std::ostream & crypto::operator<< (std::ostream &o, const crypto::hash8 &v)
 

Variables

 crypto::PUSH_WARNINGS
 
POD_CLASS crypto::hash
 
POD_CLASS crypto::hash8
 
static constexpr crypto::hash crypto::null_hash = {}
 
static constexpr crypto::hash8 crypto::null_hash8 = {}