sphlib
|
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