Professional Documents
Culture Documents
Warning #1: The code does not check key lengths. (Caveat encryptor.)
Warning #2: Beware that Blowfish keys repeat such that "ab" = "abab".
Warning #3: It is normally a good idea to zeroize the BLOWFISH_CTX before
freeing it.
Warning #4: Endianness conversions are the responsibility of the caller.
(To encrypt bytes on a little-endian platforms, you'll probably want
to swap bytes around instead of just casting.)
Warning #5: Make sure to use a reasonable mode of operation for your
application. (If you don't know what CBC mode is, see Warning #7.)
Warning #6: This code is susceptible to timing attacks.
Warning #7: Security engineering is risky and non-intuitive. Have someone
check your work. If you don't know what you are doing, get help.
This is code is fast enough for most applications, but is not optimized for
speed.
If you require this code under a license other than LGPL, please ask. (I
can be located using your favorite search engine.) Unfortunately, I do not
have time to provide unpaid support for everyone who uses this code.
-- Paul Kocher
*/
2.
// MD5.CC - source code for the C++/object oriented translation and
// modification of MD5.
// The translator/ modifier does not claim (1) that MD5 will do what you think
// it does; (2) that this translation/ modification is accurate; or (3) that
// this software is "merchantible." (Language for this disclaimer partially
// copied from the disclaimer below).
/* based on:
Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
rights reserved.
*/