sphlib
|
00001 /* $Id: sph_bmw.h 216 2010-06-08 09:46:57Z tp $ */ 00036 #ifndef SPH_BMW_H__ 00037 #define SPH_BMW_H__ 00038 00039 #include <stddef.h> 00040 #include "sph_types.h" 00041 00045 #define SPH_SIZE_bmw224 224 00046 00050 #define SPH_SIZE_bmw256 256 00051 00052 #if SPH_64 00053 00057 #define SPH_SIZE_bmw384 384 00058 00062 #define SPH_SIZE_bmw512 512 00063 00064 #endif 00065 00076 typedef struct { 00077 #ifndef DOXYGEN_IGNORE 00078 unsigned char buf[64]; /* first field, for alignment */ 00079 size_t ptr; 00080 sph_u32 H[16]; 00081 #if SPH_64 00082 sph_u64 bit_count; 00083 #else 00084 sph_u32 bit_count_high, bit_count_low; 00085 #endif 00086 #endif 00087 } sph_bmw_small_context; 00088 00093 typedef sph_bmw_small_context sph_bmw224_context; 00094 00099 typedef sph_bmw_small_context sph_bmw256_context; 00100 00101 #if SPH_64 00102 00113 typedef struct { 00114 #ifndef DOXYGEN_IGNORE 00115 unsigned char buf[128]; /* first field, for alignment */ 00116 size_t ptr; 00117 sph_u64 H[16]; 00118 sph_u64 bit_count; 00119 #endif 00120 } sph_bmw_big_context; 00121 00126 typedef sph_bmw_big_context sph_bmw384_context; 00127 00132 typedef sph_bmw_big_context sph_bmw512_context; 00133 00134 #endif 00135 00142 void sph_bmw224_init(void *cc); 00143 00152 void sph_bmw224(void *cc, const void *data, size_t len); 00153 00163 void sph_bmw224_close(void *cc, void *dst); 00164 00178 void sph_bmw224_addbits_and_close( 00179 void *cc, unsigned ub, unsigned n, void *dst); 00180 00187 void sph_bmw256_init(void *cc); 00188 00197 void sph_bmw256(void *cc, const void *data, size_t len); 00198 00208 void sph_bmw256_close(void *cc, void *dst); 00209 00223 void sph_bmw256_addbits_and_close( 00224 void *cc, unsigned ub, unsigned n, void *dst); 00225 00226 #if SPH_64 00227 00234 void sph_bmw384_init(void *cc); 00235 00244 void sph_bmw384(void *cc, const void *data, size_t len); 00245 00255 void sph_bmw384_close(void *cc, void *dst); 00256 00270 void sph_bmw384_addbits_and_close( 00271 void *cc, unsigned ub, unsigned n, void *dst); 00272 00279 void sph_bmw512_init(void *cc); 00280 00289 void sph_bmw512(void *cc, const void *data, size_t len); 00290 00300 void sph_bmw512_close(void *cc, void *dst); 00301 00315 void sph_bmw512_addbits_and_close( 00316 void *cc, unsigned ub, unsigned n, void *dst); 00317 00318 #endif 00319 00320 #endif