Skip to content

Commit 5e48cfd

Browse files
committed
Prepare for Crypto++ 8.0 release
1 parent 5ace5e4 commit 5e48cfd

18 files changed

+99
-141
lines changed

Doxyfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ PROJECT_NAME = Crypto++
4141
# could be handy for archiving the generated documentation or if some version
4242
# control system is used.
4343

44-
PROJECT_NUMBER = 7.1
44+
PROJECT_NUMBER = 8.0
4545

4646
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4747
# for a project that appears at the top of each page and should give viewer a

GNUmakefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1327,7 +1327,7 @@ libcryptopp.pc:
13271327
@echo '' >> libcryptopp.pc
13281328
@echo 'Name: Crypto++' >> libcryptopp.pc
13291329
@echo 'Description: Crypto++ cryptographic library' >> libcryptopp.pc
1330-
@echo 'Version: 7.1' >> libcryptopp.pc
1330+
@echo 'Version: 8.0' >> libcryptopp.pc
13311331
@echo 'URL: https://cryptopp.com/' >> libcryptopp.pc
13321332
@echo '' >> libcryptopp.pc
13331333
@echo 'Cflags: -I$${includedir}' >> libcryptopp.pc

Readme.txt

+25-67
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Crypto++: free C++ Class Library of Cryptographic Schemes
2-
Version 7.0 - APR/08/2018
2+
Version 8.0 - DEC/28/2018
33

44
Crypto++ Library is a free C++ class library of cryptographic schemes.
55
Currently the library contains the following algorithms:
@@ -92,13 +92,13 @@ The following compilers are supported for this release. Please visit
9292
http://www.cryptopp.com the most up to date build instructions and porting notes.
9393

9494
* Visual Studio 2003 - 2017
95-
* GCC 3.3 - 8.0
95+
* GCC 3.3 - 9.0
9696
* Apple Clang 4.3 - 9.3
97-
* LLVM Clang 2.9 - 4.0
98-
* C++Builder 2010
97+
* LLVM Clang 2.9 - 7.0
98+
* C++Builder 2015
9999
* Intel C++ Compiler 9 - 16.0
100-
* Sun Studio 12u1 - 12.5
101-
* IBM XL C/C++ 10.0 - 13.1
100+
* Sun Studio 12u1 - 12.6
101+
* IBM XL C/C++ 10.0 - 13.3
102102

103103
*** Important Usage Notes ***
104104

@@ -283,6 +283,25 @@ documentation is one of the highest returns on investment.
283283
The items in this section comprise the most recent history. Please see History.txt
284284
for the record back to Crypto++ 1.0.
285285

286+
8.0.0 - December 28, 2018
287+
288+
- major release, recompile of programs required
289+
- expanded community input and support
290+
* 54 unique contributors as of this release
291+
- add x25519 key exchange and ed25519 signature scheme
292+
- add limited Asymmetric Key Package support from RFC 5958
293+
- add Power9 DARN random number generator support
294+
- add CHAM, HC-128, HC-256, Hight, LEA, Rabbit, Simeck
295+
- fix FixedSizeAllocatorWithCleanup may be unaligned on some platforms
296+
- cutover to GNU Make-based cpu feature tests
297+
- rename files with dashes to underscores
298+
- fix LegacyDecryptor and LegacyDecryptorWithMAC use wrong MAC
299+
- fix incorrect AES/CBC decryption on Windows
300+
- avoid Singleton<T> when possible, avoid std::call_once completely
301+
- fix SPARC alignment problems due to GetAlignmentOf<T>() on word64
302+
- add ARM AES asm implementation from Cryptogams
303+
- remove CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS support
304+
286305
7.0.0 - April 8, 2018
287306
- major release, recompile of programs required
288307
- expanded community input and support
@@ -341,67 +360,6 @@ for the record back to Crypto++ 1.0.
341360
- ported to MSVC 2017, Xcode 8.1, Sun Studio 12.5, GCC 7.3,
342361
MacPorts GCC 7.0, Clang 4.0, Intel C++ 17.00, IBM XL C/C++ 13.1
343362

344-
5.6.5 - October 11, 2016
345-
- maintenance release, recompile of programs recommended
346-
- expanded community input and support
347-
* 25 unique contributors as of this release
348-
- fixed CVE-2016-7420 (Issue 277, document NDEBUG for production/release)
349-
- fixed CVE-2016-7544 (Issue 302, avoid _malloca and _freea)
350-
- shipped library in recommended state
351-
* backwards compatibility achieved with <config.compat>
352-
- Visual Studio project file cleanup
353-
* improved X86 and X64 MSBuild support
354-
* added ARM-based MSBuild awareness
355-
- improved Testing and QA
356-
* expanded platforms and compilers
357-
* expanded Coverity into OS X and Windows platforms
358-
* added Windows test scripts using Strawberry Perl
359-
- ported to MSVC 2015 SP3, Xcode 7.3, Sun Studio 12.5, GCC 7.0,
360-
MacPorts GCC 7.0, Clang 3.8, Intel C++ 17.00
361-
362-
5.6.4 - September 11, 2016
363-
- maintenance release, honored API/ABI/Versioning requirements
364-
- expanded community input and support
365-
* 22 unique contributors for this release
366-
- fixed CVE-2016-3995
367-
- changed SHA3 to FIPS 202 (F1600, XOF d=0x06)
368-
- added Keccak (F1600, XOF d=0x01)
369-
- added ChaCha (ChaCha8/12/20)
370-
- added HMQV and FHMQV
371-
* Hashed and Fully Hashed MQV
372-
- added BLAKE2 (BLAKE2s and BLAKE2b)
373-
* C++, SSE2, SSE4, ARM NEON and ARMv8 ASIMD
374-
- added CRC32-C
375-
* C/C++, Amd64 CRC, and ARMv8 CRC
376-
- improved Rabin-William signatures
377-
* Tweaked roots <em>e</em> and <em>f</em>
378-
- improved C++11 support
379-
* atomics, threads and fences
380-
* alginof, alignas
381-
* constexpr
382-
* noexcept
383-
- improved GCM mode
384-
* ARM NEON and ARMv8 ASIMD
385-
* ARMv8 carry-less multiply
386-
- improved Windows 8 and 10 support
387-
* Windows Phone, Universal Windows Platform, Windows Store
388-
- improved MIPS, ARMv7 and ARMv8 support
389-
* added scripts setenv-{android|embedded|ios}.sh for GNUmakefile-cross
390-
* aggressive use of -march=<arch> and -mfpu=<fpu> in cryptest.sh
391-
- improved build systems
392-
* Visual Studio 2010 default
393-
* added CMake support (lacks FindCryptopp.cmake)
394-
* archived VC++ 5/0/6.0 project files (vc60.zip)
395-
* archived VS2005 project files (vs2005.zip)
396-
* archived Borland project files (bds10.zip)
397-
- improved Testing and QA
398-
* expanded platforms and compilers
399-
* added code generation tests based on CPU features
400-
* added C++03, C++11, C++14, C++17 testing
401-
* added -O3, -O5, -Ofast and -Os testing
402-
- ported to MSVC 2015 SP3, Xcode 9.0, Sun Studio 12.5, GCC 7.0,
403-
MacPorts GCC 7.0, Clang 3.8, Intel C++ 17.00
404-
405363
June 2015 - Changing of the guard. Wei Dai turned the library over to the
406364
community. The first community release was Crypto++ 5.6.3. Wei is
407365
no longer involved with the daily operations of the project. Wei

TestScripts/change-version.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
# building the docs. Before running the script, copy it to the root
55
# directory. After running this script, you can 'make docs'
66

7-
sed 's|Library 7.1 API|Library 7.0 API|g' cryptlib.h > cryptlib.h.new
7+
sed 's|Library 8.1 API|Library 8.0 API|g' cryptlib.h > cryptlib.h.new
88
mv cryptlib.h.new cryptlib.h
99

10-
sed 's|= 7.1|= 7.0|g' Doxyfile > Doxyfile.new
10+
sed 's|= 8.1|= 8.0|g' Doxyfile > Doxyfile.new
1111
mv Doxyfile.new Doxyfile
1212

13-
sed 's|CRYPTOPP_VERSION 710|CRYPTOPP_VERSION 700|g' config.h > config.h.new
13+
sed 's|CRYPTOPP_VERSION 810|CRYPTOPP_VERSION 800|g' config.h > config.h.new
1414
mv config.h.new config.h

cham.h

+11-11
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
/// \file cham.h
77
/// \brief Classes for the CHAM block cipher
8-
/// \since Crypto++ 7.1
8+
/// \since Crypto++ 8.0
99

1010
#ifndef CRYPTOPP_CHAM_H
1111
#define CRYPTOPP_CHAM_H
@@ -28,7 +28,7 @@
2828
NAMESPACE_BEGIN(CryptoPP)
2929

3030
/// \brief CHAM block cipher information
31-
/// \since Crypto++ 7.1
31+
/// \since Crypto++ 8.0
3232
struct CHAM64_Info : public FixedBlockSize<8>, public FixedKeyLength<16>
3333
{
3434
/// \brief The algorithm name
@@ -43,7 +43,7 @@ struct CHAM64_Info : public FixedBlockSize<8>, public FixedKeyLength<16>
4343
};
4444

4545
/// \brief CHAM block cipher information
46-
/// \since Crypto++ 7.1
46+
/// \since Crypto++ 8.0
4747
struct CHAM128_Info : public FixedBlockSize<16>, public VariableKeyLength<16,16,32,16>
4848
{
4949
/// \brief The algorithm name
@@ -63,13 +63,13 @@ struct CHAM128_Info : public FixedBlockSize<16>, public VariableKeyLength<16,16,
6363
/// \sa CHAM128, <a href="http://www.cryptopp.com/wiki/CHAM">CHAM</a>,
6464
/// <a href="https://pdfs.semanticscholar.org/2f57/61b5c2614cffd58a09cc83c375a2b32a2ed3.pdf">
6565
/// CHAM: A Family of Lightweight Block Ciphers for Resource-Constrained Devices</a>
66-
/// \since Crypto++ 7.1
66+
/// \since Crypto++ 8.0
6767
class CRYPTOPP_NO_VTABLE CHAM64 : public CHAM64_Info, public BlockCipherDocumentation
6868
{
6969
public:
7070
/// \brief CHAM block cipher transformation functions
7171
/// \details Provides implementation common to encryption and decryption
72-
/// \since Crypto++ 7.1
72+
/// \since Crypto++ 8.0
7373
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<CHAM64_Info>
7474
{
7575
protected:
@@ -84,7 +84,7 @@ class CRYPTOPP_NO_VTABLE CHAM64 : public CHAM64_Info, public BlockCipherDocument
8484
/// \brief Encryption transformation
8585
/// \details Enc provides implementation for encryption transformation. All key and block
8686
/// sizes are supported.
87-
/// \since Crypto++ 7.1
87+
/// \since Crypto++ 8.0
8888
class CRYPTOPP_NO_VTABLE Enc : public Base
8989
{
9090
public:
@@ -98,7 +98,7 @@ class CRYPTOPP_NO_VTABLE CHAM64 : public CHAM64_Info, public BlockCipherDocument
9898
/// \brief Encryption transformation
9999
/// \details Dec provides implementation for decryption transformation. All key and block
100100
/// sizes are supported.
101-
/// \since Crypto++ 7.1
101+
/// \since Crypto++ 8.0
102102
class CRYPTOPP_NO_VTABLE Dec : public Base
103103
{
104104
public:
@@ -122,13 +122,13 @@ typedef CHAM64::Decryption CHAM64Decryption;
122122
/// \sa CHAM64, <a href="http://www.cryptopp.com/wiki/CHAM">CHAM</a>,
123123
/// <a href="https://pdfs.semanticscholar.org/2f57/61b5c2614cffd58a09cc83c375a2b32a2ed3.pdf">
124124
/// CHAM: A Family of Lightweight Block Ciphers for Resource-Constrained Devices</a>
125-
/// \since Crypto++ 7.1
125+
/// \since Crypto++ 8.0
126126
class CRYPTOPP_NO_VTABLE CHAM128 : public CHAM128_Info, public BlockCipherDocumentation
127127
{
128128
public:
129129
/// \brief CHAM block cipher transformation functions
130130
/// \details Provides implementation common to encryption and decryption
131-
/// \since Crypto++ 7.1
131+
/// \since Crypto++ 8.0
132132
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<CHAM128_Info>
133133
{
134134
protected:
@@ -143,7 +143,7 @@ class CRYPTOPP_NO_VTABLE CHAM128 : public CHAM128_Info, public BlockCipherDocume
143143
/// \brief Encryption transformation
144144
/// \details Enc provides implementation for encryption transformation. All key and block
145145
/// sizes are supported.
146-
/// \since Crypto++ 7.1
146+
/// \since Crypto++ 8.0
147147
class CRYPTOPP_NO_VTABLE Enc : public Base
148148
{
149149
public:
@@ -157,7 +157,7 @@ class CRYPTOPP_NO_VTABLE CHAM128 : public CHAM128_Info, public BlockCipherDocume
157157
/// \brief Encryption transformation
158158
/// \details Dec provides implementation for decryption transformation. All key and block
159159
/// sizes are supported.
160-
/// \since Crypto++ 7.1
160+
/// \since Crypto++ 8.0
161161
class CRYPTOPP_NO_VTABLE Dec : public Base
162162
{
163163
public:

config.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
// the version of the library the headers came from. It is not
9393
// necessarily the version of the library built as a shared object if
9494
// versions are inadvertently mixed and matched.
95-
#define CRYPTOPP_VERSION 710
95+
#define CRYPTOPP_VERSION 800
9696

9797
// Define this if you want to set a prefix for TestData/ and TestVectors/
9898
// Be sure to add the trailing slash since its simple concatenation.

cpu.h

+7-7
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ inline bool HasADX()
208208
/// \brief Determines AVX availability
209209
/// \returns true if AVX is determined to be available, false otherwise
210210
/// \details HasAVX() is a runtime check performed using CPUID
211-
/// \since Crypto++ 7.1
211+
/// \since Crypto++ 8.0
212212
/// \note This function is only available on Intel IA-32 platforms
213213
inline bool HasAVX()
214214
{
@@ -220,7 +220,7 @@ inline bool HasAVX()
220220
/// \brief Determines AVX2 availability
221221
/// \returns true if AVX2 is determined to be available, false otherwise
222222
/// \details HasAVX2() is a runtime check performed using CPUID
223-
/// \since Crypto++ 7.1
223+
/// \since Crypto++ 8.0
224224
/// \note This function is only available on Intel IA-32 platforms
225225
inline bool HasAVX2()
226226
{
@@ -362,7 +362,7 @@ void CRYPTOPP_API DetectArmFeatures();
362362
/// \brief Determine if an ARM processor is ARMv7 or above
363363
/// \returns true if the hardware is ARMv7 or above, false otherwise.
364364
/// \details Some AES code requires ARMv7 or above
365-
/// \since Crypto++ 7.1
365+
/// \since Crypto++ 8.0
366366
/// \note This function is only available on ARM-32, Aarch32 and Aarch64 platforms
367367
inline bool HasARMv7()
368368
{
@@ -504,7 +504,7 @@ inline bool HasSHA2()
504504
/// \details Runtime support requires compile time support. When compiling with GCC, you
505505
/// may need to compile with <tt>-march=armv8.4-a+crypto</tt>; while Apple requires
506506
/// <tt>-arch arm64</tt>. Also see ARM's <tt>__ARM_FEATURE_CRYPTO</tt> preprocessor macro.
507-
/// \since Crypto++ 7.1
507+
/// \since Crypto++ 8.0
508508
/// \note This function is only available on Aarch32 and Aarch64 platforms
509509
inline bool HasSHA512()
510510
{
@@ -524,7 +524,7 @@ inline bool HasSHA512()
524524
/// \details Runtime support requires compile time support. When compiling with GCC, you
525525
/// may need to compile with <tt>-march=armv8.4-a+crypto</tt>; while Apple requires
526526
/// <tt>-arch arm64</tt>. Also see ARM's <tt>__ARM_FEATURE_CRYPTO</tt> preprocessor macro.
527-
/// \since Crypto++ 7.1
527+
/// \since Crypto++ 8.0
528528
/// \note This function is only available on Aarch32 and Aarch64 platforms
529529
inline bool HasSHA3()
530530
{
@@ -544,7 +544,7 @@ inline bool HasSHA3()
544544
/// \details Runtime support requires compile time support. When compiling with GCC, you
545545
/// may need to compile with <tt>-march=armv8.4-a+crypto</tt>; while Apple requires
546546
/// <tt>-arch arm64</tt>. Also see ARM's <tt>__ARM_FEATURE_CRYPTO</tt> preprocessor macro.
547-
/// \since Crypto++ 7.1
547+
/// \since Crypto++ 8.0
548548
/// \note This function is only available on Aarch32 and Aarch64 platforms
549549
inline bool HasSM3()
550550
{
@@ -564,7 +564,7 @@ inline bool HasSM3()
564564
/// \details Runtime support requires compile time support. When compiling with GCC, you
565565
/// may need to compile with <tt>-march=armv8.4-a+crypto</tt>; while Apple requires
566566
/// <tt>-arch arm64</tt>. Also see ARM's <tt>__ARM_FEATURE_CRYPTO</tt> preprocessor macro.
567-
/// \since Crypto++ 7.1
567+
/// \since Crypto++ 8.0
568568
/// \note This function is only available on Aarch32 and Aarch64 platforms
569569
inline bool HasSM4()
570570
{

cryptlib.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
/// \file cryptlib.h
44
/// \brief Abstract base classes that provide a uniform interface to this library.
55

6-
/*! \mainpage Crypto++ Library 7.1 API Reference
6+
/*! \mainpage Crypto++ Library 8.0 API Reference
77
<dl>
88
<dt>Abstract Base Classes<dd>
99
cryptlib.h
@@ -604,7 +604,7 @@ class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Algorithm : public Clonable
604604
/// dominant one. For example on x86 <tt>AES/GCM</tt> returns "AESNI" rather than
605605
/// "CLMUL" or "AES+SSE4.1" or "AES+CLMUL" or "AES+SSE4.1+CLMUL".
606606
/// \note Provider is not universally implemented yet.
607-
/// \since Crypto++ 7.1
607+
/// \since Crypto++ 8.0
608608
virtual std::string AlgorithmProvider() const {return "C++";}
609609
};
610610

cryptopp.rc

+4-4
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
2727
//
2828

2929
VS_VERSION_INFO VERSIONINFO
30-
FILEVERSION 7,1,0,0
31-
PRODUCTVERSION 7,1,0,0
30+
FILEVERSION 8,0,0,0
31+
PRODUCTVERSION 8,0,0,0
3232
FILEFLAGSMASK 0x3fL
3333
#ifdef _DEBUG
3434
FILEFLAGS 0x1L
@@ -46,13 +46,13 @@ BEGIN
4646
VALUE "Comments", "Free crypto library, more information available at www.cryptopp.com"
4747
VALUE "CompanyName", "Wei Dai"
4848
VALUE "FileDescription", "Crypto++� Library DLL"
49-
VALUE "FileVersion", "7, 1, 0, 0"
49+
VALUE "FileVersion", "8, 0, 0, 0"
5050
VALUE "InternalName", "cryptopp"
5151
VALUE "LegalCopyright", "Copyright� 1995-2018 by Wei Dai"
5252
VALUE "LegalTrademarks", "Crypto++�"
5353
VALUE "OriginalFilename", "cryptopp.dll"
5454
VALUE "ProductName", "Crypto++� Library"
55-
VALUE "ProductVersion", "7, 1, 0, 0"
55+
VALUE "ProductVersion", "8, 0, 0, 0"
5656
END
5757
END
5858
BLOCK "VarFileInfo"

hc128.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
/// \sa <A HREF="http://www.ecrypt.eu.org/stream/e2-hc128.html">The
1010
/// eSTREAM Project | HC-128</A> and
1111
/// <A HREF="https://www.cryptopp.com/wiki/HC-128">Crypto++ Wiki | HC-128</A>.
12-
/// \since Crypto++ 7.1
12+
/// \since Crypto++ 8.0
1313

1414
#ifndef CRYPTOPP_HC128_H
1515
#define CRYPTOPP_HC128_H
@@ -20,14 +20,14 @@
2020
NAMESPACE_BEGIN(CryptoPP)
2121

2222
/// \brief HC-128 stream cipher information
23-
/// \since Crypto++ 7.1
23+
/// \since Crypto++ 8.0
2424
struct HC128Info : public FixedKeyLength<16, SimpleKeyingInterface::UNIQUE_IV, 16>
2525
{
2626
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() { return "HC-128"; }
2727
};
2828

2929
/// \brief HC-128 stream cipher implementation
30-
/// \since Crypto++ 7.1
30+
/// \since Crypto++ 8.0
3131
class HC128Policy : public AdditiveCipherConcretePolicy<word32, 16>, public HC128Info
3232
{
3333
protected:
@@ -55,7 +55,7 @@ class HC128Policy : public AdditiveCipherConcretePolicy<word32, 16>, public HC12
5555
/// \sa <A HREF="http://www.ecrypt.eu.org/stream/e2-hc128.html">The
5656
/// eSTREAM Project | HC-128</A> and
5757
/// <A HREF="https://www.cryptopp.com/wiki/HC-128">Crypto++ Wiki | HC-128</A>.
58-
/// \since Crypto++ 7.1
58+
/// \since Crypto++ 8.0
5959
struct HC128 : public HC128Info, public SymmetricCipherDocumentation
6060
{
6161
typedef SymmetricCipherFinal<ConcretePolicyHolder<HC128Policy, AdditiveCipherTemplate<> >, HC128Info> Encryption;

0 commit comments

Comments
 (0)