Annotation of elwix/tools/uboot_mkimage/include/sha1.h, revision 1.1.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>