sphlib

sph_haval.h

Go to the documentation of this file.
00001 /* $Id: sph_haval.h 218 2010-06-08 17:06:34Z tp $ */
00061 #ifndef SPH_HAVAL_H__
00062 #define SPH_HAVAL_H__
00063 
00064 #include <stddef.h>
00065 #include "sph_types.h"
00066 
00070 #define SPH_SIZE_haval128_3   128
00071 
00075 #define SPH_SIZE_haval128_4   128
00076 
00080 #define SPH_SIZE_haval128_5   128
00081 
00085 #define SPH_SIZE_haval160_3   160
00086 
00090 #define SPH_SIZE_haval160_4   160
00091 
00095 #define SPH_SIZE_haval160_5   160
00096 
00100 #define SPH_SIZE_haval192_3   192
00101 
00105 #define SPH_SIZE_haval192_4   192
00106 
00110 #define SPH_SIZE_haval192_5   192
00111 
00115 #define SPH_SIZE_haval224_3   224
00116 
00120 #define SPH_SIZE_haval224_4   224
00121 
00125 #define SPH_SIZE_haval224_5   224
00126 
00130 #define SPH_SIZE_haval256_3   256
00131 
00135 #define SPH_SIZE_haval256_4   256
00136 
00140 #define SPH_SIZE_haval256_5   256
00141 
00152 typedef struct {
00153 #ifndef DOXYGEN_IGNORE
00154         unsigned char buf[128];    /* first field, for alignment */
00155         sph_u32 s0, s1, s2, s3, s4, s5, s6, s7;
00156         unsigned olen, passes;
00157 #if SPH_64
00158         sph_u64 count;
00159 #else
00160         sph_u32 count_high, count_low;
00161 #endif
00162 #endif
00163 } sph_haval_context;
00164 
00168 typedef sph_haval_context sph_haval128_3_context;
00169 
00173 typedef sph_haval_context sph_haval128_4_context;
00174 
00178 typedef sph_haval_context sph_haval128_5_context;
00179 
00183 typedef sph_haval_context sph_haval160_3_context;
00184 
00188 typedef sph_haval_context sph_haval160_4_context;
00189 
00193 typedef sph_haval_context sph_haval160_5_context;
00194 
00198 typedef sph_haval_context sph_haval192_3_context;
00199 
00203 typedef sph_haval_context sph_haval192_4_context;
00204 
00208 typedef sph_haval_context sph_haval192_5_context;
00209 
00213 typedef sph_haval_context sph_haval224_3_context;
00214 
00218 typedef sph_haval_context sph_haval224_4_context;
00219 
00223 typedef sph_haval_context sph_haval224_5_context;
00224 
00228 typedef sph_haval_context sph_haval256_3_context;
00229 
00233 typedef sph_haval_context sph_haval256_4_context;
00234 
00238 typedef sph_haval_context sph_haval256_5_context;
00239 
00246 void sph_haval128_3_init(void *cc);
00247 
00256 void sph_haval128_3(void *cc, const void *data, size_t len);
00257 
00266 void sph_haval128_3_close(void *cc, void *dst);
00267 
00283 void sph_haval128_3_addbits_and_close(void *cc,
00284         unsigned ub, unsigned n, void *dst);
00285 
00292 void sph_haval128_4_init(void *cc);
00293 
00302 void sph_haval128_4(void *cc, const void *data, size_t len);
00303 
00312 void sph_haval128_4_close(void *cc, void *dst);
00313 
00329 void sph_haval128_4_addbits_and_close(void *cc,
00330         unsigned ub, unsigned n, void *dst);
00331 
00338 void sph_haval128_5_init(void *cc);
00339 
00348 void sph_haval128_5(void *cc, const void *data, size_t len);
00349 
00358 void sph_haval128_5_close(void *cc, void *dst);
00359 
00375 void sph_haval128_5_addbits_and_close(void *cc,
00376         unsigned ub, unsigned n, void *dst);
00377 
00384 void sph_haval160_3_init(void *cc);
00385 
00394 void sph_haval160_3(void *cc, const void *data, size_t len);
00395 
00404 void sph_haval160_3_close(void *cc, void *dst);
00405 
00421 void sph_haval160_3_addbits_and_close(void *cc,
00422         unsigned ub, unsigned n, void *dst);
00423 
00430 void sph_haval160_4_init(void *cc);
00431 
00440 void sph_haval160_4(void *cc, const void *data, size_t len);
00441 
00450 void sph_haval160_4_close(void *cc, void *dst);
00451 
00467 void sph_haval160_3_addbits_and_close(void *cc,
00468         unsigned ub, unsigned n, void *dst);
00469 
00476 void sph_haval160_5_init(void *cc);
00477 
00486 void sph_haval160_5(void *cc, const void *data, size_t len);
00487 
00496 void sph_haval160_5_close(void *cc, void *dst);
00497 
00513 void sph_haval160_5_addbits_and_close(void *cc,
00514         unsigned ub, unsigned n, void *dst);
00515 
00522 void sph_haval192_3_init(void *cc);
00523 
00532 void sph_haval192_3(void *cc, const void *data, size_t len);
00533 
00542 void sph_haval192_3_close(void *cc, void *dst);
00543 
00559 void sph_haval192_3_addbits_and_close(void *cc,
00560         unsigned ub, unsigned n, void *dst);
00561 
00568 void sph_haval192_4_init(void *cc);
00569 
00578 void sph_haval192_4(void *cc, const void *data, size_t len);
00579 
00588 void sph_haval192_4_close(void *cc, void *dst);
00589 
00605 void sph_haval192_4_addbits_and_close(void *cc,
00606         unsigned ub, unsigned n, void *dst);
00607 
00614 void sph_haval192_5_init(void *cc);
00615 
00624 void sph_haval192_5(void *cc, const void *data, size_t len);
00625 
00634 void sph_haval192_5_close(void *cc, void *dst);
00635 
00651 void sph_haval192_5_addbits_and_close(void *cc,
00652         unsigned ub, unsigned n, void *dst);
00653 
00660 void sph_haval224_3_init(void *cc);
00661 
00670 void sph_haval224_3(void *cc, const void *data, size_t len);
00671 
00680 void sph_haval224_3_close(void *cc, void *dst);
00681 
00697 void sph_haval224_3_addbits_and_close(void *cc,
00698         unsigned ub, unsigned n, void *dst);
00699 
00706 void sph_haval224_4_init(void *cc);
00707 
00716 void sph_haval224_4(void *cc, const void *data, size_t len);
00717 
00726 void sph_haval224_4_close(void *cc, void *dst);
00727 
00743 void sph_haval224_4_addbits_and_close(void *cc,
00744         unsigned ub, unsigned n, void *dst);
00745 
00752 void sph_haval224_5_init(void *cc);
00753 
00762 void sph_haval224_5(void *cc, const void *data, size_t len);
00763 
00772 void sph_haval224_5_close(void *cc, void *dst);
00773 
00789 void sph_haval224_5_addbits_and_close(void *cc,
00790         unsigned ub, unsigned n, void *dst);
00791 
00798 void sph_haval256_3_init(void *cc);
00799 
00808 void sph_haval256_3(void *cc, const void *data, size_t len);
00809 
00818 void sph_haval256_3_close(void *cc, void *dst);
00819 
00835 void sph_haval256_3_addbits_and_close(void *cc,
00836         unsigned ub, unsigned n, void *dst);
00837 
00844 void sph_haval256_4_init(void *cc);
00845 
00854 void sph_haval256_4(void *cc, const void *data, size_t len);
00855 
00864 void sph_haval256_4_close(void *cc, void *dst);
00865 
00881 void sph_haval256_4_addbits_and_close(void *cc,
00882         unsigned ub, unsigned n, void *dst);
00883 
00890 void sph_haval256_5_init(void *cc);
00891 
00900 void sph_haval256_5(void *cc, const void *data, size_t len);
00901 
00910 void sph_haval256_5_close(void *cc, void *dst);
00911 
00927 void sph_haval256_5_addbits_and_close(void *cc,
00928         unsigned ub, unsigned n, void *dst);
00929 
00941 void sph_haval_3_comp(const sph_u32 msg[32], sph_u32 val[8]);
00942 
00954 void sph_haval_4_comp(const sph_u32 msg[32], sph_u32 val[8]);
00955 
00967 void sph_haval_5_comp(const sph_u32 msg[32], sph_u32 val[8]);
00968 
00969 #endif