sphlib
|
00001 /* $Id: sph_skein.h 262 2011-07-21 01:15:22Z tp $ */ 00041 #ifndef SPH_SKEIN_H__ 00042 #define SPH_SKEIN_H__ 00043 00044 #include <stddef.h> 00045 #include "sph_types.h" 00046 00047 #if SPH_64 00048 00052 #define SPH_SIZE_skein224 224 00053 00057 #define SPH_SIZE_skein256 256 00058 00062 #define SPH_SIZE_skein384 384 00063 00067 #define SPH_SIZE_skein512 512 00068 00079 typedef struct { 00080 #ifndef DOXYGEN_IGNORE 00081 unsigned char buf[64]; /* first field, for alignment */ 00082 size_t ptr; 00083 sph_u64 h0, h1, h2, h3, h4, h5, h6, h7; 00084 sph_u64 bcount; 00085 #endif 00086 } sph_skein_big_context; 00087 00091 typedef sph_skein_big_context sph_skein224_context; 00092 00096 typedef sph_skein_big_context sph_skein256_context; 00097 00101 typedef sph_skein_big_context sph_skein384_context; 00102 00106 typedef sph_skein_big_context sph_skein512_context; 00107 00114 void sph_skein224_init(void *cc); 00115 00124 void sph_skein224(void *cc, const void *data, size_t len); 00125 00135 void sph_skein224_close(void *cc, void *dst); 00136 00150 void sph_skein224_addbits_and_close( 00151 void *cc, unsigned ub, unsigned n, void *dst); 00152 00159 void sph_skein256_init(void *cc); 00160 00169 void sph_skein256(void *cc, const void *data, size_t len); 00170 00180 void sph_skein256_close(void *cc, void *dst); 00181 00195 void sph_skein256_addbits_and_close( 00196 void *cc, unsigned ub, unsigned n, void *dst); 00197 00204 void sph_skein384_init(void *cc); 00205 00214 void sph_skein384(void *cc, const void *data, size_t len); 00215 00225 void sph_skein384_close(void *cc, void *dst); 00226 00240 void sph_skein384_addbits_and_close( 00241 void *cc, unsigned ub, unsigned n, void *dst); 00242 00249 void sph_skein512_init(void *cc); 00250 00259 void sph_skein512(void *cc, const void *data, size_t len); 00260 00270 void sph_skein512_close(void *cc, void *dst); 00271 00285 void sph_skein512_addbits_and_close( 00286 void *cc, unsigned ub, unsigned n, void *dst); 00287 00288 #endif 00289 00290 #endif