sphlib

sph_hamsi.h

Go to the documentation of this file.
00001 /* $Id: sph_hamsi.h 216 2010-06-08 09:46:57Z tp $ */
00035 #ifndef SPH_HAMSI_H__
00036 #define SPH_HAMSI_H__
00037 
00038 #include <stddef.h>
00039 #include "sph_types.h"
00040 
00044 #define SPH_SIZE_hamsi224   224
00045 
00049 #define SPH_SIZE_hamsi256   256
00050 
00054 #define SPH_SIZE_hamsi384   384
00055 
00059 #define SPH_SIZE_hamsi512   512
00060 
00071 typedef struct {
00072 #ifndef DOXYGEN_IGNORE
00073         unsigned char partial[4];
00074         size_t partial_len;
00075         sph_u32 h[8];
00076 #if SPH_64
00077         sph_u64 count;
00078 #else
00079         sph_u32 count_high, count_low;
00080 #endif
00081 #endif
00082 } sph_hamsi_small_context;
00083 
00088 typedef sph_hamsi_small_context sph_hamsi224_context;
00089 
00094 typedef sph_hamsi_small_context sph_hamsi256_context;
00095 
00106 typedef struct {
00107 #ifndef DOXYGEN_IGNORE
00108         unsigned char partial[8];
00109         size_t partial_len;
00110         sph_u32 h[16];
00111 #if SPH_64
00112         sph_u64 count;
00113 #else
00114         sph_u32 count_high, count_low;
00115 #endif
00116 #endif
00117 } sph_hamsi_big_context;
00118 
00123 typedef sph_hamsi_big_context sph_hamsi384_context;
00124 
00129 typedef sph_hamsi_big_context sph_hamsi512_context;
00130 
00137 void sph_hamsi224_init(void *cc);
00138 
00147 void sph_hamsi224(void *cc, const void *data, size_t len);
00148 
00158 void sph_hamsi224_close(void *cc, void *dst);
00159 
00173 void sph_hamsi224_addbits_and_close(
00174         void *cc, unsigned ub, unsigned n, void *dst);
00175 
00182 void sph_hamsi256_init(void *cc);
00183 
00192 void sph_hamsi256(void *cc, const void *data, size_t len);
00193 
00203 void sph_hamsi256_close(void *cc, void *dst);
00204 
00218 void sph_hamsi256_addbits_and_close(
00219         void *cc, unsigned ub, unsigned n, void *dst);
00220 
00227 void sph_hamsi384_init(void *cc);
00228 
00237 void sph_hamsi384(void *cc, const void *data, size_t len);
00238 
00248 void sph_hamsi384_close(void *cc, void *dst);
00249 
00263 void sph_hamsi384_addbits_and_close(
00264         void *cc, unsigned ub, unsigned n, void *dst);
00265 
00272 void sph_hamsi512_init(void *cc);
00273 
00282 void sph_hamsi512(void *cc, const void *data, size_t len);
00283 
00293 void sph_hamsi512_close(void *cc, void *dst);
00294 
00308 void sph_hamsi512_addbits_and_close(
00309         void *cc, unsigned ub, unsigned n, void *dst);
00310 
00311 #endif