sphlib

sph_jh.h

Go to the documentation of this file.
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