Welcome to the BeeCrypt crypto library!

Copyright (c) 1997, 1998, 1999, 2000, 2001, 2004, 2005 X-Way Rights BV
Copyright (c) 2002, 2003, 2005, 2006, 2009 Bob Deblier (for certain parts)

Author: Bob Deblier <bob.deblier@telenet.be>

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

For the specifics of this license, see file 'COPYING.LIB', included in
this distribution.



Welcome to version 4.2.0 of BeeCrypt:

The C++ API has received a major overhaul and has been expanded to deal
properly with multi-threading on the major platforms.

About BeeCrypt:

BeeCrypt started its life when the need for a portable and fast cryptography
library arose at Virtual Unlimited in 1997. I'm still trying to make it
faster, easier to use and more portable, in addition to providing better
documentation.

Note that depending on where you are, the use of cryptography may be
limited or forbidden by law. Before using this library, make sure you
are legally entitled to do so.

<plug>
Most of the algorithms are implemented from reliable sources such as:

"Handbook of Applied Cryptography"
 Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone
 CRC Press

"Applied Cryptography", second edition
 Bruce Schneier
 Wiley


For crypto enthusiasts these books are invaluable background material.

IEEE P1363 "Standard Specifications for Public Key Cryptography" is a
very interesting draft standard, which we will try to comply with.
</plug>

The structures in the library are geared towards exchange with Java
and its security and cryptography classes. This library can also be
accessed from Java by installing BeeCrypt for Java, a JCE 1.2 crypto
provider and the counterpart of this library.


Included in the library are:
    - entropy sources for initializing pseudo-random generators
    - pseudo-random generators: FIPS-186, Mersenne Twister
    - block ciphers: AES, Blowfish
    - hash functions: MD5, RIPEMD-128, RIPEMD-160, RIPEMD-256, RIPEMD-320, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
    - keyed hash functions: HMAC-MD5, HMAC-SHA-1, HMAC-SHA-224, HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512
    - multi-precision integer library, with assembler-optimized routines
      for several processors
    - probabilistic primality testing, with optimized small prime trial
      division
    - discrete logarithm parameter generation over a prime field
    - Diffie-Hellman key agreement
    - DSA signature scheme
    - ElGamal signature scheme (two variants)
    - RSA keypair generation with chinese remainder theorem variables
    - RSA public & private key operations
    - DHAES encryption scheme

Planned for the near future are:
    - compliance with and compliance statements for IEEE P1363
    - switch from OSS to ALSA for entropy gathering
    - experiments with CUDA (AES, MD6?)
    - more blockciphers (Twofish, ... )
    - more blockcipher modes (OFB, ... )
    - more hash functions (SHA-3 candidates, HAVAL, Tiger)
    - Elliptic Curves (ECDSA, ... )
    - RSA signatures as specified by RFC-2440.

The library has been tested on the following platforms:
    - Cygwin
    - Darwin/MacOS X
    - Linux glibc 2.x alpha
    - Linux glibc 2.x arm
    - Linux glibc 2.x ia64
    - Linux glibc 2.x m68k
    - Linux glibc 2.x ppc
    - Linux glibc 2.x ppc64
    - Linux glibc 2.x s390
    - Linux glibc 2.x s390x
    - Linux glibc 2.x sparc
    - Linux glibc 2.x x86
    - Linux glibc 2.x x86_64/amd64
    - Solaris 2.[6789] sparc (with Forte or gnu compilers)
    - Solaris 2.[78] x86 (with Forte or GNU compilers)
    - Tru64 Unix alpha
    - Win32 (Windows 95, 98, NT 4.0, 2000, XP)

The library is currently in the process of being ported to:
    - MinGW
    - AIX (shared libraries don't seem to work in 64-bit mode)

For more information, refer to the HTML documentation, which can be generated
with Doxygen, in the docs directory.

If you want to report bugs, make suggestions, contribute fixes or
enhancements, please see the beecrypt-specific website:

http://sourceforge.net/projects/beecrypt

or contact me at mailto:bob.deblier@telenet.be

Sincerely,

Bob Deblier
