BeeCrypt API Documentation
4.2.0
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.
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:
-
entropy sources for initializing pseudo-random generators
-
pseudo-random generators
-
block ciphers
-
hash functions
-
MD5
-
RIPEMD-128
-
RIPEMD-160
-
RIPEMD-256
-
RIPEMD-320
-
SHA-1
-
SHA-224
-
SHA-256
-
SHA-384
-
SHA-512
-
keyed hash functions (a.k.a. message authentication codes)
-
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 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
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)
The library is currently in the process of being ported to:
-
MinGW
-
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.
-
compliance with and compliance statements for IEEE P1363
-
more blockciphers (Twofish, ... )
-
more blockcipher modes (OFB, ... )
-
more hash functions (MD2, MD4, Tiger, ...)
-
Elliptic Curves (ECDSA, ... )
-
RSA signatures as specified by RFC-2440.
Let us know which one you'd prefer to see added first.