sphlib

sph_shavite.h

Go to the documentation of this file.
00001 /* $Id: sph_shavite.h 208 2010-06-02 20:33:00Z tp $ */
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];    /* first field, for alignment */
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];    /* first field, for alignment */
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