prepare for 5.2 release

pull/2/head
weidai 2004-06-29 10:49:21 +00:00
parent f103dd6636
commit 352a575d0b
2 changed files with 64 additions and 53 deletions

View File

@ -1,57 +1,65 @@
Crypto++: a C++ Class Library of Cryptographic Schemes Crypto++: a C++ Class Library of Cryptographic Schemes
Version 5.2 (in development) Version 5.2 6/29/2004
This library includes: This library includes:
- a class hierarchy with an API defined by abstract base classes - a class hierarchy with an API defined by abstract base classes
- Proposed AES (Rijndael) and other AES candidates: RC6, MARS, Twofish, - AES (Rijndael) and AES candidates: RC6, MARS, Twofish, Serpent,
Serpent, CAST-256 CAST-256
- other symmetric block ciphers: IDEA, DES, Triple DES (DES-EDE2 and - other symmetric block ciphers: IDEA, DES, Triple-DES (DES-EDE2
DES-EDE3), DESX (DES-XEX3), RC2, RC5, Blowfish, Diamond2, TEA, SAFER, and DES-EDE3), DESX (DES-XEX3), RC2, RC5, Blowfish, Diamond2,
3-WAY, GOST, SHARK, CAST-128, Square, Skipjack TEA, SAFER, 3-WAY, GOST, SHARK, CAST-128, Square, Skipjack,
- generic block cipher modes: ECB, CBC, CBC ciphertext stealing (CTS), Camellia, SHACAL-2
CFB, OFB, counter (CTR) mode - generic cipher modes: ECB, CBC, CBC ciphertext stealing (CTS),
- stream ciphers: Panama, ARC4, SEAL, WAKE, WAKE-OFB, BlumBlumShub CFB, OFB, counter mode (CTR)
- public key cryptography: RSA, DSA, ElGamal, Nyberg-Rueppel (NR), Rabin, - stream ciphers: Panama, ARC4, SEAL, WAKE, WAKE-OFB,
Rabin-Williams (RW), LUC, LUCELG, DLIES (variants of DHAES), ESIGN BlumBlumShub
- padding schemes for public-key systems: PKCS#1 v2.0, OAEP, PSSR, IEEE - public key cryptography: RSA, DSA, ElGamal, Nyberg-Rueppel
P1363 EMSA2 (NR), Rabin, Rabin-Williams (RW), LUC, LUCELG, DLIES (variants
- key agreement schemes: Diffie-Hellman (DH), Unified Diffie-Hellman of DHAES), ESIGN
(DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, XTR-DH - padding schemes for public-key systems: PKCS#1 v2.0, OAEP,
- elliptic curve cryptography: ECDSA, ECNR, ECIES, ECDH, ECMQV (with PSSR, IEEE P1363 EMSA2
optional cofactor multiplication for ECIES, ECDHC, ECMQVC) - key agreement schemes: Diffie-Hellman (DH), Unified Diffie-
- one-way hash functions: SHA-1, MD2, MD4, MD5, HAVAL, RIPEMD-160, Tiger, Hellman (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, XTR-DH
SHA-2 (SHA-256, SHA-384, and SHA-512), Panama - elliptic curve cryptography: ECDSA, ECNR, ECIES, ECDH, ECMQV
- public and private key validation for asymmetric algorithms - one-way hash functions: SHA-1, MD2, MD4, MD5, HAVAL, RIPEMD-
- message authentication codes: MD5-MAC, HMAC, XOR-MAC, CBC-MAC, DMAC 128, RIPEMD-256, RIPEMD-160, RIPEMD-320, Tiger, SHA-2 (SHA-256,
- cipher constructions based on hash functions: Luby-Rackoff, MDC SHA-384, and SHA-512), Panama, Whirlpool
- pseudo random number generators (PRNG): ANSI X9.17 appendix C, PGP's - message authentication codes: MD5-MAC, HMAC, XOR-MAC, CBC-MAC,
RandPool DMAC, Two-Track-MAC
- Shamir's secret sharing scheme and Rabin's information dispersal - cipher constructions based on hash functions: Luby-Rackoff, MDC
algorithm (IDA) - pseudo random number generators (PRNG): ANSI X9.17 appendix C,
- DEFLATE (RFC 1951) compression/decompression with gzip (RFC 1952) and PGP's RandPool
zlib (RFC 1950) format support - password based key derivation functions: PBKDF1 and PBKDF2 from
- fast multi-precision integer (bignum) and polynomial operations PKCS #5
- finite field arithmetics, including GF(p) and GF(2^n) - Shamir's secret sharing scheme and Rabin's information
- prime number generation and verification dispersal algorithm (IDA)
- various miscellaneous modules such as base 64 coding and 32-bit CRC - DEFLATE (RFC 1951) compression/decompression with gzip (RFC
- class wrappers for these operating system features (optional): 1952) and zlib (RFC 1950) format support
- high resolution timers on Windows, Unix, and MacOS - fast multi-precision integer (bignum) and polynomial
- Berkeley and Windows style sockets operations, with SSE2 optimizations for Pentium 4 processors
- Windows named pipes - finite field arithmetics, including GF(p) and GF(2^n)
- /dev/random and /dev/urandom on Linux and FreeBSD - prime number generation and verification
- Microsoft's CryptGenRandom on Windows - various miscellaneous modules such as base 64 coding and 32-bit
- A high level interface for most of the above, using a filter/pipeline CRC
metaphor - class wrappers for these operating system features (optional):
- benchmarks and validation testing - high resolution timers on Windows, Unix, and MacOS
- Berkeley and Windows style sockets
- Windows named pipes
- /dev/random and /dev/urandom on Linux and FreeBSD
- Microsoft's CryptGenRandom on Windows
- A high level interface for most of the above, using a
filter/pipeline metaphor
- benchmarks and validation testing
- FIPS 140-2 Validated
You are welcome to use it for any purpose without paying me, but see You are welcome to use it for any purpose without paying me, but see
license.txt for the fine print. license.txt for the fine print.
This version of Crypto++ has been compiled successfully with MSVC 6.0, .NET This version of Crypto++ has been compiled successfully with MSVC 6.0 SP5
2002, and .NET 2003 on Windows XP, GCC 2.95.4 on FreeBSD 4.6, GCC 2.95.3 on and .NET 2003 on Windows XP, GCC 2.95.4 on FreeBSD 4.6, GCC 2.95.3 on
Linux 2.4 and SunOS 5.8, GCC 3.2 on Cygwin 1.3.12, and Metrowerks Linux 2.4 and SunOS 5.8, GCC 3.4 on Cygwin 1.5.10, and Metrowerks
CodeWarrior 8.2. CodeWarrior 8.3 for Windows and MacOS.
*** MSVC-Specific Information *** *** MSVC-Specific Information ***
@ -92,13 +100,13 @@ run-time libraries and calling conventions.
Because it's possible for the Crypto++ DLL to delete objects allocated Because it's possible for the Crypto++ DLL to delete objects allocated
by the calling application, they must use the same C++ memory heap. Three by the calling application, they must use the same C++ memory heap. Three
methods are provided to achieve this. methods are provided to achieve this.
1. The calling application can tell Crypto++ what heap to use. This method 1. The calling application can tell Crypto++ what heap to use. This method
is required when the calling application uses a non-standard heap. is required when the calling application uses a non-standard heap.
2. Crypto++ can tell the calling application what heap to use. This method 2. Crypto++ can tell the calling application what heap to use. This method
is required when the calling application uses a statically linked C++ Run is required when the calling application uses a statically linked C++ Run
Time Library. (Method 1 does not work in this case because the Crypto++ DLL Time Library. (Method 1 does not work in this case because the Crypto++ DLL
is initialized before the calling application's heap is initialized.) is initialized before the calling application's heap is initialized.)
3. Crypto++ can automatically use the heap provided by the calling application's 3. Crypto++ can automatically use the heap provided by the calling application's
dynamically linked C++ Run Time Library. The calling application must dynamically linked C++ Run Time Library. The calling application must
make sure that the dynamically linked C++ Run Time Library is initialized make sure that the dynamically linked C++ Run Time Library is initialized
before Crypto++ is loaded. (At this time it is not clear if it is possible before Crypto++ is loaded. (At this time it is not clear if it is possible
@ -313,7 +321,7 @@ synchronization when multiple threads access a common Crypto++ object.
- fixed a number of compiler warnings, minor bugs, and portability problems - fixed a number of compiler warnings, minor bugs, and portability problems
- removed Sapphire - removed Sapphire
5.2 - Merged in changes for 5.01 - 5.0.4 5.2 - merged in changes for 5.01 - 5.0.4
- added support for using encoding parameters and key derivation parameters - added support for using encoding parameters and key derivation parameters
with public key encryption (implemented by OAEP and DL/ECIES) with public key encryption (implemented by OAEP and DL/ECIES)
- added Camellia, SHACAL-2, Two-Track-MAC, Whirlpool, RIPEMD-320, - added Camellia, SHACAL-2, Two-Track-MAC, Whirlpool, RIPEMD-320,
@ -321,8 +329,8 @@ synchronization when multiple threads access a common Crypto++ object.
- added ThreadUserTimer for timing thread CPU usage - added ThreadUserTimer for timing thread CPU usage
- added option for password-based key derivation functions - added option for password-based key derivation functions
to iterate until a mimimum elapsed thread CPU time is reached to iterate until a mimimum elapsed thread CPU time is reached
- added option for DEFLATE compression to detect uncompressible - added option (on by default) for DEFLATE compression to detect
files and process them more quickly uncompressible files and process them more quickly
- improved compatibility and performance on 64-bit platforms, - improved compatibility and performance on 64-bit platforms,
including Alpha, IA-64, x86-64, PPC64, Sparc64, and MIPS64 including Alpha, IA-64, x86-64, PPC64, Sparc64, and MIPS64
- fixed ONE_AND_ZEROS_PADDING to use 0x80 instead 0x01 as padding. - fixed ONE_AND_ZEROS_PADDING to use 0x80 instead 0x01 as padding.

View File

@ -1,4 +1,4 @@
Test Driver for Crypto++(TM) Library, a C++ Class Library of Cryptographic Schemes Test Driver for Crypto++(R) Library, a C++ Class Library of Cryptographic Schemes
- To generate an RSA key - To generate an RSA key
cryptest g cryptest g
@ -73,3 +73,6 @@ Test Driver for Crypto++(TM) Library, a C++ Class Library of Cryptographic Schem
- To run benchmarks - To run benchmarks
cryptest b [time for each benchmark in seconds] cryptest b [time for each benchmark in seconds]
- To run test vector file (available in TestVectors subdirectory)
cryptest tv filename