/*!\mainpage BeeCrypt API Documentation
*
* \section intro_sec Introduction
*
* 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. The library is currently in full swing again, thanks to the
* Beeyond Software Holding BV.
*
* \section license_sec License
*
* BeeCrypt is released under the following license:
*
* 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
*
* Legal disclaimer: 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.
*
* \section features_sec Features
*
* Included in the library are:
*
* - entropy sources for initializing pseudo-random generators
*
- pseudo-random generators
*
*
- block ciphers
*
*
- hash functions
*
* - MD5
*
- SHA-1
*
- SHA-256
*
- SHA-384
*
- SHA-512
*
* - keyed hash functions (a.k.a. message authentication codes)
*
* - HMAC-MD5
*
- HMAC-SHA-1
*
- HMAC-SHA-256
*
- HMAC-SHA-384
*
- HMAC-SHA-512
*
* - multi-precision integer library, with assembler-optimized routines
* for a range of processors; optimized to perform well on both 32-bit
* and 64-bit machines; uses Barrett modular reduction instead of the
* more common usual Montgomery algorithm; also implements sliding
* windows.
*
- probabilistic primality testing, with optimized small prime trial
* division
*
- discrete logarithm parameter generation over a prime field
*
- Diffie-Hellman key agreement
*
- DHAES encryption scheme
*
- DSA signature scheme
*
- ElGamal signature scheme (two variants)
*
- RSA keypair generation with chinese remainder theorem variables
*
- RSA public & private key operations
*
*
* A new feature in version 4.x is the C++ API, built to resemble Java's security
* and cryptography API. At this moment the number of classes provided is just
* enough to build CSPs. If there is enough interest, we may expand this library.
*
* Included in the base provider are broad spectrum of algorithms:
*
* - AlgorithmParameterGenerator
*
*
- AlgorithmParameters
*
*
- Cipher
*
* - AES
*
- Blowfish
*
- DHAES
*
* - KeyAgreement
*
*
- KeyPairGenerator
*
*
- Mac
*
* - HMAC-MD5
*
- HMAC-SHA-1
*
- HMAC-SHA-256
*
- HMAC-SHA-384
*
- HMAC-SHA-512
*
* - MessageDigest
*
* - MD5
*
- SHA-1
*
- SHA-256
*
- SHA-384
*
- SHA-512
*
* - Signature
*
* - MD5withRSA
*
- SHA1withDSA
*
- SHA1withRSA
*
- SHA256withRSA
*
- SHA384withRSA
*
- SHA512withRSA
*
*
*
* \section testing_sec Testing
*
* 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 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)
*
*
* \section porting_sec Porting
*
* The library is currently in the process of being ported to:
*
* - AIX (shared libraries don't seem to work in 64-bit mode)
*
*
* 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.
*
* \section future_sec The Future
*
*
* - compliance with and compliance statements for IEEE P1363
*
- more blockciphers (Twofish, ... )
*
- more blockcipher modes (CTR, OFB, ... )
*
- more hash functions (RIPEMD-160, HAVAL, Tiger)
*
- Elliptic Curves (ECDSA, ... )
*
- RSA signatures as specified by RFC-2440.
*
*
* Let us know which one you'd prefer to see added first.
*/
/*!\defgroup ES_m Entropy sources
*/
/*!\defgroup ES_audio_m Entropy sources: /dev/audio
*/
/*!\defgroup ES_dsp_m Entropy sources: /dev/dsp
*/
/*!\defgroup ES_random_m Entropy sources: /dev/random
*/
/*!\defgroup ES_urandom_m Entropy sources: /dev/urandom
*/
/*!\defgroup ES_tty_m Entropy sources: /dev/tty
*/
/*!\defgroup PRNG_m Pseudo-Random Number Generators
*/
/*!\defgroup PRNG_fips186_m Pseudo-Random Number Generators: FIPS-186
*/
/*!\defgroup PRNG_mt_m Pseudo-Random Number Generators: Mersenne Twister
*/
/*!\defgroup HASH_m Hash Functions
*/
/*!\defgroup HASH_md5_m Hash Functions: MD5
*/
/*!\defgroup HASH_sha1_m Hash Functions: SHA-1
*/
/*!\defgroup HASH_sha256_m Hash Functions: SHA-256
*/
/*!\defgroup HASH_sha384_m Hash Functions: SHA-384
*/
/*!\defgroup HASH_sha512_m Hash Functions: SHA-512
*/
/*!\defgroup HMAC_m Keyed Hash Functions, a.k.a. Message Authentication Codes
*/
/*!\defgroup HMAC_md5_m Keyed Hash Functions: HMAC-MD5
*/
/*!\defgroup HMAC_sha1_m Keyed Hash Functions: HMAC-SHA-1
*/
/*!\defgroup HMAC_sha256_m Keyed Hash Functions: HMAC-SHA-256
*/
/*!\defgroup HMAC_sha384_m Keyed Hash Functions: HMAC-SHA-384
*/
/*!\defgroup HMAC_sha512_m Keyed Hash Functions: HMAC-SHA-512
*/
/*!\defgroup BC_m Block ciphers
*/
/*!\defgroup BC_aes_m Block ciphers: AES
*/
/*!\defgroup BC_blowfish_m Block ciphers: Blowfish
*/
/*!\defgroup MP_m Multiple Precision Integer Arithmetic
*/
/*!\defgroup DL_m Discrete Logarithm Primitives
*/
/*!\defgroup DL_dh_m Discrete Logarithm Primitives: Diffie-Hellman
*/
/*!\defgroup DL_dsa_m Discrete Logarithm Primitives: DSA
*/
/*!\defgroup DL_elgamal_m Discrete Logarithm Primitives: ElGamal
*/
/*!\defgroup IF_m Integer Factorization Primitives
*/
/*!\defgroup IF_rsa_m Integer Factorization Primitives: RSA
*/
/*!\defgroup PKCS1_m PKCS#1
*/
/*!\defgroup PKCS12_m PKCS#12
*/
/*!\defgroup CXX_m C++ API
*/
/*!\defgroup CXX_IO_m C++ classes mimicking java.io
*/
/*!\defgroup CXX_LANG_m C++ classes mimicking java.lang
*/
/*!\defgroup CXX_NIO_m C++ classes mimicking java.nio
*/
/*!\defgroup CXX_SECURITY_m C++ classes mimicking java.security
*/
/*!\defgroup CXX_SECURITY_CERT_m C++ classes mimicking java.security.cert
*/
/*!\defgroup CXX_SECURITY_INTERFACES_m C++ classes mimicking java.security.interfaces
*/
/*!\defgroup CXX_SECURITY_SPEC_m C++ classes mimicking java.security.spec
*/
/*!\defgroup CXX_UTIL_m C++ classes mimicking java.util
*/
/*!\defgroup CXX_CRYPTO_m C++ classes mimicking javax.crypto
*/
/*!\defgroup CXX_CRYPTO_INTERFACES_m C++ classes mimicking javax.crypto.interfaces
*/
/*!\defgroup CXX_CRYPTO_SPEC_m C++ classes mimicking javax.crypto.spec
*/
/*!\defgroup JAVA_m Java API
*/
/*!\defgroup UNIT_m Unit tests
*/
/*!\defgroup BENCH_m Benchmark tests
*/