Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
SKEIN(3)		 BSD Library Functions Manual		      SKEIN(3)

     SKEIN256_Init, SKEIN256_Update, SKEIN256_Final, SKEIN256_End,
     SKEIN256_File, SKEIN256_FileChunk,	SKEIN256_Data, SKEIN512_Init,
     SKEIN512_Update, SKEIN512_Final, SKEIN512_End, SKEIN512_File,
     SKEIN512_FileChunk, SKEIN512_Data,	SKEIN1024_Init,	SKEIN1024_Update,
     SKEIN1024_Final, SKEIN1024_End, SKEIN1024_File, SKEIN1024_FileChunk,
     SKEIN1024_Data -- calculate the ``SKEIN'' family of message digests

     Message Digest (MD4, MD5, etc.) Support Library (libmd, -lmd)

     #include <sys/types.h>
     #include <skein.h>

     SKEIN256_Init(SKEIN256_CTX	*context);

     SKEIN256_Update(SKEIN256_CTX *context, const unsigned char	*data,
	 size_t	len);

     SKEIN256_Final(unsigned char digest[32], SKEIN256_CTX *context);

     char *
     SKEIN256_End(SKEIN256_CTX *context, char *buf);

     char *
     SKEIN256_File(const char *filename, char *buf);

     char *
     SKEIN256_FileChunk(const char *filename, char *buf, off_t offset,
	 off_t length);

     char *
     SKEIN256_Data(const unsigned char *data, unsigned int len,	char *buf);

     SKEIN512_Init(SKEIN512_CTX	*context);

     SKEIN512_Update(SKEIN512_CTX *context, const unsigned char	*data,
	 size_t	len);

     SKEIN512_Final(unsigned char digest[64], SKEIN512_CTX *context);

     char *
     SKEIN512_End(SKEIN512_CTX *context, char *buf);

     char *
     SKEIN512_File(const char *filename, char *buf);

     char *
     SKEIN512_FileChunk(const char *filename, char *buf, off_t offset,
	 off_t length);

     char *
     SKEIN512_Data(const unsigned char *data, unsigned int len,	char *buf);

     SKEIN1024_Init(SKEIN1024_CTX *context);

     SKEIN1024_Update(SKEIN1024_CTX *context, const unsigned char *data,
	 size_t	len);

     SKEIN1024_Final(unsigned char digest[128],	SKEIN1024_CTX *context);

     char *
     SKEIN1024_End(SKEIN1024_CTX *context, char	*buf);

     char *
     SKEIN1024_File(const char *filename, char *buf);

     char *
     SKEIN1024_FileChunk(const char *filename, char *buf, off_t	offset,
	 off_t length);

     char *
     SKEIN1024_Data(const unsigned char	*data, unsigned	int len, char *buf);

     Skein is a	new family of cryptographic hash functions based on the
     Threefish large-block cipher.  Its	design combines	speed, security, sim-
     plicity, and a great deal of flexibility in a modular package that	is
     easy to analyze.  Skein is	defined	for three different internal state
     sizes--256	bits, 512 bits,	and 1024 bits--and any output size.  This al-
     lows Skein	to be a	drop-in	replacement for	the entire SHA family of hash

     The SKEIN256_Init(), SKEIN256_Update(), and SKEIN256_Final() functions
     are the core functions.  Allocate an SKEIN256_CTX,	initialize it with
     SKEIN256_Init(), run over the data	with SKEIN256_Update(),	and finally
     extract the result	using SKEIN256_Final().

     SKEIN256_End() is a wrapper for SKEIN256_Final() which converts the re-
     turn value	to a 33-character (including the terminating '\0') ASCII
     string which represents the 256 bits in hexadecimal.

     SKEIN256_File() calculates	the digest of a	file, and uses SKEIN256_End()
     to	return the result.  If the file	cannot be opened, a null pointer is
     returned.	SKEIN256_FileChunk() is	similar	to SKEIN256_File(), but	it
     only calculates the digest	over a byte-range of the file specified,
     starting at offset	and spanning length bytes.  If the length parameter is
     specified as 0, or	more than the length of	the remaining part of the
     file, SKEIN256_FileChunk()	calculates the digest from offset to the end
     of	file.  SKEIN256_Data() calculates the digest of	a chunk	of data	in
     memory, and uses SKEIN256_End() to	return the result.

     When using	SKEIN256_End(),	SKEIN256_File(), or SKEIN256_Data(), the buf
     argument can be a null pointer, in	which case the returned	string is al-
     located with malloc(3) and	subsequently must be explicitly	deallocated
     using free(3) after use.  If the buf argument is non-null it must point
     to	at least 33 characters of buffer space.

     The SKEIN512_ and SKEIN1024_ functions are	similar	to the SKEIN256_ func-
     tions except they produce a 512-bit, 65 character,	or 1024-bit, 129 char-
     acter, output.

     md4(3), md5(3), ripemd(3),	sha(3),	sha256(3), sha512(3)

     These functions appeared in FreeBSD 11.0.

     The core hash routines were imported from version 1.3 of the optimized
     Skein reference implementation written by Doug Whiting as submitted to
     the NSA SHA-3 contest.  The algorithms were developed by Niels Ferguson,
     Stefan Lucks, Bruce Schneier, Doug	Whiting, Mihir Bellare,	Tadayoshi
     Kohno, Jon	Callas,	and Jesse Walker.

BSD				 May 28, 2016				   BSD


Want to link to this manual page? Use this URL:

home | help