49 lines
986 B
C
49 lines
986 B
C
|
/* Blake2.h -- BLAKE2 Hash
|
||
|
2015-06-30 : Igor Pavlov : Public domain
|
||
|
2015 : Samuel Neves : Public domain */
|
||
|
|
||
|
#ifndef __BLAKE2_H
|
||
|
#define __BLAKE2_H
|
||
|
|
||
|
#include "7zTypes.h"
|
||
|
|
||
|
EXTERN_C_BEGIN
|
||
|
|
||
|
#define BLAKE2S_BLOCK_SIZE 64
|
||
|
#define BLAKE2S_DIGEST_SIZE 32
|
||
|
#define BLAKE2SP_PARALLEL_DEGREE 8
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
UInt32 h[8];
|
||
|
UInt32 t[2];
|
||
|
UInt32 f[2];
|
||
|
Byte buf[BLAKE2S_BLOCK_SIZE];
|
||
|
UInt32 bufPos;
|
||
|
UInt32 lastNode_f1;
|
||
|
UInt32 dummy[2]; /* for sizeof(CBlake2s) alignment */
|
||
|
} CBlake2s;
|
||
|
|
||
|
/* You need to xor CBlake2s::h[i] with input parameter block after Blake2s_Init0() */
|
||
|
/*
|
||
|
void Blake2s_Init0(CBlake2s *p);
|
||
|
void Blake2s_Update(CBlake2s *p, const Byte *data, size_t size);
|
||
|
void Blake2s_Final(CBlake2s *p, Byte *digest);
|
||
|
*/
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
CBlake2s S[BLAKE2SP_PARALLEL_DEGREE];
|
||
|
unsigned bufPos;
|
||
|
} CBlake2sp;
|
||
|
|
||
|
|
||
|
void Blake2sp_Init(CBlake2sp *p);
|
||
|
void Blake2sp_Update(CBlake2sp *p, const Byte *data, size_t size);
|
||
|
void Blake2sp_Final(CBlake2sp *p, Byte *digest);
|
||
|
|
||
|
EXTERN_C_END
|
||
|
|
||
|
#endif
|