73 lines
1.9 KiB
C
73 lines
1.9 KiB
C
#if (__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
void neoscrypt(const unsigned char *password, unsigned char *output,
|
|
unsigned int profile);
|
|
|
|
void neoscrypt_blake2s(const void *input, const unsigned int input_size,
|
|
const void *key, const unsigned char key_size,
|
|
void *output, const unsigned char output_size);
|
|
|
|
void neoscrypt_copy(void *dstp, const void *srcp, unsigned int len);
|
|
void neoscrypt_erase(void *dstp, unsigned int len);
|
|
void neoscrypt_xor(void *dstp, const void *srcp, unsigned int len);
|
|
|
|
#if defined(ASM) && defined(MINER_4WAY)
|
|
void neoscrypt_4way(const unsigned char *password, unsigned char *output,
|
|
unsigned char *scratchpad);
|
|
|
|
#ifdef SHA256
|
|
void scrypt_4way(const unsigned char *password, unsigned char *output,
|
|
unsigned char *scratchpad);
|
|
#endif
|
|
|
|
void neoscrypt_blake2s_4way(const unsigned char *input,
|
|
const unsigned char *key, unsigned char *output);
|
|
|
|
void neoscrypt_fastkdf_4way(const unsigned char *password,
|
|
const unsigned char *salt, unsigned char *output, unsigned char *scratchpad,
|
|
const unsigned int mode);
|
|
#endif
|
|
|
|
unsigned int cpu_vec_exts(void);
|
|
|
|
#if (__cplusplus)
|
|
}
|
|
#else
|
|
|
|
typedef unsigned long long ullong;
|
|
typedef signed long long llong;
|
|
typedef unsigned int uint;
|
|
typedef unsigned char uchar;
|
|
|
|
#ifndef MIN
|
|
#define MIN(a, b) ((a) < (b) ? a : b)
|
|
#endif
|
|
|
|
#ifndef MAX
|
|
#define MAX(a, b) ((a) > (b) ? a : b)
|
|
#endif
|
|
|
|
#define BLOCK_SIZE 64
|
|
#define DIGEST_SIZE 32
|
|
|
|
typedef uchar hash_digest[DIGEST_SIZE];
|
|
|
|
#define ROTL32(a,b) (((a) << (b)) | ((a) >> (32 - b)))
|
|
#define ROTR32(a,b) (((a) >> (b)) | ((a) << (32 - b)))
|
|
|
|
#define U8TO32_BE(p) \
|
|
(((uint)((p)[0]) << 24) | ((uint)((p)[1]) << 16) | \
|
|
((uint)((p)[2]) << 8) | ((uint)((p)[3])))
|
|
|
|
#define U32TO8_BE(p, v) \
|
|
(p)[0] = (uchar)((v) >> 24); (p)[1] = (uchar)((v) >> 16); \
|
|
(p)[2] = (uchar)((v) >> 8); (p)[3] = (uchar)((v) );
|
|
|
|
#define U64TO8_BE(p, v) \
|
|
U32TO8_BE((p), (uint)((v) >> 32)); \
|
|
U32TO8_BE((p) + 4, (uint)((v) ));
|
|
|
|
#endif
|