sphlib

sph_fugue.h

Go to the documentation of this file.
00001 /* $Id: sph_fugue.h 216 2010-06-08 09:46:57Z tp $ */
00036 #ifndef SPH_FUGUE_H__
00037 #define SPH_FUGUE_H__
00038 
00039 #include <stddef.h>
00040 #include "sph_types.h"
00041 
00045 #define SPH_SIZE_fugue224   224
00046 
00050 #define SPH_SIZE_fugue256   256
00051 
00055 #define SPH_SIZE_fugue384   384
00056 
00060 #define SPH_SIZE_fugue512   512
00061 
00072 typedef struct {
00073 #ifndef DOXYGEN_IGNORE
00074         sph_u32 partial;
00075         unsigned partial_len;
00076         unsigned round_shift;
00077         sph_u32 S[36];
00078 #if SPH_64
00079         sph_u64 bit_count;
00080 #else
00081         sph_u32 bit_count_high, bit_count_low;
00082 #endif
00083 #endif
00084 } sph_fugue_context;
00085 
00089 typedef sph_fugue_context sph_fugue224_context;
00090 
00094 typedef sph_fugue_context sph_fugue256_context;
00095 
00099 typedef sph_fugue_context sph_fugue384_context;
00100 
00104 typedef sph_fugue_context sph_fugue512_context;
00105 
00112 void sph_fugue224_init(void *cc);
00113 
00122 void sph_fugue224(void *cc, const void *data, size_t len);
00123 
00133 void sph_fugue224_close(void *cc, void *dst);
00134 
00148 void sph_fugue224_addbits_and_close(
00149         void *cc, unsigned ub, unsigned n, void *dst);
00150 
00157 void sph_fugue256_init(void *cc);
00158 
00167 void sph_fugue256(void *cc, const void *data, size_t len);
00168 
00178 void sph_fugue256_close(void *cc, void *dst);
00179 
00193 void sph_fugue256_addbits_and_close(
00194         void *cc, unsigned ub, unsigned n, void *dst);
00195 
00202 void sph_fugue384_init(void *cc);
00203 
00212 void sph_fugue384(void *cc, const void *data, size_t len);
00213 
00223 void sph_fugue384_close(void *cc, void *dst);
00224 
00238 void sph_fugue384_addbits_and_close(
00239         void *cc, unsigned ub, unsigned n, void *dst);
00240 
00247 void sph_fugue512_init(void *cc);
00248 
00257 void sph_fugue512(void *cc, const void *data, size_t len);
00258 
00268 void sph_fugue512_close(void *cc, void *dst);
00269 
00283 void sph_fugue512_addbits_and_close(
00284         void *cc, unsigned ub, unsigned n, void *dst);
00285 
00286 #endif