00001
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];
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];
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