sha1.h
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
  2.  This program is free software; you can redistribute it and/or modify
  3.  it under the terms of the GNU General Public License as published by
  4.  the Free Software Foundation; either version 2 of the License, or
  5.  (at your option) any later version.
  6.  This program is distributed in the hope that it will be useful,
  7.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.  GNU General Public License for more details.
  10.  You should have received a copy of the GNU General Public License
  11.  along with this program; if not, write to the Free Software
  12.  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. /*
  14.  This is the header file for code which implements the Secure
  15.  Hashing Algorithm 1 as defined in FIPS PUB 180-1 published
  16.  April 17, 1995.
  17.  Many of the variable names in this code, especially the
  18.  single character names, were used because those were the names
  19.  used in the publication.
  20.  Please read the file sha1.c for more information.
  21.  Modified 2002 by Peter Zaitsev to better follow MySQL standards
  22. */
  23. enum sha_result_codes
  24. {
  25.   SHA_SUCCESS = 0,
  26.   SHA_NULL, /* Null pointer parameter */
  27.   SHA_INPUT_TOO_LONG, /* input data too long */
  28.   SHA_STATE_ERROR /* called Input after Result */
  29. };
  30. #define SHA1_HASH_SIZE 20 /* Hash size in bytes */
  31. /*
  32.   This structure will hold context information for the SHA-1
  33.   hashing operation
  34. */
  35. typedef struct SHA1_CONTEXT
  36. {
  37.   ulonglong  Length; /* Message length in bits      */
  38.   uint32 Intermediate_Hash[SHA1_HASH_SIZE/4]; /* Message Digest  */
  39.   int Computed; /* Is the digest computed?    */
  40.   int Corrupted; /* Is the message digest corrupted? */
  41.   int16 Message_Block_Index; /* Index into message block array   */
  42.   uint8 Message_Block[64]; /* 512-bit message blocks      */
  43. } SHA1_CONTEXT;
  44. /*
  45.   Function Prototypes
  46. */
  47. C_MODE_START
  48. int sha1_reset( SHA1_CONTEXT* );
  49. int sha1_input( SHA1_CONTEXT*, const uint8 *, unsigned int );
  50. int sha1_result( SHA1_CONTEXT* , uint8 Message_Digest[SHA1_HASH_SIZE] );
  51. C_MODE_END