sphlib

sph_luffa.h

Go to the documentation of this file.
00001 /* $Id: sph_luffa.h 154 2010-04-26 17:00:24Z tp $ */
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];    /* first field, for alignment */
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];    /* first field, for alignment */
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];    /* first field, for alignment */
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