00001
00036 #ifndef SPH_SHABAL_H__
00037 #define SPH_SHABAL_H__
00038
00039 #include <stddef.h>
00040 #include "sph_types.h"
00041
00045 #define SPH_SIZE_shabal192 192
00046
00050 #define SPH_SIZE_shabal224 224
00051
00055 #define SPH_SIZE_shabal256 256
00056
00060 #define SPH_SIZE_shabal384 384
00061
00065 #define SPH_SIZE_shabal512 512
00066
00077 typedef struct {
00078 #ifndef DOXYGEN_IGNORE
00079 unsigned char buf[64];
00080 size_t ptr;
00081 sph_u32 A[12], B[16], C[16];
00082 sph_u32 Whigh, Wlow;
00083 #endif
00084 } sph_shabal_context;
00085
00089 typedef sph_shabal_context sph_shabal192_context;
00090
00094 typedef sph_shabal_context sph_shabal224_context;
00095
00099 typedef sph_shabal_context sph_shabal256_context;
00100
00104 typedef sph_shabal_context sph_shabal384_context;
00105
00109 typedef sph_shabal_context sph_shabal512_context;
00110
00117 void sph_shabal192_init(void *cc);
00118
00127 void sph_shabal192(void *cc, const void *data, size_t len);
00128
00138 void sph_shabal192_close(void *cc, void *dst);
00139
00153 void sph_shabal192_addbits_and_close(
00154 void *cc, unsigned ub, unsigned n, void *dst);
00155
00162 void sph_shabal224_init(void *cc);
00163
00172 void sph_shabal224(void *cc, const void *data, size_t len);
00173
00183 void sph_shabal224_close(void *cc, void *dst);
00184
00198 void sph_shabal224_addbits_and_close(
00199 void *cc, unsigned ub, unsigned n, void *dst);
00200
00207 void sph_shabal256_init(void *cc);
00208
00217 void sph_shabal256(void *cc, const void *data, size_t len);
00218
00228 void sph_shabal256_close(void *cc, void *dst);
00229
00243 void sph_shabal256_addbits_and_close(
00244 void *cc, unsigned ub, unsigned n, void *dst);
00245
00252 void sph_shabal384_init(void *cc);
00253
00262 void sph_shabal384(void *cc, const void *data, size_t len);
00263
00273 void sph_shabal384_close(void *cc, void *dst);
00274
00288 void sph_shabal384_addbits_and_close(
00289 void *cc, unsigned ub, unsigned n, void *dst);
00290
00297 void sph_shabal512_init(void *cc);
00298
00307 void sph_shabal512(void *cc, const void *data, size_t len);
00308
00318 void sph_shabal512_close(void *cc, void *dst);
00319
00333 void sph_shabal512_addbits_and_close(
00334 void *cc, unsigned ub, unsigned n, void *dst);
00335
00336 #endif