Monero
Loading...
Searching...
No Matches
argon2.h File Reference
#include <stdint.h>
#include <stddef.h>
#include <limits.h>
Include dependency graph for argon2.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Argon2_Context

Macros

#define ARGON2_MIN_LANES   UINT32_C(1)
#define ARGON2_MAX_LANES   UINT32_C(0xFFFFFF)
#define ARGON2_MIN_THREADS   UINT32_C(1)
#define ARGON2_MAX_THREADS   UINT32_C(0xFFFFFF)
#define ARGON2_SYNC_POINTS   UINT32_C(4)
#define ARGON2_MIN_OUTLEN   UINT32_C(4)
#define ARGON2_MAX_OUTLEN   UINT32_C(0xFFFFFFFF)
#define ARGON2_MIN_MEMORY   (2 * ARGON2_SYNC_POINTS) /* 2 blocks per slice */
#define ARGON2_MIN(a, b)
#define ARGON2_MAX_MEMORY_BITS   ARGON2_MIN(UINT32_C(32), (sizeof(void *) * CHAR_BIT - 10 - 1))
#define ARGON2_MAX_MEMORY   ARGON2_MIN(UINT32_C(0xFFFFFFFF), UINT64_C(1) << ARGON2_MAX_MEMORY_BITS)
#define ARGON2_MIN_TIME   UINT32_C(1)
#define ARGON2_MAX_TIME   UINT32_C(0xFFFFFFFF)
#define ARGON2_MIN_PWD_LENGTH   UINT32_C(0)
#define ARGON2_MAX_PWD_LENGTH   UINT32_C(0xFFFFFFFF)
#define ARGON2_MIN_AD_LENGTH   UINT32_C(0)
#define ARGON2_MAX_AD_LENGTH   UINT32_C(0xFFFFFFFF)
#define ARGON2_MIN_SALT_LENGTH   UINT32_C(8)
#define ARGON2_MAX_SALT_LENGTH   UINT32_C(0xFFFFFFFF)
#define ARGON2_MIN_SECRET   UINT32_C(0)
#define ARGON2_MAX_SECRET   UINT32_C(0xFFFFFFFF)
#define ARGON2_DEFAULT_FLAGS   UINT32_C(0)
#define ARGON2_FLAG_CLEAR_PASSWORD   (UINT32_C(1) << 0)
#define ARGON2_FLAG_CLEAR_SECRET   (UINT32_C(1) << 1)

Typedefs

typedef enum Argon2_ErrorCodes argon2_error_codes
typedef int(* allocate_fptr) (uint8_t **memory, size_t bytes_to_allocate)
typedef void(* deallocate_fptr) (uint8_t *memory, size_t bytes_to_allocate)
typedef struct Argon2_Context argon2_context
typedef enum Argon2_type argon2_type
typedef enum Argon2_version argon2_version
typedef struct Argon2_instance_t argon2_instance_t
typedef struct Argon2_position_t argon2_position_t
typedef void randomx_argon2_impl(const argon2_instance_t *instance, argon2_position_t position)

Enumerations

enum  Argon2_ErrorCodes {
  ARGON2_OK = 0 , ARGON2_OUTPUT_PTR_NULL = -1 , ARGON2_OUTPUT_TOO_SHORT = -2 , ARGON2_OUTPUT_TOO_LONG = -3 ,
  ARGON2_PWD_TOO_SHORT = -4 , ARGON2_PWD_TOO_LONG = -5 , ARGON2_SALT_TOO_SHORT = -6 , ARGON2_SALT_TOO_LONG = -7 ,
  ARGON2_AD_TOO_SHORT = -8 , ARGON2_AD_TOO_LONG = -9 , ARGON2_SECRET_TOO_SHORT = -10 , ARGON2_SECRET_TOO_LONG = -11 ,
  ARGON2_TIME_TOO_SMALL = -12 , ARGON2_TIME_TOO_LARGE = -13 , ARGON2_MEMORY_TOO_LITTLE = -14 , ARGON2_MEMORY_TOO_MUCH = -15 ,
  ARGON2_LANES_TOO_FEW = -16 , ARGON2_LANES_TOO_MANY = -17 , ARGON2_PWD_PTR_MISMATCH = -18 , ARGON2_SALT_PTR_MISMATCH = -19 ,
  ARGON2_SECRET_PTR_MISMATCH = -20 , ARGON2_AD_PTR_MISMATCH = -21 , ARGON2_MEMORY_ALLOCATION_ERROR = -22 , ARGON2_FREE_MEMORY_CBK_NULL = -23 ,
  ARGON2_ALLOCATE_MEMORY_CBK_NULL = -24 , ARGON2_INCORRECT_PARAMETER = -25 , ARGON2_INCORRECT_TYPE = -26 , ARGON2_OUT_PTR_MISMATCH = -27 ,
  ARGON2_THREADS_TOO_FEW = -28 , ARGON2_THREADS_TOO_MANY = -29 , ARGON2_MISSING_ARGS = -30 , ARGON2_ENCODING_FAIL = -31 ,
  ARGON2_DECODING_FAIL = -32 , ARGON2_THREAD_FAIL = -33 , ARGON2_DECODING_LENGTH_FAIL = -34 , ARGON2_VERIFY_MISMATCH = -35
}
enum  Argon2_type { Argon2_d = 0 , Argon2_i = 1 , Argon2_id = 2 }
enum  Argon2_version { ARGON2_VERSION_10 = 0x10 , ARGON2_VERSION_13 = 0x13 , ARGON2_VERSION_NUMBER = ARGON2_VERSION_13 }

Functions

void randomx_argon2_fill_segment_ref (const argon2_instance_t *instance, argon2_position_t position)
randomx_argon2_implrandomx_argon2_impl_ssse3 ()
randomx_argon2_implrandomx_argon2_impl_avx2 ()

Macro Definition Documentation

◆ ARGON2_DEFAULT_FLAGS

#define ARGON2_DEFAULT_FLAGS   UINT32_C(0)

◆ ARGON2_FLAG_CLEAR_PASSWORD

#define ARGON2_FLAG_CLEAR_PASSWORD   (UINT32_C(1) << 0)

◆ ARGON2_FLAG_CLEAR_SECRET

#define ARGON2_FLAG_CLEAR_SECRET   (UINT32_C(1) << 1)

◆ ARGON2_MAX_AD_LENGTH

#define ARGON2_MAX_AD_LENGTH   UINT32_C(0xFFFFFFFF)

◆ ARGON2_MAX_LANES

#define ARGON2_MAX_LANES   UINT32_C(0xFFFFFF)

◆ ARGON2_MAX_MEMORY

#define ARGON2_MAX_MEMORY   ARGON2_MIN(UINT32_C(0xFFFFFFFF), UINT64_C(1) << ARGON2_MAX_MEMORY_BITS)

◆ ARGON2_MAX_MEMORY_BITS

#define ARGON2_MAX_MEMORY_BITS   ARGON2_MIN(UINT32_C(32), (sizeof(void *) * CHAR_BIT - 10 - 1))

◆ ARGON2_MAX_OUTLEN

#define ARGON2_MAX_OUTLEN   UINT32_C(0xFFFFFFFF)

◆ ARGON2_MAX_PWD_LENGTH

#define ARGON2_MAX_PWD_LENGTH   UINT32_C(0xFFFFFFFF)

◆ ARGON2_MAX_SALT_LENGTH

#define ARGON2_MAX_SALT_LENGTH   UINT32_C(0xFFFFFFFF)

◆ ARGON2_MAX_SECRET

#define ARGON2_MAX_SECRET   UINT32_C(0xFFFFFFFF)

◆ ARGON2_MAX_THREADS

#define ARGON2_MAX_THREADS   UINT32_C(0xFFFFFF)

◆ ARGON2_MAX_TIME

#define ARGON2_MAX_TIME   UINT32_C(0xFFFFFFFF)

◆ ARGON2_MIN

#define ARGON2_MIN ( a,
b )
Value:
((a) < (b) ? (a) : (b))
cryptonote::block b
Definition block.cpp:40
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition pointer.h:1124

◆ ARGON2_MIN_AD_LENGTH

#define ARGON2_MIN_AD_LENGTH   UINT32_C(0)

◆ ARGON2_MIN_LANES

#define ARGON2_MIN_LANES   UINT32_C(1)

◆ ARGON2_MIN_MEMORY

#define ARGON2_MIN_MEMORY   (2 * ARGON2_SYNC_POINTS) /* 2 blocks per slice */

◆ ARGON2_MIN_OUTLEN

#define ARGON2_MIN_OUTLEN   UINT32_C(4)

◆ ARGON2_MIN_PWD_LENGTH

#define ARGON2_MIN_PWD_LENGTH   UINT32_C(0)

◆ ARGON2_MIN_SALT_LENGTH

#define ARGON2_MIN_SALT_LENGTH   UINT32_C(8)

◆ ARGON2_MIN_SECRET

#define ARGON2_MIN_SECRET   UINT32_C(0)

◆ ARGON2_MIN_THREADS

#define ARGON2_MIN_THREADS   UINT32_C(1)

◆ ARGON2_MIN_TIME

#define ARGON2_MIN_TIME   UINT32_C(1)

◆ ARGON2_SYNC_POINTS

#define ARGON2_SYNC_POINTS   UINT32_C(4)

Typedef Documentation

◆ allocate_fptr

typedef int(* allocate_fptr) (uint8_t **memory, size_t bytes_to_allocate)

◆ argon2_context

◆ argon2_error_codes

◆ argon2_instance_t

◆ argon2_position_t

◆ argon2_type

typedef enum Argon2_type argon2_type

◆ argon2_version

◆ deallocate_fptr

typedef void(* deallocate_fptr) (uint8_t *memory, size_t bytes_to_allocate)

◆ randomx_argon2_impl

typedef void randomx_argon2_impl(const argon2_instance_t *instance, argon2_position_t position)

Enumeration Type Documentation

◆ Argon2_ErrorCodes

Enumerator
ARGON2_OK 
ARGON2_OUTPUT_PTR_NULL 
ARGON2_OUTPUT_TOO_SHORT 
ARGON2_OUTPUT_TOO_LONG 
ARGON2_PWD_TOO_SHORT 
ARGON2_PWD_TOO_LONG 
ARGON2_SALT_TOO_SHORT 
ARGON2_SALT_TOO_LONG 
ARGON2_AD_TOO_SHORT 
ARGON2_AD_TOO_LONG 
ARGON2_SECRET_TOO_SHORT 
ARGON2_SECRET_TOO_LONG 
ARGON2_TIME_TOO_SMALL 
ARGON2_TIME_TOO_LARGE 
ARGON2_MEMORY_TOO_LITTLE 
ARGON2_MEMORY_TOO_MUCH 
ARGON2_LANES_TOO_FEW 
ARGON2_LANES_TOO_MANY 
ARGON2_PWD_PTR_MISMATCH 
ARGON2_SALT_PTR_MISMATCH 
ARGON2_SECRET_PTR_MISMATCH 
ARGON2_AD_PTR_MISMATCH 
ARGON2_MEMORY_ALLOCATION_ERROR 
ARGON2_FREE_MEMORY_CBK_NULL 
ARGON2_ALLOCATE_MEMORY_CBK_NULL 
ARGON2_INCORRECT_PARAMETER 
ARGON2_INCORRECT_TYPE 
ARGON2_OUT_PTR_MISMATCH 
ARGON2_THREADS_TOO_FEW 
ARGON2_THREADS_TOO_MANY 
ARGON2_MISSING_ARGS 
ARGON2_ENCODING_FAIL 
ARGON2_DECODING_FAIL 
ARGON2_THREAD_FAIL 
ARGON2_DECODING_LENGTH_FAIL 
ARGON2_VERIFY_MISMATCH 

◆ Argon2_type

Enumerator
Argon2_d 
Argon2_i 
Argon2_id 

◆ Argon2_version

Enumerator
ARGON2_VERSION_10 
ARGON2_VERSION_13 
ARGON2_VERSION_NUMBER 

Function Documentation

◆ randomx_argon2_fill_segment_ref()

void randomx_argon2_fill_segment_ref ( const argon2_instance_t * instance,
argon2_position_t position )

◆ randomx_argon2_impl_avx2()

randomx_argon2_impl * randomx_argon2_impl_avx2 ( )

◆ randomx_argon2_impl_ssse3()

randomx_argon2_impl * randomx_argon2_impl_ssse3 ( )