openssl/crypto/ripemd
Dr. Stephen Henson d0edffc7da FIPS algorithm blocking.
Non FIPS algorithms are not normally allowed in FIPS mode.

Any attempt to use them via high level functions will return an error.

The low level non-FIPS algorithm functions cannot return errors so they
produce assertion failures. HMAC also has to give an assertion error because
it (erroneously) can't return an error either.

There are exceptions (such as MD5 in TLS and non cryptographic use of
algorithms) and applications can override the blocking and use non FIPS
algorithms anyway.

For low level functions the override is perfomed by prefixing the algorithm
initalization function with "private_" for example private_MD5_Init().

For high level functions an override is performed by setting a flag in
the context.
2005-01-26 20:00:40 +00:00
..
asm A few more files to ignore 2003-01-16 21:33:06 +00:00
.cvsignore Ignore Makefile.save 1999-04-29 16:04:54 +00:00
Makefile Don't use $(EXHEADER) directly in for loops, as most shells will break 2004-11-02 23:53:31 +00:00
README Import of old SSLeay release: SSLeay 0.9.0b 1998-12-21 10:56:39 +00:00
ripemd.h FIPS algorithm blocking. 2005-01-26 20:00:40 +00:00
rmd160.c Make sure not to declare a clashing read() for DJGPP. 2003-01-13 15:35:27 +00:00
rmd_dgst.c FIPS algorithm blocking. 2005-01-26 20:00:40 +00:00
rmd_locl.h openbsd-x86 macros 2001-10-14 00:57:30 +00:00
rmd_one.c Windows CE updates, contributed by Steven Reddie <smr@essemer.com.au> 2002-12-03 14:21:32 +00:00
rmdconst.h Import of old SSLeay release: SSLeay 0.9.0b 1998-12-21 10:56:39 +00:00
rmdtest.c Have all tests use EXIT() to exit rather than exit(), since the latter doesn't 2002-11-28 18:57:30 +00:00

RIPEMD-160
http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html

This is my implementation of RIPEMD-160.  The pentium assember is a little
off the pace since I only get 1050 cycles, while the best is 1013.
I have a few ideas for how to get another 20 or so cycles, but at
this point I will not bother right now.  I belive the trick will be
to remove my 'copy X array onto stack' until inside the RIP1() finctions the
first time round.  To do this I need another register and will only have one
temporary one.  A bit tricky....  I can also cleanup the saving of the 5 words
after the first half of the calculation.  I should read the origional
value, add then write.  Currently I just save the new and read the origioal.
I then read both at the end.  Bad.

eric (20-Jan-1998)