|
Electroneum
|
#include <assert.h>#include <stddef.h>#include <stdint.h>#include <string.h>#include <stdio.h>#include <unistd.h>#include "int-util.h"#include "hash-ops.h"#include "oaes_lib.h"#include "variant2_int_sqrt.h"#include "variant4_random_math.h"#include "CryptonightR_JIT.h"#include <errno.h>
Classes | |
| union | cn_slow_hash_state |
Macros | |
| #define | MEMORY (1 << 21) |
| #define | ITER (1 << 20) |
| #define | AES_BLOCK_SIZE 16 |
| #define | AES_KEY_SIZE 32 |
| #define | INIT_SIZE_BLK 8 |
| #define | INIT_SIZE_BYTE (INIT_SIZE_BLK * AES_BLOCK_SIZE) |
| #define | VARIANT1_1(p) |
| #define | VARIANT1_2(p) |
| #define | VARIANT1_CHECK() |
| #define | NONCE_POINTER (((const uint8_t*)data)+35) |
| #define | VARIANT1_PORTABLE_INIT() |
| #define | VARIANT1_INIT64() |
| #define | VARIANT2_INIT64() |
| #define | VARIANT2_PORTABLE_INIT() |
| #define | VARIANT2_SHUFFLE_ADD_SSE2(base_ptr, offset) |
| #define | VARIANT2_SHUFFLE_ADD_NEON(base_ptr, offset) |
| #define | VARIANT2_PORTABLE_SHUFFLE_ADD(out, a_, base_ptr, offset) |
| #define | VARIANT2_INTEGER_MATH_DIVISION_STEP(b, ptr) |
| #define | VARIANT2_INTEGER_MATH_SSE2(b, ptr) |
| #define | VARIANT2_PORTABLE_INTEGER_MATH(b, ptr) |
| #define | VARIANT2_2_PORTABLE() |
| #define | VARIANT2_2() |
| #define | V4_REG_LOAD(dst, src) |
| #define | VARIANT4_RANDOM_MATH_INIT() |
| #define | VARIANT4_RANDOM_MATH(a, b, r, _b, _b1) |
| #define | hp_jitfunc ((v4_random_math_JIT_func)NULL) |
| #define | U64(x) ((uint64_t *) (x)) |
Functions | |
| void | aesb_single_round (const uint8_t *in, uint8_t *out, const uint8_t *expandedKey) |
| void | aesb_pseudo_round (const uint8_t *in, uint8_t *out, const uint8_t *expandedKey) |
| static void | local_abort (const char *msg) |
| static int | use_v4_jit (void) |
| void | slow_hash_allocate_state (void) |
| void | slow_hash_free_state (void) |
| static size_t | e2i (const uint8_t *a, size_t count) |
| static void | mul (const uint8_t *a, const uint8_t *b, uint8_t *res) |
| static void | sum_half_blocks (uint8_t *a, const uint8_t *b) |
| static void | copy_block (uint8_t *dst, const uint8_t *src) |
| static void | swap_blocks (uint8_t *a, uint8_t *b) |
| static void | xor_blocks (uint8_t *a, const uint8_t *b) |
| static void | xor64 (uint8_t *left, const uint8_t *right) |
| void | cn_slow_hash (const void *data, size_t length, char *hash, int variant, int prehashed, uint64_t height) |
Variables | |
| volatile int | use_v4_jit_flag = -1 |
| static void(*const | extra_hashes [4])(const void *, size_t, char *) |
| #define AES_BLOCK_SIZE 16 |
| #define AES_KEY_SIZE 32 |
| #define hp_jitfunc ((v4_random_math_JIT_func)NULL) |
| #define INIT_SIZE_BLK 8 |
| #define INIT_SIZE_BYTE (INIT_SIZE_BLK * AES_BLOCK_SIZE) |
| #define ITER (1 << 20) |
| #define MEMORY (1 << 21) |
| #define NONCE_POINTER (((const uint8_t*)data)+35) |
| #define U64 | ( | x | ) | ((uint64_t *) (x)) |
| #define V4_REG_LOAD | ( | dst, | |
| src | |||
| ) |
| #define VARIANT1_1 | ( | p | ) |
| #define VARIANT1_2 | ( | p | ) |
| #define VARIANT1_CHECK | ( | ) |
| #define VARIANT1_INIT64 | ( | ) |
| #define VARIANT1_PORTABLE_INIT | ( | ) |
| #define VARIANT2_2 | ( | ) |
| #define VARIANT2_2_PORTABLE | ( | ) |
| #define VARIANT2_INIT64 | ( | ) |
| #define VARIANT2_INTEGER_MATH_DIVISION_STEP | ( | b, | |
| ptr | |||
| ) |
| #define VARIANT2_INTEGER_MATH_SSE2 | ( | b, | |
| ptr | |||
| ) |
| #define VARIANT2_PORTABLE_INIT | ( | ) |
| #define VARIANT2_PORTABLE_INTEGER_MATH | ( | b, | |
| ptr | |||
| ) |
| #define VARIANT2_PORTABLE_SHUFFLE_ADD | ( | out, | |
| a_, | |||
| base_ptr, | |||
| offset | |||
| ) |
| #define VARIANT2_SHUFFLE_ADD_NEON | ( | base_ptr, | |
| offset | |||
| ) |
| #define VARIANT2_SHUFFLE_ADD_SSE2 | ( | base_ptr, | |
| offset | |||
| ) |
| #define VARIANT4_RANDOM_MATH | ( | a, | |
| b, | |||
| r, | |||
| _b, | |||
| _b1 | |||
| ) |
| #define VARIANT4_RANDOM_MATH_INIT | ( | ) |
| void aesb_pseudo_round | ( | const uint8_t * | in, |
| uint8_t * | out, | ||
| const uint8_t * | expandedKey | ||
| ) |
| void aesb_single_round | ( | const uint8_t * | in, |
| uint8_t * | out, | ||
| const uint8_t * | expandedKey | ||
| ) |
| void cn_slow_hash | ( | const void * | data, |
| size_t | length, | ||
| char * | hash, | ||
| int | variant, | ||
| int | prehashed, | ||
| uint64_t | height | ||
| ) |
|
static |
|
static |
|
static |
|
static |
| void slow_hash_allocate_state | ( | void | ) |
| void slow_hash_free_state | ( | void | ) |
|
static |
|
static |
|
inlinestatic |
|
static |
|
static |
|
static |
| volatile int use_v4_jit_flag = -1 |