sphlib

sph_blake.h

Go to the documentation of this file.
00001 /* $Id: sph_blake.h 252 2011-06-07 17:55:14Z tp $ */
00037 #ifndef SPH_BLAKE_H__
00038 #define SPH_BLAKE_H__
00039 
00040 #include <stddef.h>
00041 #include "sph_types.h"
00042 
00046 #define SPH_SIZE_blake224   224
00047 
00051 #define SPH_SIZE_blake256   256
00052 
00053 #if SPH_64
00054 
00058 #define SPH_SIZE_blake384   384
00059 
00063 #define SPH_SIZE_blake512   512
00064 
00065 #endif
00066 
00077 typedef struct {
00078 #ifndef DOXYGEN_IGNORE
00079         unsigned char buf[64];    /* first field, for alignment */
00080         size_t ptr;
00081         sph_u32 H[8];
00082         sph_u32 S[4];
00083         sph_u32 T0, T1;
00084 #endif
00085 } sph_blake_small_context;
00086 
00091 typedef sph_blake_small_context sph_blake224_context;
00092 
00097 typedef sph_blake_small_context sph_blake256_context;
00098 
00099 #if SPH_64
00100 
00111 typedef struct {
00112 #ifndef DOXYGEN_IGNORE
00113         unsigned char buf[128];    /* first field, for alignment */
00114         size_t ptr;
00115         sph_u64 H[8];
00116         sph_u64 S[4];
00117         sph_u64 T0, T1;
00118 #endif
00119 } sph_blake_big_context;
00120 
00125 typedef sph_blake_big_context sph_blake384_context;
00126 
00131 typedef sph_blake_big_context sph_blake512_context;
00132 
00133 #endif
00134 
00141 void sph_blake224_init(void *cc);
00142 
00151 void sph_blake224(void *cc, const void *data, size_t len);
00152 
00162 void sph_blake224_close(void *cc, void *dst);
00163 
00177 void sph_blake224_addbits_and_close(
00178         void *cc, unsigned ub, unsigned n, void *dst);
00179 
00186 void sph_blake256_init(void *cc);
00187 
00196 void sph_blake256(void *cc, const void *data, size_t len);
00197 
00207 void sph_blake256_close(void *cc, void *dst);
00208 
00222 void sph_blake256_addbits_and_close(
00223         void *cc, unsigned ub, unsigned n, void *dst);
00224 
00225 #if SPH_64
00226 
00233 void sph_blake384_init(void *cc);
00234 
00243 void sph_blake384(void *cc, const void *data, size_t len);
00244 
00254 void sph_blake384_close(void *cc, void *dst);
00255 
00269 void sph_blake384_addbits_and_close(
00270         void *cc, unsigned ub, unsigned n, void *dst);
00271 
00278 void sph_blake512_init(void *cc);
00279 
00288 void sph_blake512(void *cc, const void *data, size_t len);
00289 
00299 void sph_blake512_close(void *cc, void *dst);
00300 
00314 void sph_blake512_addbits_and_close(
00315         void *cc, unsigned ub, unsigned n, void *dst);
00316 
00317 #endif
00318 
00319 #endif