00001
00036 #ifndef SPH_LUFFA_H__
00037 #define SPH_LUFFA_H__
00038
00039 #include <stddef.h>
00040 #include "sph_types.h"
00041
00045 #define SPH_SIZE_luffa224 224
00046
00050 #define SPH_SIZE_luffa256 256
00051
00055 #define SPH_SIZE_luffa384 384
00056
00060 #define SPH_SIZE_luffa512 512
00061
00072 typedef struct {
00073 #ifndef DOXYGEN_IGNORE
00074 unsigned char buf[32];
00075 size_t ptr;
00076 sph_u32 V[3][8];
00077 #endif
00078 } sph_luffa224_context;
00079
00084 typedef sph_luffa224_context sph_luffa256_context;
00085
00089 typedef struct {
00090 #ifndef DOXYGEN_IGNORE
00091 unsigned char buf[32];
00092 size_t ptr;
00093 sph_u32 V[4][8];
00094 #endif
00095 } sph_luffa384_context;
00096
00100 typedef struct {
00101 #ifndef DOXYGEN_IGNORE
00102 unsigned char buf[32];
00103 size_t ptr;
00104 sph_u32 V[5][8];
00105 #endif
00106 } sph_luffa512_context;
00107
00114 void sph_luffa224_init(void *cc);
00115
00124 void sph_luffa224(void *cc, const void *data, size_t len);
00125
00135 void sph_luffa224_close(void *cc, void *dst);
00136
00150 void sph_luffa224_addbits_and_close(
00151 void *cc, unsigned ub, unsigned n, void *dst);
00152
00159 void sph_luffa256_init(void *cc);
00160
00169 void sph_luffa256(void *cc, const void *data, size_t len);
00170
00180 void sph_luffa256_close(void *cc, void *dst);
00181
00195 void sph_luffa256_addbits_and_close(
00196 void *cc, unsigned ub, unsigned n, void *dst);
00197
00204 void sph_luffa384_init(void *cc);
00205
00214 void sph_luffa384(void *cc, const void *data, size_t len);
00215
00225 void sph_luffa384_close(void *cc, void *dst);
00226
00240 void sph_luffa384_addbits_and_close(
00241 void *cc, unsigned ub, unsigned n, void *dst);
00242
00249 void sph_luffa512_init(void *cc);
00250
00259 void sph_luffa512(void *cc, const void *data, size_t len);
00260
00270 void sph_luffa512_close(void *cc, void *dst);
00271
00285 void sph_luffa512_addbits_and_close(
00286 void *cc, unsigned ub, unsigned n, void *dst);
00287
00288 #endif