rpm/beecrypt/Doxyheader

202 lines
6.3 KiB
Plaintext

/*! \mainpage BeeCrypt API Documentation.
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.
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.
Included in the library are:
<ul>
<li>entropy sources for initializing pseudo-random generators
<li>pseudo-random generators
<ul>
<li>FIPS-186
</ul>
<li>block ciphers
<ul>
<li>AES
<li>Blowfish
</ul>
<li>hash functions
<ul>
<li>MD5
<li>SHA-1
<li>SHA-256
</ul>
<li>keyed hash functions (a.k.a. message authentication codes)
<ul>
<li>HMAC-MD5
<li>HMAC-SHA-1
<li>HMAC-SHA-256
</ul>
<li>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.
<li>probabilistic primality testing, with optimized small prime trial
division
<li>discrete logarithm parameter generation over a prime field
<li>Diffie-Hellman key agreement
<li>DHAES encryption scheme
<li>DSA signature scheme
<li>ElGamal signature scheme (two variants)
<li>RSA keypair generation with chinese remainder theorem variables
<li>RSA public & private key operations
</ul>
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.
Planned for the future are:
<ul>
<li>compliance with and compliance statements for IEEE P1363
<li>more blockciphers (Twofish, ... )
<li>more blockcipher modes (CTR, OFB, ... )
<li>more hash functions (RIPEMD-160, SHA-384, SHA-512, HAVAL, Tiger)
<li>RSA signatures as specified by RFC-2440.
<li>Elliptic Curves (ECDSA, ... )
</ul>
The library has been tested on the following platforms:
<ul>
<li>Darwin
<li>Linux glibc 2.x alpha
<li>Linux glibc 2.x arm
<li>Linux glibc 2.x ia64
<li>Linux glibc 2.x m68k
<li>Linux glibc 2.x ppc
<li>Linux glibc 2.x s390x
<li>Linux glibc 2.x sparc
<li>Linux glibc 2.x x86
<li>Linux glibc 2.x x86_64
<li>Solaris 2.[6789] sparc (with Forte or GNU compilers)
<li>Solaris 2.[78] x86 (with Forte or GNU compilers)
<li>Tru64 Unix alpha
<li>Win32 (Windows 95, 98, NT 4.0, 2000, XP)
</ul>
The library is currently in the process of being ported to:
<ul>
<li>AIX (shared libraries don't seem to work in 64-bit mode)
<li>Cygwin (the DLL builds now, but needs to be tested)
</ul>
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.
*/
/*!\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 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 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_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 CXX_IO_m C++ classes mimicking java.io
*/
/*!\defgroup CXX_LANG_m C++ classes mimicking java.lang
*/
/*!\defgroup CXX_PROV_m C++ Base Cryptographic Service Provider
*/
/*!\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 JAVA_m Java API
*/
/*!\defgroup UNIT_m Unit tests
*/
/*!\defgroup BENCH_m Benchmark tests
*/