#ifndef _SKEIN_H_1#define _SKEIN_H_ 12/**************************************************************************3**4** Interface declarations and internal definitions for Skein hashing.5**6** Source code author: Doug Whiting, 2008.7**8** This algorithm and source code is released to the public domain.9**10***************************************************************************11**12** The following compile-time switches may be defined to control some13** tradeoffs between speed, code size, error checking, and security.14**15** The "default" note explains what happens when the switch is not defined.16**17** SKEIN_DEBUG -- make callouts from inside Skein code18** to examine/display intermediate values.19** [default: no callouts (no overhead)]20**21** SKEIN_ERR_CHECK -- how error checking is handled inside Skein22** code. If not defined, most error checking23** is disabled (for performance). Otherwise,24** the switch value is interpreted as:25** 0: use assert() to flag errors26** 1: return SKEIN_FAIL to flag errors27**28***************************************************************************/29#include "skein_port.h" /* get platform-specific definitions */3031typedef enum32{33SKEIN_SUCCESS = 0, /* return codes from Skein calls */34SKEIN_FAIL = 1,35SKEIN_BAD_HASHLEN = 236}37SkeinHashReturn;3839typedef size_t SkeinDataLength; /* bit count type */40typedef u08b_t SkeinBitSequence; /* bit stream type */4142/* "all-in-one" call */43SkeinHashReturn skein_hash(int hashbitlen, const SkeinBitSequence *data,44SkeinDataLength databitlen, SkeinBitSequence *hashval);4546#endif /* ifndef _SKEIN_H_ */474849