paulo@0: /* paulo@0: * $Id: sha1.h,v 1.10 2004/03/05 17:47:29 hipnod Exp $ paulo@0: * paulo@0: * Copyright (C) 2001-2004 giFT project (gift.sourceforge.net) paulo@0: * paulo@0: * This program is free software; you can redistribute it and/or modify it paulo@0: * under the terms of the GNU General Public License as published by the paulo@0: * Free Software Foundation; either version 2, or (at your option) any paulo@0: * later version. paulo@0: * paulo@0: * This program is distributed in the hope that it will be useful, but paulo@0: * WITHOUT ANY WARRANTY; without even the implied warranty of paulo@0: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU paulo@0: * General Public License for more details. paulo@0: */ paulo@0: paulo@0: #ifndef GIFT_GT_SHA1_H_ paulo@0: #define GIFT_GT_SHA1_H_ paulo@0: paulo@0: /*****************************************************************************/ paulo@0: paulo@0: #define SHA_BLOCKSIZE 64 paulo@0: #define SHA_DIGESTSIZE 20 paulo@0: paulo@0: #define SHA1_BINSIZE 20 paulo@0: #define SHA1_STRLEN 32 paulo@0: paulo@0: /*****************************************************************************/ paulo@0: paulo@0: struct sha1_state paulo@0: { paulo@0: unsigned long digest[5]; /* message digest */ paulo@0: unsigned long count_lo, count_hi; /* 64-bit bit count */ paulo@0: uint8_t data[SHA_BLOCKSIZE]; /* SHA data buffer */ paulo@0: int local; /* unprocessed amount in data */ paulo@0: }; paulo@0: paulo@0: typedef struct sha1_state sha1_state_t; paulo@0: paulo@0: /*****************************************************************************/ paulo@0: paulo@0: /* TODO: prefix these suckers */ paulo@0: char *sha1_string (const unsigned char *sha1); paulo@0: unsigned char *sha1_digest (const char *file, off_t size); paulo@0: unsigned char *sha1_bin (const char *ascii); paulo@0: unsigned char *sha1_dup (const unsigned char *sha1); paulo@0: paulo@0: /*****************************************************************************/ paulo@0: paulo@0: void gt_sha1_init (sha1_state_t *state); paulo@0: void gt_sha1_append (sha1_state_t *state, const void *data, paulo@0: size_t len); paulo@0: void gt_sha1_finish (sha1_state_t *state, unsigned char *hash); paulo@0: paulo@0: /*****************************************************************************/ paulo@0: paulo@0: #endif /* GIFT_GT_SHA1_H_ */