/* NIST Secure Hash Algorithm */ /* heavily modified by Uwe Hollerbach */ /* from Peter C. Gutmann's implementation as found in */ /* Applied Cryptography by Bruce Schneier */ /* This code is in the public domain */ /* $Id: sha1.h,v 1.1 2005-12-28 18:06:50 tpm Exp $ */ #ifndef __GST_CDDA_SHA_H__ #define __GST_CDDA_SHA_H__ #include #include /* Useful defines & typedefs */ typedef unsigned char SHA_BYTE; /* 8-bit quantity */ typedef unsigned long SHA_LONG; /* 32-or-more-bit quantity */ #define SHA_BLOCKSIZE 64 #define SHA_DIGESTSIZE 20 typedef struct { SHA_LONG digest[5]; /* message digest */ SHA_LONG count_lo, count_hi; /* 64-bit bit count */ SHA_BYTE data[SHA_BLOCKSIZE]; /* SHA data buffer */ int local; /* unprocessed amount in data */ } SHA_INFO; #define sha_init itdb_sha_init #define sha_update itdb_sha_update #define sha_final itdb_sha_final G_GNUC_INTERNAL void sha_init(SHA_INFO *); G_GNUC_INTERNAL void sha_update(SHA_INFO *, const SHA_BYTE *, int); G_GNUC_INTERNAL void sha_final(unsigned char [20], SHA_INFO *); #define SHA_VERSION 1 #ifdef HAVE_CONFIG_H #include "config.h" #ifdef WORDS_BIGENDIAN # if SIZEOF_LONG == 4 # define SHA_BYTE_ORDER 4321 # elif SIZEOF_LONG == 8 # define SHA_BYTE_ORDER 87654321 # endif #else # if SIZEOF_LONG == 4 # define SHA_BYTE_ORDER 1234 # elif SIZEOF_LONG == 8 # define SHA_BYTE_ORDER 12345678 # endif #endif #else #define SHA_BYTE_ORDER 1234 #endif #endif /* __GST_CDDA_SHA_H__ */