sphlib
|
00001 /* $Id: sph_jh.h 216 2010-06-08 09:46:57Z tp $ */ 00036 #ifndef SPH_JH_H__ 00037 #define SPH_JH_H__ 00038 00039 #include <stddef.h> 00040 #include "sph_types.h" 00041 00045 #define SPH_SIZE_jh224 224 00046 00050 #define SPH_SIZE_jh256 256 00051 00055 #define SPH_SIZE_jh384 384 00056 00060 #define SPH_SIZE_jh512 512 00061 00072 typedef struct { 00073 #ifndef DOXYGEN_IGNORE 00074 unsigned char buf[64]; /* first field, for alignment */ 00075 size_t ptr; 00076 union { 00077 #if SPH_64 00078 sph_u64 wide[16]; 00079 #endif 00080 sph_u32 narrow[32]; 00081 } H; 00082 #if SPH_64 00083 sph_u64 block_count; 00084 #else 00085 sph_u32 block_count_high, block_count_low; 00086 #endif 00087 #endif 00088 } sph_jh_context; 00089 00093 typedef sph_jh_context sph_jh224_context; 00094 00098 typedef sph_jh_context sph_jh256_context; 00099 00103 typedef sph_jh_context sph_jh384_context; 00104 00108 typedef sph_jh_context sph_jh512_context; 00109 00116 void sph_jh224_init(void *cc); 00117 00126 void sph_jh224(void *cc, const void *data, size_t len); 00127 00137 void sph_jh224_close(void *cc, void *dst); 00138 00152 void sph_jh224_addbits_and_close( 00153 void *cc, unsigned ub, unsigned n, void *dst); 00154 00161 void sph_jh256_init(void *cc); 00162 00171 void sph_jh256(void *cc, const void *data, size_t len); 00172 00182 void sph_jh256_close(void *cc, void *dst); 00183 00197 void sph_jh256_addbits_and_close( 00198 void *cc, unsigned ub, unsigned n, void *dst); 00199 00206 void sph_jh384_init(void *cc); 00207 00216 void sph_jh384(void *cc, const void *data, size_t len); 00217 00227 void sph_jh384_close(void *cc, void *dst); 00228 00242 void sph_jh384_addbits_and_close( 00243 void *cc, unsigned ub, unsigned n, void *dst); 00244 00251 void sph_jh512_init(void *cc); 00252 00261 void sph_jh512(void *cc, const void *data, size_t len); 00262 00272 void sph_jh512_close(void *cc, void *dst); 00273 00287 void sph_jh512_addbits_and_close( 00288 void *cc, unsigned ub, unsigned n, void *dst); 00289 00290 #endif