From 6c1d4575fb5bb227266b9ccd276af9b7e9439dc5 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 09:40:26 -0400 Subject: [PATCH 01/14] Updated release notes --- Readme.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Readme.txt b/Readme.txt index c7013c9c..7aa4f76f 100644 --- a/Readme.txt +++ b/Readme.txt @@ -511,7 +511,8 @@ the mailing list. - added CRC32-C * C/C++, Intel CRC, and ARMv8 CRC - improved GCM mode - * ARMv8 ASIMD using carry-less multiply + * ARM NEON and ARMv8 ASIMD + * ARMv8 carry-less multiply - improved MIPS, ARMv7 and ARMv8 support * more IoT gadget testing - improved build systems From c569e81edc5607e50f11d7685b68b6c2cd0cbc64 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 09:46:24 -0400 Subject: [PATCH 02/14] Cleaned dylib artifacts --- GNUmakefile | 3 +++ GNUmakefile-cross | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index 6a25db67..4de9d10a 100755 --- a/GNUmakefile +++ b/GNUmakefile @@ -537,6 +537,9 @@ endif ifneq ($(wildcard *.exe.dSYM),) -$(RM) -r *.exe.dSYM/ endif +ifneq ($(wildcard *.dylib.dSYM),) + -$(RM) -r *.dylib.dSYM/ +endif ifneq ($(wildcard cov-int/),) -$(RM) -r cov-int/ endif diff --git a/GNUmakefile-cross b/GNUmakefile-cross index 17fecb02..65849af9 100755 --- a/GNUmakefile-cross +++ b/GNUmakefile-cross @@ -165,8 +165,11 @@ ifeq ($(HAS_SOLIB_VERSION),1) -$(RM) libcryptopp.so libcryptopp.so$(SOLIB_COMPAT_SUFFIX) endif -$(RM) adhoc.cpp.o adhoc.cpp.proto.o $(LIBOBJS) $(TESTOBJS) -ifneq ($(wildcard *.dSYM),) - -$(RM) -r cryptest.exe.dSYM +ifneq ($(wildcard *.exe.dSYM),) + -$(RM) -r *.exe.dSYM/ +endif +ifneq ($(wildcard *.dylib.dSYM),) + -$(RM) -r *.dylib.dSYM/ endif .PHONY: distclean From 1b131232aeb4d5b2185a0e251a17cf30717c7f21 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 12:02:08 -0400 Subject: [PATCH 03/14] Updated release notes --- Readme.txt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Readme.txt b/Readme.txt index 7aa4f76f..ca9a55d0 100644 --- a/Readme.txt +++ b/Readme.txt @@ -68,7 +68,7 @@ Other features include: + Windows named pipes + /dev/random, /dev/urandom, /dev/srandom + Microsoft's CryptGenRandom on Windows - + VIA Padlock, Intel RDRAND and RDSEED + + VIA Padlock, Amd64 RDRAND and RDSEED * A high level interface for most of the above, using a filter/pipeline metaphor * benchmarks and validation testing @@ -509,15 +509,19 @@ the mailing list. - added BLAKE2 (BLAKE2s and BLAKE2b) * C++, SSE2, SSE4, ARM NEON and ARMv8 ASIMD - added CRC32-C - * C/C++, Intel CRC, and ARMv8 CRC + * C/C++, Amd64 CRC, and ARMv8 CRC + - improved C++11 support + * atomics, threads and fences + * alginof, alignas + * constexpr - improved GCM mode * ARM NEON and ARMv8 ASIMD - * ARMv8 carry-less multiply + * ARMv8 carry-less multiply - improved MIPS, ARMv7 and ARMv8 support * more IoT gadget testing - improved build systems * Visual Studio 2010 default - * added Cmake support + * added CMake support * archived VC++ 5/0/6.0 and VS2005 project files * archived Borland project files - improved Testing and QA @@ -525,6 +529,6 @@ the mailing list. * additional tests in cryptest.sh * added C++11, C++17, C++14, C++17 testing * added -O3, -O5, -Ofast and -Os testing - - ported to MSVC 2015 SP3, Xcode 9.0, Sun Studio 12.5, GCC 7.0, Clang 4.0, Intel C++ 17.00 + - ported to MSVC 2015 SP3, Xcode 9.0, Sun Studio 12.5, GCC 7.0, MacPorts GCC 7.0, Clang 3.8, Intel C++ 17.00 Written by Wei Dai and the Crypto++ Project From edae9826316fb32707d21f81a4a689f4c700656f Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 13:50:01 -0400 Subject: [PATCH 04/14] Updated release notes --- Readme.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Readme.txt b/Readme.txt index ca9a55d0..22a11366 100644 --- a/Readme.txt +++ b/Readme.txt @@ -519,15 +519,17 @@ the mailing list. * ARMv8 carry-less multiply - improved MIPS, ARMv7 and ARMv8 support * more IoT gadget testing + * cryptest.sh and tailored tests - improved build systems * Visual Studio 2010 default * added CMake support * archived VC++ 5/0/6.0 and VS2005 project files * archived Borland project files - improved Testing and QA - * additional platform and compiller support - * additional tests in cryptest.sh - * added C++11, C++17, C++14, C++17 testing + * added more platforms and compilers support + * added more tests in cryptest.sh + * added code generation tests based on CPU features + * added C++03, C++11, C++14, C++17 testing * added -O3, -O5, -Ofast and -Os testing - ported to MSVC 2015 SP3, Xcode 9.0, Sun Studio 12.5, GCC 7.0, MacPorts GCC 7.0, Clang 3.8, Intel C++ 17.00 From 18e23866128fcc35e01b61e3f75fc25abfcd72ac Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 14:39:08 -0400 Subject: [PATCH 05/14] Updated release notes --- Readme.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Readme.txt b/Readme.txt index 22a11366..c1c00d26 100644 --- a/Readme.txt +++ b/Readme.txt @@ -518,15 +518,16 @@ the mailing list. * ARM NEON and ARMv8 ASIMD * ARMv8 carry-less multiply - improved MIPS, ARMv7 and ARMv8 support - * more IoT gadget testing - * cryptest.sh and tailored tests + * added scripts setenv-{android|embedded|ios}.sh for GNUmakfile-cross + * aggressive use of -march= and -mfpu= in cryptest.sh - improved build systems * Visual Studio 2010 default * added CMake support - * archived VC++ 5/0/6.0 and VS2005 project files - * archived Borland project files + * archived VC++ 5/0/6.0 project files (vc60.zip) + * archived VS2005 project files (vs2005.zip) + * archived Borland project files (bds10.zip) - improved Testing and QA - * added more platforms and compilers support + * added more platforms and compilers * added more tests in cryptest.sh * added code generation tests based on CPU features * added C++03, C++11, C++14, C++17 testing From ba2d645fa9a1219c1638899b8d0d314ff9f42e0e Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 14:50:26 -0400 Subject: [PATCH 06/14] Updated release notes --- Readme.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Readme.txt b/Readme.txt index c1c00d26..d3d732aa 100644 --- a/Readme.txt +++ b/Readme.txt @@ -510,6 +510,8 @@ the mailing list. * C++, SSE2, SSE4, ARM NEON and ARMv8 ASIMD - added CRC32-C * C/C++, Amd64 CRC, and ARMv8 CRC + - improved Rabin-William signatures + * Tweaked roots e and f - improved C++11 support * atomics, threads and fences * alginof, alignas From 90cf9a6c1e81b11bd48415f808573bcb68eb52de Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 14:53:34 -0400 Subject: [PATCH 07/14] Updated release notes --- Readme.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Readme.txt b/Readme.txt index d3d732aa..65c461e5 100644 --- a/Readme.txt +++ b/Readme.txt @@ -529,8 +529,7 @@ the mailing list. * archived VS2005 project files (vs2005.zip) * archived Borland project files (bds10.zip) - improved Testing and QA - * added more platforms and compilers - * added more tests in cryptest.sh + * expanded platforms and compilers * added code generation tests based on CPU features * added C++03, C++11, C++14, C++17 testing * added -O3, -O5, -Ofast and -Os testing From 49a71e87a85b2827fc9b5461ebbc50f562b9e444 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 14:55:10 -0400 Subject: [PATCH 08/14] Updated release notes --- Readme.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.txt b/Readme.txt index 65c461e5..db994e72 100644 --- a/Readme.txt +++ b/Readme.txt @@ -520,7 +520,7 @@ the mailing list. * ARM NEON and ARMv8 ASIMD * ARMv8 carry-less multiply - improved MIPS, ARMv7 and ARMv8 support - * added scripts setenv-{android|embedded|ios}.sh for GNUmakfile-cross + * added scripts setenv-{android|embedded|ios}.sh for GNUmakefile-cross * aggressive use of -march= and -mfpu= in cryptest.sh - improved build systems * Visual Studio 2010 default From 65f2dd6c820fbcc63ce3d406de4f6ce471a76258 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 15:01:39 -0400 Subject: [PATCH 09/14] Updated documentation --- mersenne.h | 14 ++++++++++---- rw.h | 1 + 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/mersenne.h b/mersenne.h index 684050f3..f63b233e 100644 --- a/mersenne.h +++ b/mersenne.h @@ -5,7 +5,7 @@ //! \brief Class file for Mersenne Twister //! \warning MersenneTwister is suitable for Monte-Carlo simulations, where uniformaly distrubuted //! numbers are required quickly. It should not be used for cryptographic purposes. - +//! \since Crypto++ 5.6.3 #ifndef CRYPTOPP_MERSENNE_TWISTER_H #define CRYPTOPP_MERSENNE_TWISTER_H @@ -25,6 +25,7 @@ NAMESPACE_BEGIN(CryptoPP) //! \details Provides the MersenneTwister implementation. The class is a header-only implementation. //! \warning MersenneTwister is suitable for simulations, where uniformaly distrubuted numbers are //! required quickly. It should not be used for cryptographic purposes. +//! \since Crypto++ 5.6.3 template class MersenneTwister : public RandomNumberGenerator { @@ -180,12 +181,17 @@ private: }; //! \brief Original MT19937 generator provided in the ACM paper. -//! \details Also see http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/ARTICLES/mt.pdf; uses 4537 as default initial seed. +//! \details MT19937 uses 4537 as default initial seed. +//! \sa Mersenne twister: a 623-dimensionally +//! equidistributed uniform pseudo-random number generator +//! \since Crypto++ 5.6.3 typedef MersenneTwister<0x9908B0DF /*2567483615*/, 397, 624, 0x10DCD /*69069*/, 4537> MT19937; //! \brief Updated MT19937 generator adapted to provide an array for initialization. -//! \details Also see http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html; uses 5489 as default initial seed. -//! \note Use this generator when interoperating with C++11's mt19937 class. +//! \details MT19937 uses 5489 as default initial seed. Use this generator when interoperating with C++11's +//! mt19937 class. +//! \sa Mersenne Twister with improved initialization +//! \since Crypto++ 5.6.3 typedef MersenneTwister<0x9908B0DF /*2567483615*/, 397, 624, 0x6C078965 /*1812433253*/, 5489> MT19937ar; NAMESPACE_END diff --git a/rw.h b/rw.h index 9bd7c6f1..140dbe92 100644 --- a/rw.h +++ b/rw.h @@ -52,6 +52,7 @@ protected: //! \class InvertibleRWFunction //! \brief Rabin-Williams trapdoor function using the private key +//! \since Tweaked roots using e and f since Crypto++ 5.6.4 class CRYPTOPP_DLL InvertibleRWFunction : public RWFunction, public TrapdoorFunctionInverse, public PrivateKey { typedef InvertibleRWFunction ThisClass; From 5155b91178bfa1463ebc5e28af7163be6a178eb8 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 17:58:02 -0400 Subject: [PATCH 10/14] Updated release notes --- Readme.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Readme.txt b/Readme.txt index db994e72..9bdfac60 100644 --- a/Readme.txt +++ b/Readme.txt @@ -516,6 +516,7 @@ the mailing list. * atomics, threads and fences * alginof, alignas * constexpr + * noexcept - improved GCM mode * ARM NEON and ARMv8 ASIMD * ARMv8 carry-less multiply @@ -524,7 +525,7 @@ the mailing list. * aggressive use of -march= and -mfpu= in cryptest.sh - improved build systems * Visual Studio 2010 default - * added CMake support + * added CMake support (lacks FindCryptopp.cmake) * archived VC++ 5/0/6.0 project files (vc60.zip) * archived VS2005 project files (vs2005.zip) * archived Borland project files (bds10.zip) From a8a6e41beb74c2c8a5756e1320315e4bffb2a986 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 18:22:00 -0400 Subject: [PATCH 11/14] Updated documentation --- keccak.h | 10 ++++------ sha3.h | 18 ++++++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/keccak.h b/keccak.h index 9103963d..6bef493f 100644 --- a/keccak.h +++ b/keccak.h @@ -2,9 +2,8 @@ //! \file keccak.h //! \brief Classes for Keccak message digests -//! \details The Keccak classes use F1600 and XOF byte 0x80, which is effectively -//! the behavior specified by NIST at round three of the selection process. If you -//! desire FIPS 202 behavior, then use SHA3 classes. +//! \details The Crypto++ Keccak implementation uses F1600 with XOF d=0x01. +//! FIPS 202 conformance (XOF d=0x06) is available in SHA3 classes. //! \details Keccak will likely change in the future to accomodate extensibility of the //! round function and the XOF functions. //! \sa Keccak @@ -20,9 +19,8 @@ NAMESPACE_BEGIN(CryptoPP) //! \class Keccak //! \brief Keccak message digest base class -//! \details The Keccak classes use F1600 and XOF byte 0x80, which is effectively -//! the behavior specified by NIST at round three of the selection process. If you -//! desire FIPS 202 behavior, then use SHA3 classes. +//! \details The Crypto++ Keccak implementation uses F1600 with XOF d=0x06. +//! FIPS 202 conformance (XOF d=0x01) is available in SHA3 classes. //! \details Keccak is the base class for Keccak_224, Keccak_256, Keccak_384 and Keccak_512. //! Library users should instantiate a derived class, and only use Keccak //! as a base class reference or pointer. diff --git a/sha3.h b/sha3.h index 2f111845..9d5691eb 100644 --- a/sha3.h +++ b/sha3.h @@ -1,9 +1,9 @@ // sha3.h - written and placed in the public domain by Wei Dai //! \file sha3.h -//! \brief Classes for SHA-3 message digests -//! \details The Crypto++ SHA-3 conforms to FIPS 202 version of SHA-3. -//! Previous behavior is available in SHA3 classes. +//! \brief Classes for SHA3 message digests +//! \details The Crypto++ implementation conforms to the FIPS 202 version of SHA3 using F1600 with XOF d=0x06. +//! Previous behavior (XOF d=0x01) is available in Keccak classes. //! \sa SHA-3, //! SHA-3 STANDARD (FIPS 202). //! \since Crypto++ 5.6.2 @@ -18,11 +18,13 @@ NAMESPACE_BEGIN(CryptoPP) //! \class SHA3 //! \brief SHA3 message digest base class - //! \details SHA3 is the base class for SHA3_224, SHA3_256, SHA3_384 and SHA3_512. - //! Library users should instantiate a derived class, and only use SHA3 - //! as a base class reference or pointer. - //! \sa Keccak, SHA3_224, SHA3_256, SHA3_384 and SHA3_512. - //! \since Crypto++ 5.6.2 +//! \details The Crypto++ implementation conforms to FIPS 202 version of SHA3 usinf F1600 with XOF d=0x06. +//! Previous behavior (XOF d=0x01) is available in Keccak classes. +//! \details SHA3 is the base class for SHA3_224, SHA3_256, SHA3_384 and SHA3_512. +//! Library users should instantiate a derived class, and only use SHA3 +//! as a base class reference or pointer. +//! \sa Keccak, SHA3_224, SHA3_256, SHA3_384 and SHA3_512. +//! \since Crypto++ 5.6.2 class SHA3 : public HashTransformation { public: From 36bdbb21a1660cbea741cce4f26e3da42dc58a5f Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 18:47:05 -0400 Subject: [PATCH 12/14] Updated documentation --- sha3.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sha3.h b/sha3.h index 9d5691eb..6a8704c8 100644 --- a/sha3.h +++ b/sha3.h @@ -18,7 +18,7 @@ NAMESPACE_BEGIN(CryptoPP) //! \class SHA3 //! \brief SHA3 message digest base class -//! \details The Crypto++ implementation conforms to FIPS 202 version of SHA3 usinf F1600 with XOF d=0x06. +//! \details The Crypto++ implementation conforms to FIPS 202 version of SHA3 using F1600 with XOF d=0x06. //! Previous behavior (XOF d=0x01) is available in Keccak classes. //! \details SHA3 is the base class for SHA3_224, SHA3_256, SHA3_384 and SHA3_512. //! Library users should instantiate a derived class, and only use SHA3 From a3ef42e36de39f5d402c0b9dcea6899e035fc35a Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 18:51:00 -0400 Subject: [PATCH 13/14] Updated release notes --- Readme.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Readme.txt b/Readme.txt index 9bdfac60..6adbdc44 100644 --- a/Readme.txt +++ b/Readme.txt @@ -501,8 +501,8 @@ the mailing list. - expanded community input and support * 22 unique contributors for this release - fixed CVE-2016-3995 - - changed SHA3 to FIPS 202 (F1600, XOF d=0x01) - - added Keccak (F1600, XOF d=0x06) + - changed SHA3 to FIPS 202 (F1600, XOF d=0x06) + - added Keccak (F1600, XOF d=0x01) - added ChaCha (ChaCha8/12/20) - added HMQV and FHMQV * Hashed and Fully Hashed MQV From d28d6e0248c9539913141aa97ec0dd60aca654db Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 10 Sep 2016 18:59:43 -0400 Subject: [PATCH 14/14] Updated documentation --- keccak.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keccak.h b/keccak.h index 6bef493f..d3580ec1 100644 --- a/keccak.h +++ b/keccak.h @@ -19,15 +19,15 @@ NAMESPACE_BEGIN(CryptoPP) //! \class Keccak //! \brief Keccak message digest base class -//! \details The Crypto++ Keccak implementation uses F1600 with XOF d=0x06. -//! FIPS 202 conformance (XOF d=0x01) is available in SHA3 classes. +//! \details The Crypto++ Keccak implementation uses F1600 with XOF d=0x01. +//! FIPS 202 conformance (XOF d=0x06) is available in SHA3 classes. //! \details Keccak is the base class for Keccak_224, Keccak_256, Keccak_384 and Keccak_512. //! Library users should instantiate a derived class, and only use Keccak //! as a base class reference or pointer. //! \details Keccak will likely change in the future to accomodate extensibility of the //! round function and the XOF functions. -//! \details Perform the following to specify a different digest size. The class will use F1600, 0x80, -//! and a new vaue for r() (which will be 200-2*24 = 152). +//! \details Perform the following to specify a different digest size. The class will use F1600, +//! XOF d=0x01, and a new vaue for r() (which will be 200-2*24 = 152). //!
  Keccack_192 : public Keccack
 //!   {
 //!     public: