00001
00038 #ifndef SPH_SHAVITE_H__
00039 #define SPH_SHAVITE_H__
00040
00041 #include <stddef.h>
00042 #include "sph_types.h"
00043
00047 #define SPH_SIZE_shavite224 224
00048
00052 #define SPH_SIZE_shavite256 256
00053
00057 #define SPH_SIZE_shavite384 384
00058
00062 #define SPH_SIZE_shavite512 512
00063
00074 typedef struct {
00075 #ifndef DOXYGEN_IGNORE
00076 unsigned char buf[64];
00077 size_t ptr;
00078 sph_u32 h[8];
00079 sph_u32 count0, count1;
00080 #endif
00081 } sph_shavite_small_context;
00082
00087 typedef sph_shavite_small_context sph_shavite224_context;
00088
00093 typedef sph_shavite_small_context sph_shavite256_context;
00094
00105 typedef struct {
00106 #ifndef DOXYGEN_IGNORE
00107 unsigned char buf[128];
00108 size_t ptr;
00109 sph_u32 h[16];
00110 sph_u32 count0, count1, count2, count3;
00111 #endif
00112 } sph_shavite_big_context;
00113
00118 typedef sph_shavite_big_context sph_shavite384_context;
00119
00124 typedef sph_shavite_big_context sph_shavite512_context;
00125
00132 void sph_shavite224_init(void *cc);
00133
00142 void sph_shavite224(void *cc, const void *data, size_t len);
00143
00153 void sph_shavite224_close(void *cc, void *dst);
00154
00168 void sph_shavite224_addbits_and_close(
00169 void *cc, unsigned ub, unsigned n, void *dst);
00170
00177 void sph_shavite256_init(void *cc);
00178
00187 void sph_shavite256(void *cc, const void *data, size_t len);
00188
00198 void sph_shavite256_close(void *cc, void *dst);
00199
00213 void sph_shavite256_addbits_and_close(
00214 void *cc, unsigned ub, unsigned n, void *dst);
00215
00222 void sph_shavite384_init(void *cc);
00223
00232 void sph_shavite384(void *cc, const void *data, size_t len);
00233
00243 void sph_shavite384_close(void *cc, void *dst);
00244
00258 void sph_shavite384_addbits_and_close(
00259 void *cc, unsigned ub, unsigned n, void *dst);
00260
00267 void sph_shavite512_init(void *cc);
00268
00277 void sph_shavite512(void *cc, const void *data, size_t len);
00278
00288 void sph_shavite512_close(void *cc, void *dst);
00289
00303 void sph_shavite512_addbits_and_close(
00304 void *cc, unsigned ub, unsigned n, void *dst);
00305
00306 #endif