head	1.8;
access;
symbols
	pjones-sparse-experiment:1.8.0.2
	beecrypt-4_0_0:1.8
	rpm-4_2_1-release:1.7
	rpm-4_1_1-release:1.4
	rpm-4_2-release:1.4
	rpm-4_2:1.4.0.4
	rpm-4_1-release:1.4
	rpm-4_1:1.4.0.2
	rpm-4_0_4-release:1.2
	jbj-before-beecrypt:1.2
	rpm-4_0:1.2.0.2
	postmerge-beecrypt-2_2_0pre:1.2
	premerge-beecrypt-2_2_0pre:1.2
	jbj_anotated:1.2;
locks; strict;
comment	@# @;


1.8
date	2004.08.02.00.45.38;	author jbj;	state Exp;
branches;
next	1.7;

1.7
date	2003.05.28.17.18.56;	author jbj;	state Exp;
branches;
next	1.6;

1.6
date	2003.04.28.19.34.21;	author jbj;	state Exp;
branches;
next	1.5;

1.5
date	2003.04.27.23.06.37;	author jbj;	state Exp;
branches;
next	1.4;

1.4
date	2002.06.14.21.05.36;	author jbj;	state Exp;
branches;
next	1.3;

1.3
date	2002.06.14.20.31.05;	author jbj;	state Exp;
branches;
next	1.2;

1.2
date	2001.09.23.12.09.48;	author jbj;	state Exp;
branches;
next	1.1;

1.1
date	2001.09.20.20.17.13;	author jbj;	state Exp;
branches;
next	;


desc
@@


1.8
log
@Upgrade to beecrypt-4.0.0.
@
text
@/*! \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
 */
@


1.7
log
@Spliddles and diddles.
@
text
@d6 2
a7 1
documentation.
d30 52
a81 35
    - entropy sources for initializing pseudo-random generators
    - pseudo-random generators
        - FIPS-186
        - Mersenne Twister
    - block ciphers
        - AES
        - Blowfish
    - hash functions
        - MD5
        - SHA-1
        - SHA-256
    - keyed hash functions (a.k.a. message authentication codes)
        - HMAC-MD5
        - HMAC-SHA-1
        - HMAC-SHA-256
    - 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
    - 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

Planned for the near future are:
    - compliance with and compliance statements for IEEE P1363
    - more blockciphers (Twofish, ... )
    - more hash functions (RIPEMD-160, SHA-384, SHA-512, HAVAL, Tiger)
    - RSA signatures as specified by RFC-2440.
    - Elliptic Curves (ECDSA, ... )
    - more blockcipher modes (OFB, ... )
d84 22
a105 15
    - 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 s390x
    - Linux glibc 2.x sparc
    - Linux glibc 2.x x86
    - 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)
    - AIX (shared libraries don't seem to work in 64-bit mode)
    - Darwin (javaglue doesn't compile yet)
    - Cygwin (the DLL builds now, but needs to be tested)
d114 1
a114 1
/*! \defgroup	ES_m	Entropy sources
d116 1
a116 1
/*! \defgroup	ES_audio_m	Entropy sources: /dev/audio
d118 1
a118 1
/*! \defgroup	ES_dsp_m	Entropy sources: /dev/dsp
d120 1
a120 1
/*! \defgroup	ES_random_m	Entropy sources: /dev/random
d122 1
a122 1
/*! \defgroup	ES_urandom_m	Entropy sources: /dev/urandom
d124 1
a124 1
/*! \defgroup	ES_tty_m	Entropy sources: /dev/tty
d126 1
a126 1
/*! \defgroup	PRNG_m	Pseudo-Random Number Generators
d128 1
a128 1
/*! \defgroup	PRNG_fips186_m	Pseudo-Random Number Generators: FIPS-186
d130 1
a130 1
/*! \defgroup	PRNG_mt_m	Pseudo-Random Number Generators: Mersenne Twister
d132 1
a132 1
/*! \defgroup	HASH_m	Hash Functions
d134 1
a134 1
/*! \defgroup	HASH_md5_m	Hash Functions: MD5
d136 1
a136 1
/*! \defgroup	HASH_sha1_m	Hash Functions: SHA-1
d138 1
a138 1
/*! \defgroup	HASH_sha256_m	Hash Functions: SHA-256
d140 1
a140 1
/*! \defgroup	HMAC_m	Keyed Hash Functions, a.k.a. Message Authentication Codes
d142 1
a142 1
/*! \defgroup	HMAC_md5_m	Keyed Hash Functions: HMAC-MD5
d144 1
a144 1
/*! \defgroup	HMAC_sha1_m	Keyed Hash Functions: HMAC-SHA-1
d146 1
a146 1
/*! \defgroup	HMAC_sha256_m	Keyed Hash Functions: HMAC-SHA-256
d148 1
a148 1
/*! \defgroup	BC_m	Block ciphers
d150 1
a150 1
/*! \defgroup	BC_aes_m	Block ciphers: AES
d152 1
a152 1
/*! \defgroup	BC_blowfish_m	Block ciphers: Blowfish
d154 1
a154 1
/*! \defgroup	MP_m	Multiple Precision Integer Arithmetic
d156 1
a156 1
/*! \defgroup	DL_m	Discrete Logarithm Primitives
d158 1
a158 1
/*! \defgroup	DL_dh_m	Discrete Logarithm Primitives: Diffie-Hellman
d160 1
a160 1
/*! \defgroup	DL_dsa_m	Discrete Logarithm Primitives: DSA
d162 1
a162 1
/*! \defgroup	DL_elgamal_m	Discrete Logarithm Primitives: ElGamal
d164 1
a164 1
/*! \defgroup	IF_m	Integer Factorization Primitives
d166 1
a166 1
/*! \defgroup	IF_rsa_m	Integer Factorization Primitives: RSA
d168 1
a168 1
/*! \defgroup	JAVA_m	Java API
d170 1
a170 1
/*! \defgroup	UNIT_m	Unit tests
d172 29
a200 1
/*! \defgroup	BENCH_m	Benchmark tests
@


1.6
log
@beecrypt-3.0.0 merge: uint32 excision.
@
text
@d3 25
d45 2
a46 1
      for several processors
d51 1
a55 1
    - DHAES encryption scheme
a57 2
    - mp64 library for operation on 64-bit computers (and possibly also
      on certain 32-bit platforms)
a65 4
    - FreeBSD 4.0 alpha
    - FreeBSD 4.0, 4.2 x86
        - includes assembler optimization (tuned for Pentium and higher)
    - HP-UX 11a PA-RISC
d68 2
a69 1
        - includes assembler optimization
d71 2
a72 3
        - includes assembler optimization for 32-bit PowerPC
     - Linux glibc 2.x sparc
        - includes assembler optimization for Sparc v8
d74 2
a75 5
        - includes assembler optimization (tuned for Pentium and higher)
    - Solaris 2.[6789] sparc (with Forte or gnu compilers)
        - includes assembler optimization for Sparc v8, v8plus and v9
    - Solaris 2.[78] x86 (with Forte or gnu compilers)
        - includes assembler optimization (tuned for Pentium and higher)
d77 3
a79 6
    - Win32 (Windows 95, 98, NT 4.0, 2000)
        - includes assembler optimization (tuned for Pentium and higher)

The library is currently in the process of being ported to:
    - Darwin (apparently Apple has decided to change the PPC assembler format;
      this will need a fix)
@


1.5
log
@beecrypt-3.0.0 merge: (mostly) grand renaming, mpw et al.
@
text
@d45 1
d91 2
d115 2
d119 1
a119 1
/*! \defgroup	DH_m	Diffie-Hellman Primitives
d121 1
a121 1
/*! \defgroup	DSA_m	DSA Encryption/Signature Primitives
d123 1
a123 1
/*! \defgroup	RSA_m	RSA Encryption/Signature Primitives
d125 1
a125 1
/*! \defgroup	ELGAMAL_m	ElGamal Signature Primitives
d127 1
a127 1
/*! \defgroup	MP32_m	Multiple Precision Integer Arithmetic (32 bit)
d129 1
a129 1
/*! \defgroup	MP64_m	Multiple Precision Integer Arithmetic (64 bit)
d131 3
a133 1
/*! \defgroup	JAVA_m	Java API
@


1.4
log
@Doxygen and splint fiddles.
@
text
@d5 14
a18 4
    - pseudo-random generators: FIPS-186, Mersenne Twister
    - block ciphers: AES, Blowfish
    - hash functions: MD5, SHA-1, SHA-256
    - keyed hash functions: HMAC-MD5, HMAC-SHA-1, HMAC-SHA-256
d36 3
a38 3
	- more hash functions (RIPEMD-160, SHA-384, SHA-512, HAVAL, Tiger)
	- RSA signatures as specified by RFC-2440.
	- Elliptic Curves (ECDSA, ... )
d54 1
a54 1
    - Solaris 2.6/2.7/2.8 sparc (with Forte or gnu compilers)
d56 1
a56 1
    - Solaris 2.7/2.8 x86 (with Forte or gnu compilers)
d65 6
a70 1
    - Cygwin (Can't seem to get the DLL to build properly with the current version of the autotools)
@


1.3
log
@First crack at merging beecrypt-2.3.0 changes.
@
text
@d26 3
a28 3
    - more hash functions (RIPEMD-160, SHA-384, SHA-512, HAVAL, Tiger)
    - RSA signatures as specified by RFC-2440.
    - Elliptic Curves (ECDSA, ... )
d55 1
a55 1
    - Cygwin (the DLL builds now, but needs to be tested)
@


1.2
log
@More lclint annotations, now at the strict level with a complete program.
@
text
@d1 1
a1 6
/*! \mainpage beecrypt API Documentation.
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.

d6 1
a6 1
    - block ciphers: Blowfish
d8 1
a8 1
    - keyed hash functions: MD5/HMAC, SHA-1/HMAC, SHA-256/HMAC
d10 1
a10 1
	  for several processors
d12 1
a12 1
	  division
d15 1
d17 3
a19 3
	- RSA keypair generation with chinese remainder theorem variables
	- RSA public & private key operations
	- DHAES encryption scheme
d22 2
d25 5
a29 4
    - DSA (i.e. the rest of FIPS-186)
    - more blockciphers (Rijndael a.k.a AES, Twofish, ... )
	- more hash functions (RIPEMD-160, SHA-384, SHA-512, HAVAL, Tiger)
	- Elliptic Curves (ECDSA, ... )
d34 1
a34 1
		- includes assembler optimization (tuned for Pentium and higher)
d37 1
a37 1
	- includes assembler optimization
d39 3
a41 3
	- includes assembler optimization (for generic 32-bit PowerPC)
    - Linux glibc 2.x sparc
	- includes assembler optimization for sparc v8
d43 1
a43 1
	- includes assembler optimization (tuned for Pentium and higher)
d45 1
a45 1
	- includes assembler optimization for sparc v8, v8plus and v9
d47 1
a47 1
	- includes assembler optimization (tuned for Pentium and higher)
d50 1
a50 1
	- includes assembler optimization (tuned for Pentium and higher)
d53 4
a56 4
	- Cygwin (the DLL builds now, but needs to be tested)
	- Darwin (Darwin 1.2 doesn't seem to run on our PowerMac 7300/166,
	  and 1.0.2 was flaky, so any volunteer effort would be appreciated)
	- QNX (I currently don't have a testing system anymore)
d59 5
a63 1
/** \defgroup	ES_m	Entropy sources
d65 1
a65 1
/** \defgroup	ES_audio_m	Entropy sources: /dev/audio
d67 1
a67 1
/** \defgroup	ES_dsp_m	Entropy sources: /dev/dsp
d69 1
a69 1
/** \defgroup	ES_random_m	Entropy sources: /dev/random
d71 1
a71 1
/** \defgroup	ES_urandom_m	Entropy sources: /dev/urandom
d73 1
a73 1
/** \defgroup	ES_tty_m	Entropy sources: /dev/tty
d75 1
a75 1
/** \defgroup	PRNG_m	Pseudo-Random Number Generators
d77 1
a77 1
/** \defgroup	PRNG_fips186_m	Pseudo-Random Number Generator: FIPS-186
d79 1
a79 1
/** \defgroup	HASH_m	Hash Functions
d81 1
a81 1
/** \defgroup	HASH_md5_m	Hash Functions: md5
d83 1
a83 1
/** \defgroup	HASH_sha1_m	Hash Functions: sha1
d85 1
a85 1
/** \defgroup	HASH_sha256_m	Hash Functions: sha256
d87 1
a87 1
/** \defgroup	HMAC_m	Keyed Hash Functions, a.k.a. Message Authentication Codes
d89 1
a89 1
/** \defgroup	HMAC_md5_m	Keyed Hash Functions: md5
d91 1
a91 1
/** \defgroup	HMAC_sha1_m	Keyed Hash Functions: sha1
d93 1
a93 1
/** \defgroup	HMAC_sha256_m	Keyed Hash Functions: sha256
d95 1
a95 1
/** \defgroup	BC_m	Block ciphers
d97 1
a97 1
/** \defgroup	BC_blowfish_m	Block ciphers: Blowfish
d99 1
a99 1
/** \defgroup	RSA_m	RSA Encryption/Signature Primitives
d101 1
a101 1
/** \defgroup	DSA_m	DSA Encryption/Signature Primitives
d103 1
a103 1
/** \defgroup	ELGAMAL_m	ElGamal Signature Primitives
d105 1
a105 1
/** \defgroup	DH_m	Diffie-Hellman Encryption
d107 1
a107 1
/** \defgroup	DL_m	Discrete Logartithms
d109 1
a109 1
/** \defgroup	MP_m	Multiple Precision Integer Arithmetic
d111 1
a111 1
/** \defgroup	JAVA_m	Java API
@


1.1
log
@Orphans
@
text
@d108 2
@

