00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00026 #ifndef _SHA512_H
00027 #define _SHA512_H
00028
00029 #include "beecrypt/beecrypt.h"
00030
00034 #ifdef __cplusplus
00035 struct BEECRYPTAPI sha512Param
00036 #else
00037 struct _sha512Param
00038 #endif
00039 {
00042 uint64_t h[8];
00045 uint64_t data[80];
00050 #if (MP_WBITS == 64)
00051 mpw length[2];
00052 #elif (MP_WBITS == 32)
00053 mpw length[4];
00054 #else
00055 # error
00056 #endif
00057
00061 uint64_t offset;
00062 };
00063
00064 #ifndef __cplusplus
00065 typedef struct _sha512Param sha512Param;
00066 #endif
00067
00068 #ifdef __cplusplus
00069 extern "C" {
00070 #endif
00071
00075 extern BEECRYPTAPI const hashFunction sha512;
00076
00082 BEECRYPTAPI
00083 void sha512Process(sha512Param* sp);
00084
00091 BEECRYPTAPI
00092 int sha512Reset (sha512Param* sp);
00093
00102 BEECRYPTAPI
00103 int sha512Update (sha512Param* sp, const byte* data, size_t size);
00104
00112 BEECRYPTAPI
00113 int sha512Digest (sha512Param* sp, byte* digest);
00114
00115 #ifdef __cplusplus
00116 }
00117 #endif
00118
00119 #endif