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