sphlib
|
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