version 1.4, 1999/08/16 09:59:04 |
version 1.5, 2001/10/01 20:36:17 |
|
|
/* $OpenBSD$ */ |
/* $OpenBSD$ */ |
|
/* |
/********************************************************************\ |
* Copyright (c) 2001 Markus Friedl. All rights reserved. |
* |
* |
* FILE: rmd160.h |
* Redistribution and use in source and binary forms, with or without |
|
* modification, are permitted provided that the following conditions |
|
* are met: |
|
* 1. Redistributions of source code must retain the above copyright |
|
* notice, this list of conditions and the following disclaimer. |
|
* 2. Redistributions in binary form must reproduce the above copyright |
|
* notice, this list of conditions and the following disclaimer in the |
|
* documentation and/or other materials provided with the distribution. |
* |
* |
* CONTENTS: Header file for a sample C-implementation of the |
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
* RIPEMD-160 hash-function. |
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
* TARGET: any computer with an ANSI C compiler |
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
* |
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
* AUTHOR: Antoon Bosselaers, ESAT-COSIC |
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
* DATE: 1 March 1996 |
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
* VERSION: 1.0 |
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
* |
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
* Copyright (c) Katholieke Universiteit Leuven |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
* 1996, All Rights Reserved |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
* |
*/ |
\********************************************************************/ |
#ifndef _RMD160_H |
|
|
#ifndef _RMD160_H /* make sure this file is read only once */ |
|
#define _RMD160_H |
#define _RMD160_H |
|
|
/********************************************************************/ |
/* RMD160 context. */ |
|
typedef struct RMD160Context { |
/* structure definitions */ |
u_int32_t state[5]; /* state */ |
|
u_int64_t count; /* number of bits, modulo 2^64 */ |
typedef struct { |
u_char buffer[64]; /* input buffer */ |
u_int32_t state[5]; /* state (ABCDE) */ |
|
u_int32_t length[2]; /* number of bits */ |
|
u_char bbuffer[64]; /* overflow buffer */ |
|
u_int32_t buflen; /* number of chars in bbuffer */ |
|
} RMD160_CTX; |
} RMD160_CTX; |
|
|
/********************************************************************/ |
void RMD160Init __P((RMD160_CTX *)); |
|
void RMD160Transform __P ((u_int32_t [5], const u_char [64])); |
|
void RMD160Update __P((RMD160_CTX *, const u_char *, u_int32_t)); |
|
void RMD160Final __P((u_char [20], RMD160_CTX *)); |
|
char *RMD160End __P((RMD160_CTX *, char *)); |
|
char *RMD160File __P((char *, char *)); |
|
char *RMD160Data __P((const u_char *, size_t, char *)); |
|
|
/* function prototypes */ |
|
|
|
void RMD160Init __P((RMD160_CTX *context)); |
|
void RMD160Transform __P((u_int32_t state[5], const u_int32_t block[16])); |
|
void RMD160Update __P((RMD160_CTX *context, const u_char *data, u_int32_t nbytes)); |
|
void RMD160Final __P((u_char digest[20], RMD160_CTX *context)); |
|
char *RMD160End __P((RMD160_CTX *, char *)); |
|
char *RMD160File __P((char *, char *)); |
|
char *RMD160Data __P((const u_char *, size_t, char *)); |
|
|
|
#endif /* _RMD160_H */ |
#endif /* _RMD160_H */ |
|
|
/*********************** end of file rmd160.h ***********************/ |
|