sphlib

sph_skein.h

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