sphlib
|
00001 /* $Id: sph_echo.h 216 2010-06-08 09:46:57Z tp $ */ 00036 #ifndef SPH_ECHO_H__ 00037 #define SPH_ECHO_H__ 00038 00039 #include <stddef.h> 00040 #include "sph_types.h" 00041 00045 #define SPH_SIZE_echo224 224 00046 00050 #define SPH_SIZE_echo256 256 00051 00055 #define SPH_SIZE_echo384 384 00056 00060 #define SPH_SIZE_echo512 512 00061 00073 typedef struct { 00074 #ifndef DOXYGEN_IGNORE 00075 unsigned char buf[192]; /* first field, for alignment */ 00076 size_t ptr; 00077 union { 00078 sph_u32 Vs[4][4]; 00079 #if SPH_64 00080 sph_u64 Vb[4][2]; 00081 #endif 00082 } u; 00083 sph_u32 C0, C1, C2, C3; 00084 #endif 00085 } sph_echo_small_context; 00086 00098 typedef struct { 00099 #ifndef DOXYGEN_IGNORE 00100 unsigned char buf[128]; /* first field, for alignment */ 00101 size_t ptr; 00102 union { 00103 sph_u32 Vs[8][4]; 00104 #if SPH_64 00105 sph_u64 Vb[8][2]; 00106 #endif 00107 } u; 00108 sph_u32 C0, C1, C2, C3; 00109 #endif 00110 } sph_echo_big_context; 00111 00115 typedef sph_echo_small_context sph_echo224_context; 00116 00120 typedef sph_echo_small_context sph_echo256_context; 00121 00125 typedef sph_echo_big_context sph_echo384_context; 00126 00130 typedef sph_echo_big_context sph_echo512_context; 00131 00138 void sph_echo224_init(void *cc); 00139 00148 void sph_echo224(void *cc, const void *data, size_t len); 00149 00159 void sph_echo224_close(void *cc, void *dst); 00160 00174 void sph_echo224_addbits_and_close( 00175 void *cc, unsigned ub, unsigned n, void *dst); 00176 00183 void sph_echo256_init(void *cc); 00184 00193 void sph_echo256(void *cc, const void *data, size_t len); 00194 00204 void sph_echo256_close(void *cc, void *dst); 00205 00219 void sph_echo256_addbits_and_close( 00220 void *cc, unsigned ub, unsigned n, void *dst); 00221 00228 void sph_echo384_init(void *cc); 00229 00238 void sph_echo384(void *cc, const void *data, size_t len); 00239 00249 void sph_echo384_close(void *cc, void *dst); 00250 00264 void sph_echo384_addbits_and_close( 00265 void *cc, unsigned ub, unsigned n, void *dst); 00266 00273 void sph_echo512_init(void *cc); 00274 00283 void sph_echo512(void *cc, const void *data, size_t len); 00284 00294 void sph_echo512_close(void *cc, void *dst); 00295 00309 void sph_echo512_addbits_and_close( 00310 void *cc, unsigned ub, unsigned n, void *dst); 00311 00312 #endif