| RIPEMD-160 specification and software |
 |
We provide specification and software for the RIPEMD-160 and RIPEMD-128
hash functions, as well as software for the MDx-MACs based on RIPEMD-160
and RIPEMD-128. The implementations are written for the sole purpose of
documentation. No optimization whatsoever is performed: only readability
and portability were kept in mind. Please observe the conditions
of use for this software. Any comments on the specification or the
implementation can be mailed to Antoon
Bosselaers. For more information on all aspects of RIPEMD-160 and RIPEMD-128
we refer you to the RIPEMD-160
web page .
Specification and software for RIPEMD-160 and RIPEMD-128
-
AB-9601.ps.gz (AB-9601.pdf):
-
description of RIPEMD-160 and RIPEMD-128. This has also been published
in Fast Software Encryption, LNCS 1039, D. Gollmann (Ed.), pp. 71-82. This
version differs from the published version in that a figure has been added,
four small mistakes in the pseudo-code of Appendix A have been corrected,
and the order in which the permutations π and ρi are applied
in Section 3 have been exchanged. In addition, the hash value of the message
consisting of 1 million 'a' characters has been added to Appendix B for
both RIPEMD-160 and RIPEMD-128.
-
rmd160.c:
-
source code for RIPEMD-160
-
rmd160.h:
-
include file for RIPEMD-160. Make sure that the types byte and dword are
respectively 8 and 32-bit unsigned quantities.
-
rmd128.c:
-
source code for RIPEMD-128
-
rmd128.h:
-
include file for RIPEMD-128. Make sure that the types byte and dword are
respectively 8 and 32-bit unsigned quantities.
-
hashtest.c:
-
driver for both RIPEMD-160 and RIPEMD-128. Default is RIPEMD-160. For compilation
with rmd128.c define RMDsize=128. Command line arguments of hashtest: any
combination of
filename -- compute hash code of file read binary
-sstring -- print string & hashcode
-t -- perform time trial
-x -- execute standard test suite, ASCII input
A bug in the RMDonemillion() function of this driver has been corrected.
Software for MDx-MACs based on RIPEMD-160
and RIPEMD-128
-
rmd160mc.c:
-
source code for RIPEMD160-MAC
-
rmd160mc.h:
-
include file for RIPEMD160-MAC. Make sure that the types byte and dword
are respectively 8 and 32-bit unsigned quantities.
-
rmd128mc.c:
-
source code for RIPEMD128-MAC
-
rmd128mc.h:
-
include file for RIPEMD128-MAC. Make sure that the types byte and dword
are respectively 8 and 32-bit unsigned quantities.
-
mactest.c:
-
driver for both RIPEMD160-MAC and RIPEMD128-MAC. Default is RIPEMD160-MAC.
For compilation with rmd128mc.c define RMDsize=128. Command line arguments
of mactest: any combination of
filename keyfilename -- compute MAC of file binary read using
key in keyfilename (hexadecimal format)
-sstring -- print string & MAC for default key
-t -- perform time trial
-x -- execute standard test suite, ASCII input