sphlib

sph_echo.h

Go to the documentation of this file.
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