URL
https://opencores.org/ocsvn/bluespec_md6/bluespec_md6/trunk
Subversion Repositories bluespec_md6
[/] [bluespec_md6/] [trunk/] [C_implementation/] [md6_nist.h] - Rev 7
Compare with Previous | Blame | View Log
/* File: md6_nist.h ** Author: Ronald L. Rivest ** Address: Room 32G-692 Stata Center ** 32 Vassar Street ** Cambridge, MA 02139 ** Email: rivest@mit.edu ** Date: 9/25/2008 ** ** (The following license is known as "The MIT License") ** ** Copyright (c) 2008 Ronald L. Rivest ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and associated documentation files (the "Software"), to deal ** in the Software without restriction, including without limitation the rights ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ** copies of the Software, and to permit persons to whom the Software is ** furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ** THE SOFTWARE. ** ** (end of license) ** ** This is part of the MD6 hash function package. ** The files defining the MD6 hash function are: ** md6.h ** md6_compress.c ** md6_mode.c ** The files defining the interface between MD6 and the NIST SHA-3 ** API are: ** md6_nist.h ** md6_nist.c ** The NIST SHA-3 API is defined in: ** http://www.csrc.nist.gov/groups/ST/hash/documents/SHA3-C-API.pdf ** ** See http://groups.csail.mit.edu/cis/md6 for more information. */ /* Multiple inclusion protection (through end of file) */ #ifndef MD6_NIST_H_INCLUDED #define MD6_NIST_H_INCLUDED typedef unsigned char BitSequence; typedef unsigned long long DataLength; typedef enum { SUCCESS = 0, FAIL = 1, BAD_HASHLEN = 2 } HashReturn; typedef md6_state hashState; HashReturn Init( hashState *state, int hashbitlen ); HashReturn Update( hashState *state, const BitSequence *data, DataLength databitlen ); HashReturn Final( hashState *state, BitSequence *hashval ); HashReturn Hash( int hashbitlen, const BitSequence *data, DataLength databitlen, BitSequence *hashval ); /* end of multiple inclusion protection */ #endif /* ** end of nist.h */