1996-09-19 23:39:36 +04:00
|
|
|
/* $NetBSD: md4.h,v 1.3 1996/09/19 19:39:41 thorpej Exp $ */
|
|
|
|
|
1994-05-21 09:45:58 +04:00
|
|
|
/*
|
|
|
|
*
|
|
|
|
* md4.h -- Header file for implementation of MD4 Message Digest Algorithm
|
|
|
|
* Updated: 2/13/90 by Ronald L. Rivest
|
|
|
|
* Reformatted and de-linted - 2/12/91 Phil Karn
|
|
|
|
*
|
|
|
|
* Copyright (C) 1990, RSA Data Security, Inc. All rights reserved.
|
|
|
|
*
|
|
|
|
* License to copy and use this software is granted provided that it
|
|
|
|
* is identified as the "RSA Data Security, Inc. MD4 Message-Digest
|
|
|
|
* Algorithm" in all material mentioning or referencing this software
|
|
|
|
* or this function.
|
|
|
|
*
|
|
|
|
* License is also granted to make and use derivative works provided
|
|
|
|
* that such works are identified as "derived from the RSA Data
|
|
|
|
* Security, Inc. MD4 Message-Digest Algorithm" in all material
|
|
|
|
* mentioning or referencing the derived work.
|
|
|
|
*
|
|
|
|
* RSA Data Security, Inc. makes no representations concerning either
|
|
|
|
* the merchantability of this software or the suitability of this
|
|
|
|
* software for any particular purpose. It is provided "as is"
|
|
|
|
* without express or implied warranty of any kind.
|
|
|
|
*
|
|
|
|
* These notices must be retained in any copies of any part of this
|
|
|
|
* documentation and/or software.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifdef __STDC__
|
|
|
|
#define __ARGS(X) X /* For ANSI C */
|
|
|
|
#else
|
|
|
|
#define __ARGS(X) ()
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* MDstruct is the data structure for a message digest computation. */
|
|
|
|
typedef struct {
|
1996-09-19 23:36:51 +04:00
|
|
|
unsigned int buffer[4];/* Holds 4-word result of MD computation */
|
1994-05-21 09:45:58 +04:00
|
|
|
unsigned char count[8]; /* Number of bits processed so far */
|
|
|
|
unsigned int done; /* Nonzero means MD computation finished */
|
|
|
|
} MDstruct, *MDptr;
|
|
|
|
|
|
|
|
/* MDbegin(MD)
|
|
|
|
* Input: MD -- an MDptr
|
|
|
|
* Initialize the MDstruct prepatory to doing a message digest computation.
|
|
|
|
*/
|
|
|
|
extern void MDbegin __ARGS((MDptr MDp));
|
|
|
|
|
|
|
|
/* MDupdate(MD,X,count)
|
|
|
|
* Input: MD -- an MDptr
|
|
|
|
* X -- a pointer to an array of unsigned characters.
|
|
|
|
* count -- the number of bits of X to use (an unsigned int).
|
|
|
|
* Updates MD using the first ``count'' bits of X.
|
|
|
|
* The array pointed to by X is not modified.
|
|
|
|
* If count is not a multiple of 8, MDupdate uses high bits of last byte.
|
|
|
|
* This is the basic input routine for a user.
|
|
|
|
* The routine terminates the MD computation when count < 512, so
|
|
|
|
* every MD computation should end with one call to MDupdate with a
|
|
|
|
* count less than 512. Zero is OK for a count.
|
|
|
|
*/
|
|
|
|
extern void MDupdate __ARGS((MDptr MDp,unsigned char *X,unsigned int count));
|
|
|
|
|
|
|
|
/* MDprint(MD)
|
|
|
|
* Input: MD -- an MDptr
|
|
|
|
* Prints message digest buffer MD as 32 hexadecimal digits.
|
|
|
|
* Order is from low-order byte of buffer[0] to high-order byte of buffer[3].
|
|
|
|
* Each byte is printed with high-order hexadecimal digit first.
|
|
|
|
*/
|
|
|
|
extern void MDprint __ARGS((MDptr MDp));
|
|
|
|
|
|
|
|
/* End of md4.h */
|