Annotation of elwix/tools/uboot_mkimage/include/sha1.h, revision 1.1

1.1     ! misho       1: /**
        !             2:  * \file sha1.h
        !             3:  * based from http://xyssl.org/code/source/sha1/
        !             4:  *  FIPS-180-1 compliant SHA-1 implementation
        !             5:  *
        !             6:  *  Copyright (C) 2003-2006  Christophe Devine
        !             7:  *
        !             8:  *  This library is free software; you can redistribute it and/or
        !             9:  *  modify it under the terms of the GNU Lesser General Public
        !            10:  *  License, version 2.1 as published by the Free Software Foundation.
        !            11:  *
        !            12:  *  This library is distributed in the hope that it will be useful,
        !            13:  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            14:  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        !            15:  *  Lesser General Public License for more details.
        !            16:  *
        !            17:  *  You should have received a copy of the GNU Lesser General Public
        !            18:  *  License along with this library; if not, write to the Free Software
        !            19:  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
        !            20:  *  MA 02110-1301  USA
        !            21:  */
        !            22: /*
        !            23:  *  The SHA-1 standard was published by NIST in 1993.
        !            24:  *
        !            25:  *  http://www.itl.nist.gov/fipspubs/fip180-1.htm
        !            26:  */
        !            27: #ifndef _SHA1_H
        !            28: #define _SHA1_H
        !            29: 
        !            30: #ifdef __cplusplus
        !            31: extern "C" {
        !            32: #endif
        !            33: 
        !            34: #define SHA1_SUM_POS   -0x20
        !            35: #define SHA1_SUM_LEN   20
        !            36: 
        !            37: /**
        !            38:  * \brief         SHA-1 context structure
        !            39:  */
        !            40: typedef struct
        !            41: {
        !            42:     unsigned long total[2];    /*!< number of bytes processed  */
        !            43:     unsigned long state[5];    /*!< intermediate digest state  */
        !            44:     unsigned char buffer[64];  /*!< data block being processed */
        !            45: }
        !            46: sha1_context;
        !            47: 
        !            48: /**
        !            49:  * \brief         SHA-1 context setup
        !            50:  *
        !            51:  * \param ctx     SHA-1 context to be initialized
        !            52:  */
        !            53: void sha1_starts( sha1_context *ctx );
        !            54: 
        !            55: /**
        !            56:  * \brief         SHA-1 process buffer
        !            57:  *
        !            58:  * \param ctx     SHA-1 context
        !            59:  * \param input    buffer holding the  data
        !            60:  * \param ilen    length of the input data
        !            61:  */
        !            62: void sha1_update( sha1_context *ctx, unsigned char *input, int ilen );
        !            63: 
        !            64: /**
        !            65:  * \brief         SHA-1 final digest
        !            66:  *
        !            67:  * \param ctx     SHA-1 context
        !            68:  * \param output   SHA-1 checksum result
        !            69:  */
        !            70: void sha1_finish( sha1_context *ctx, unsigned char output[20] );
        !            71: 
        !            72: /**
        !            73:  * \brief         Output = SHA-1( input buffer )
        !            74:  *
        !            75:  * \param input    buffer holding the  data
        !            76:  * \param ilen    length of the input data
        !            77:  * \param output   SHA-1 checksum result
        !            78:  */
        !            79: void sha1_csum( unsigned char *input, int ilen,
        !            80:                unsigned char output[20] );
        !            81: 
        !            82: /**
        !            83:  * \brief         Output = SHA-1( input buffer ), with watchdog triggering
        !            84:  *
        !            85:  * \param input    buffer holding the  data
        !            86:  * \param ilen    length of the input data
        !            87:  * \param output   SHA-1 checksum result
        !            88:  * \param chunk_sz watchdog triggering period (in bytes of input processed)
        !            89:  */
        !            90: void sha1_csum_wd (unsigned char *input, int ilen,
        !            91:                unsigned char output[20], unsigned int chunk_sz);
        !            92: 
        !            93: /**
        !            94:  * \brief         Output = SHA-1( file contents )
        !            95:  *
        !            96:  * \param path    input file name
        !            97:  * \param output   SHA-1 checksum result
        !            98:  * \return        0 if successful, or 1 if fopen failed
        !            99:  */
        !           100: int sha1_file( char *path, unsigned char output[20] );
        !           101: 
        !           102: /**
        !           103:  * \brief         Output = HMAC-SHA-1( input buffer, hmac key )
        !           104:  *
        !           105:  * \param key     HMAC secret key
        !           106:  * \param keylen   length of the HMAC key
        !           107:  * \param input    buffer holding the  data
        !           108:  * \param ilen    length of the input data
        !           109:  * \param output   HMAC-SHA-1 result
        !           110:  */
        !           111: void sha1_hmac( unsigned char *key, int keylen,
        !           112:                unsigned char *input, int ilen,
        !           113:                unsigned char output[20] );
        !           114: 
        !           115: /**
        !           116:  * \brief         Checkup routine
        !           117:  *
        !           118:  * \return        0 if successful, or 1 if the test failed
        !           119:  */
        !           120: int sha1_self_test( void );
        !           121: 
        !           122: #ifdef __cplusplus
        !           123: }
        !           124: #endif
        !           125: 
        !           126: #endif /* sha1.h */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>