sphlib
|
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