Prepare for Crypto++ 8.0 release

pull/769/head
Jeffrey Walton 2018-12-27 18:30:38 -05:00
parent 5ace5e478a
commit 5e48cfd0c9
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
18 changed files with 99 additions and 141 deletions

View File

@ -41,7 +41,7 @@ PROJECT_NAME = Crypto++
# could be handy for archiving the generated documentation or if some version # could be handy for archiving the generated documentation or if some version
# control system is used. # control system is used.
PROJECT_NUMBER = 7.1 PROJECT_NUMBER = 8.0
# Using the PROJECT_BRIEF tag one can provide an optional one line description # Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a # for a project that appears at the top of each page and should give viewer a

View File

@ -1327,7 +1327,7 @@ libcryptopp.pc:
@echo '' >> libcryptopp.pc @echo '' >> libcryptopp.pc
@echo 'Name: Crypto++' >> libcryptopp.pc @echo 'Name: Crypto++' >> libcryptopp.pc
@echo 'Description: Crypto++ cryptographic library' >> libcryptopp.pc @echo 'Description: Crypto++ cryptographic library' >> libcryptopp.pc
@echo 'Version: 7.1' >> libcryptopp.pc @echo 'Version: 8.0' >> libcryptopp.pc
@echo 'URL: https://cryptopp.com/' >> libcryptopp.pc @echo 'URL: https://cryptopp.com/' >> libcryptopp.pc
@echo '' >> libcryptopp.pc @echo '' >> libcryptopp.pc
@echo 'Cflags: -I$${includedir}' >> libcryptopp.pc @echo 'Cflags: -I$${includedir}' >> libcryptopp.pc

View File

@ -1,5 +1,5 @@
Crypto++: free C++ Class Library of Cryptographic Schemes Crypto++: free C++ Class Library of Cryptographic Schemes
Version 7.0 - APR/08/2018 Version 8.0 - DEC/28/2018
Crypto++ Library is a free C++ class library of cryptographic schemes. Crypto++ Library is a free C++ class library of cryptographic schemes.
Currently the library contains the following algorithms: Currently the library contains the following algorithms:
@ -92,13 +92,13 @@ The following compilers are supported for this release. Please visit
http://www.cryptopp.com the most up to date build instructions and porting notes. http://www.cryptopp.com the most up to date build instructions and porting notes.
* Visual Studio 2003 - 2017 * Visual Studio 2003 - 2017
* GCC 3.3 - 8.0 * GCC 3.3 - 9.0
* Apple Clang 4.3 - 9.3 * Apple Clang 4.3 - 9.3
* LLVM Clang 2.9 - 4.0 * LLVM Clang 2.9 - 7.0
* C++Builder 2010 * C++Builder 2015
* Intel C++ Compiler 9 - 16.0 * Intel C++ Compiler 9 - 16.0
* Sun Studio 12u1 - 12.5 * Sun Studio 12u1 - 12.6
* IBM XL C/C++ 10.0 - 13.1 * IBM XL C/C++ 10.0 - 13.3
*** Important Usage Notes *** *** Important Usage Notes ***
@ -283,6 +283,25 @@ documentation is one of the highest returns on investment.
The items in this section comprise the most recent history. Please see History.txt The items in this section comprise the most recent history. Please see History.txt
for the record back to Crypto++ 1.0. for the record back to Crypto++ 1.0.
8.0.0 - December 28, 2018
- major release, recompile of programs required
- expanded community input and support
* 54 unique contributors as of this release
- add x25519 key exchange and ed25519 signature scheme
- add limited Asymmetric Key Package support from RFC 5958
- add Power9 DARN random number generator support
- add CHAM, HC-128, HC-256, Hight, LEA, Rabbit, Simeck
- fix FixedSizeAllocatorWithCleanup may be unaligned on some platforms
- cutover to GNU Make-based cpu feature tests
- rename files with dashes to underscores
- fix LegacyDecryptor and LegacyDecryptorWithMAC use wrong MAC
- fix incorrect AES/CBC decryption on Windows
- avoid Singleton<T> when possible, avoid std::call_once completely
- fix SPARC alignment problems due to GetAlignmentOf<T>() on word64
- add ARM AES asm implementation from Cryptogams
- remove CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS support
7.0.0 - April 8, 2018 7.0.0 - April 8, 2018
- major release, recompile of programs required - major release, recompile of programs required
- expanded community input and support - expanded community input and support
@ -341,67 +360,6 @@ for the record back to Crypto++ 1.0.
- ported to MSVC 2017, Xcode 8.1, Sun Studio 12.5, GCC 7.3, - ported to MSVC 2017, Xcode 8.1, Sun Studio 12.5, GCC 7.3,
MacPorts GCC 7.0, Clang 4.0, Intel C++ 17.00, IBM XL C/C++ 13.1 MacPorts GCC 7.0, Clang 4.0, Intel C++ 17.00, IBM XL C/C++ 13.1
5.6.5 - October 11, 2016
- maintenance release, recompile of programs recommended
- expanded community input and support
* 25 unique contributors as of this release
- fixed CVE-2016-7420 (Issue 277, document NDEBUG for production/release)
- fixed CVE-2016-7544 (Issue 302, avoid _malloca and _freea)
- shipped library in recommended state
* backwards compatibility achieved with <config.compat>
- Visual Studio project file cleanup
* improved X86 and X64 MSBuild support
* added ARM-based MSBuild awareness
- improved Testing and QA
* expanded platforms and compilers
* expanded Coverity into OS X and Windows platforms
* added Windows test scripts using Strawberry Perl
- ported to MSVC 2015 SP3, Xcode 7.3, Sun Studio 12.5, GCC 7.0,
MacPorts GCC 7.0, Clang 3.8, Intel C++ 17.00
5.6.4 - September 11, 2016
- maintenance release, honored API/ABI/Versioning requirements
- expanded community input and support
* 22 unique contributors for this release
- fixed CVE-2016-3995
- 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
- added BLAKE2 (BLAKE2s and BLAKE2b)
* C++, SSE2, SSE4, ARM NEON and ARMv8 ASIMD
- added CRC32-C
* C/C++, Amd64 CRC, and ARMv8 CRC
- improved Rabin-William signatures
* Tweaked roots <em>e</em> and <em>f</em>
- improved C++11 support
* atomics, threads and fences
* alginof, alignas
* constexpr
* noexcept
- improved GCM mode
* ARM NEON and ARMv8 ASIMD
* ARMv8 carry-less multiply
- improved Windows 8 and 10 support
* Windows Phone, Universal Windows Platform, Windows Store
- improved MIPS, ARMv7 and ARMv8 support
* added scripts setenv-{android|embedded|ios}.sh for GNUmakefile-cross
* aggressive use of -march=<arch> and -mfpu=<fpu> in cryptest.sh
- improved build systems
* Visual Studio 2010 default
* 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)
- improved Testing and QA
* 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
- 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
June 2015 - Changing of the guard. Wei Dai turned the library over to the June 2015 - Changing of the guard. Wei Dai turned the library over to the
community. The first community release was Crypto++ 5.6.3. Wei is community. The first community release was Crypto++ 5.6.3. Wei is
no longer involved with the daily operations of the project. Wei no longer involved with the daily operations of the project. Wei

View File

@ -4,11 +4,11 @@
# building the docs. Before running the script, copy it to the root # building the docs. Before running the script, copy it to the root
# directory. After running this script, you can 'make docs' # directory. After running this script, you can 'make docs'
sed 's|Library 7.1 API|Library 7.0 API|g' cryptlib.h > cryptlib.h.new sed 's|Library 8.1 API|Library 8.0 API|g' cryptlib.h > cryptlib.h.new
mv cryptlib.h.new cryptlib.h mv cryptlib.h.new cryptlib.h
sed 's|= 7.1|= 7.0|g' Doxyfile > Doxyfile.new sed 's|= 8.1|= 8.0|g' Doxyfile > Doxyfile.new
mv Doxyfile.new Doxyfile mv Doxyfile.new Doxyfile
sed 's|CRYPTOPP_VERSION 710|CRYPTOPP_VERSION 700|g' config.h > config.h.new sed 's|CRYPTOPP_VERSION 810|CRYPTOPP_VERSION 800|g' config.h > config.h.new
mv config.h.new config.h mv config.h.new config.h

22
cham.h
View File

@ -5,7 +5,7 @@
/// \file cham.h /// \file cham.h
/// \brief Classes for the CHAM block cipher /// \brief Classes for the CHAM block cipher
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
#ifndef CRYPTOPP_CHAM_H #ifndef CRYPTOPP_CHAM_H
#define CRYPTOPP_CHAM_H #define CRYPTOPP_CHAM_H
@ -28,7 +28,7 @@
NAMESPACE_BEGIN(CryptoPP) NAMESPACE_BEGIN(CryptoPP)
/// \brief CHAM block cipher information /// \brief CHAM block cipher information
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct CHAM64_Info : public FixedBlockSize<8>, public FixedKeyLength<16> struct CHAM64_Info : public FixedBlockSize<8>, public FixedKeyLength<16>
{ {
/// \brief The algorithm name /// \brief The algorithm name
@ -43,7 +43,7 @@ struct CHAM64_Info : public FixedBlockSize<8>, public FixedKeyLength<16>
}; };
/// \brief CHAM block cipher information /// \brief CHAM block cipher information
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct CHAM128_Info : public FixedBlockSize<16>, public VariableKeyLength<16,16,32,16> struct CHAM128_Info : public FixedBlockSize<16>, public VariableKeyLength<16,16,32,16>
{ {
/// \brief The algorithm name /// \brief The algorithm name
@ -63,13 +63,13 @@ struct CHAM128_Info : public FixedBlockSize<16>, public VariableKeyLength<16,16,
/// \sa CHAM128, <a href="http://www.cryptopp.com/wiki/CHAM">CHAM</a>, /// \sa CHAM128, <a href="http://www.cryptopp.com/wiki/CHAM">CHAM</a>,
/// <a href="https://pdfs.semanticscholar.org/2f57/61b5c2614cffd58a09cc83c375a2b32a2ed3.pdf"> /// <a href="https://pdfs.semanticscholar.org/2f57/61b5c2614cffd58a09cc83c375a2b32a2ed3.pdf">
/// CHAM: A Family of Lightweight Block Ciphers for Resource-Constrained Devices</a> /// CHAM: A Family of Lightweight Block Ciphers for Resource-Constrained Devices</a>
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE CHAM64 : public CHAM64_Info, public BlockCipherDocumentation class CRYPTOPP_NO_VTABLE CHAM64 : public CHAM64_Info, public BlockCipherDocumentation
{ {
public: public:
/// \brief CHAM block cipher transformation functions /// \brief CHAM block cipher transformation functions
/// \details Provides implementation common to encryption and decryption /// \details Provides implementation common to encryption and decryption
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<CHAM64_Info> class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<CHAM64_Info>
{ {
protected: protected:
@ -84,7 +84,7 @@ public:
/// \brief Encryption transformation /// \brief Encryption transformation
/// \details Enc provides implementation for encryption transformation. All key and block /// \details Enc provides implementation for encryption transformation. All key and block
/// sizes are supported. /// sizes are supported.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Enc : public Base class CRYPTOPP_NO_VTABLE Enc : public Base
{ {
public: public:
@ -98,7 +98,7 @@ public:
/// \brief Encryption transformation /// \brief Encryption transformation
/// \details Dec provides implementation for decryption transformation. All key and block /// \details Dec provides implementation for decryption transformation. All key and block
/// sizes are supported. /// sizes are supported.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Dec : public Base class CRYPTOPP_NO_VTABLE Dec : public Base
{ {
public: public:
@ -122,13 +122,13 @@ typedef CHAM64::Decryption CHAM64Decryption;
/// \sa CHAM64, <a href="http://www.cryptopp.com/wiki/CHAM">CHAM</a>, /// \sa CHAM64, <a href="http://www.cryptopp.com/wiki/CHAM">CHAM</a>,
/// <a href="https://pdfs.semanticscholar.org/2f57/61b5c2614cffd58a09cc83c375a2b32a2ed3.pdf"> /// <a href="https://pdfs.semanticscholar.org/2f57/61b5c2614cffd58a09cc83c375a2b32a2ed3.pdf">
/// CHAM: A Family of Lightweight Block Ciphers for Resource-Constrained Devices</a> /// CHAM: A Family of Lightweight Block Ciphers for Resource-Constrained Devices</a>
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE CHAM128 : public CHAM128_Info, public BlockCipherDocumentation class CRYPTOPP_NO_VTABLE CHAM128 : public CHAM128_Info, public BlockCipherDocumentation
{ {
public: public:
/// \brief CHAM block cipher transformation functions /// \brief CHAM block cipher transformation functions
/// \details Provides implementation common to encryption and decryption /// \details Provides implementation common to encryption and decryption
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<CHAM128_Info> class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<CHAM128_Info>
{ {
protected: protected:
@ -143,7 +143,7 @@ public:
/// \brief Encryption transformation /// \brief Encryption transformation
/// \details Enc provides implementation for encryption transformation. All key and block /// \details Enc provides implementation for encryption transformation. All key and block
/// sizes are supported. /// sizes are supported.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Enc : public Base class CRYPTOPP_NO_VTABLE Enc : public Base
{ {
public: public:
@ -157,7 +157,7 @@ public:
/// \brief Encryption transformation /// \brief Encryption transformation
/// \details Dec provides implementation for decryption transformation. All key and block /// \details Dec provides implementation for decryption transformation. All key and block
/// sizes are supported. /// sizes are supported.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Dec : public Base class CRYPTOPP_NO_VTABLE Dec : public Base
{ {
public: public:

View File

@ -92,7 +92,7 @@
// the version of the library the headers came from. It is not // the version of the library the headers came from. It is not
// necessarily the version of the library built as a shared object if // necessarily the version of the library built as a shared object if
// versions are inadvertently mixed and matched. // versions are inadvertently mixed and matched.
#define CRYPTOPP_VERSION 710 #define CRYPTOPP_VERSION 800
// Define this if you want to set a prefix for TestData/ and TestVectors/ // Define this if you want to set a prefix for TestData/ and TestVectors/
// Be sure to add the trailing slash since its simple concatenation. // Be sure to add the trailing slash since its simple concatenation.

14
cpu.h
View File

@ -208,7 +208,7 @@ inline bool HasADX()
/// \brief Determines AVX availability /// \brief Determines AVX availability
/// \returns true if AVX is determined to be available, false otherwise /// \returns true if AVX is determined to be available, false otherwise
/// \details HasAVX() is a runtime check performed using CPUID /// \details HasAVX() is a runtime check performed using CPUID
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
/// \note This function is only available on Intel IA-32 platforms /// \note This function is only available on Intel IA-32 platforms
inline bool HasAVX() inline bool HasAVX()
{ {
@ -220,7 +220,7 @@ inline bool HasAVX()
/// \brief Determines AVX2 availability /// \brief Determines AVX2 availability
/// \returns true if AVX2 is determined to be available, false otherwise /// \returns true if AVX2 is determined to be available, false otherwise
/// \details HasAVX2() is a runtime check performed using CPUID /// \details HasAVX2() is a runtime check performed using CPUID
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
/// \note This function is only available on Intel IA-32 platforms /// \note This function is only available on Intel IA-32 platforms
inline bool HasAVX2() inline bool HasAVX2()
{ {
@ -362,7 +362,7 @@ void CRYPTOPP_API DetectArmFeatures();
/// \brief Determine if an ARM processor is ARMv7 or above /// \brief Determine if an ARM processor is ARMv7 or above
/// \returns true if the hardware is ARMv7 or above, false otherwise. /// \returns true if the hardware is ARMv7 or above, false otherwise.
/// \details Some AES code requires ARMv7 or above /// \details Some AES code requires ARMv7 or above
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
/// \note This function is only available on ARM-32, Aarch32 and Aarch64 platforms /// \note This function is only available on ARM-32, Aarch32 and Aarch64 platforms
inline bool HasARMv7() inline bool HasARMv7()
{ {
@ -504,7 +504,7 @@ inline bool HasSHA2()
/// \details Runtime support requires compile time support. When compiling with GCC, you /// \details Runtime support requires compile time support. When compiling with GCC, you
/// may need to compile with <tt>-march=armv8.4-a+crypto</tt>; while Apple requires /// may need to compile with <tt>-march=armv8.4-a+crypto</tt>; while Apple requires
/// <tt>-arch arm64</tt>. Also see ARM's <tt>__ARM_FEATURE_CRYPTO</tt> preprocessor macro. /// <tt>-arch arm64</tt>. Also see ARM's <tt>__ARM_FEATURE_CRYPTO</tt> preprocessor macro.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
/// \note This function is only available on Aarch32 and Aarch64 platforms /// \note This function is only available on Aarch32 and Aarch64 platforms
inline bool HasSHA512() inline bool HasSHA512()
{ {
@ -524,7 +524,7 @@ inline bool HasSHA512()
/// \details Runtime support requires compile time support. When compiling with GCC, you /// \details Runtime support requires compile time support. When compiling with GCC, you
/// may need to compile with <tt>-march=armv8.4-a+crypto</tt>; while Apple requires /// may need to compile with <tt>-march=armv8.4-a+crypto</tt>; while Apple requires
/// <tt>-arch arm64</tt>. Also see ARM's <tt>__ARM_FEATURE_CRYPTO</tt> preprocessor macro. /// <tt>-arch arm64</tt>. Also see ARM's <tt>__ARM_FEATURE_CRYPTO</tt> preprocessor macro.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
/// \note This function is only available on Aarch32 and Aarch64 platforms /// \note This function is only available on Aarch32 and Aarch64 platforms
inline bool HasSHA3() inline bool HasSHA3()
{ {
@ -544,7 +544,7 @@ inline bool HasSHA3()
/// \details Runtime support requires compile time support. When compiling with GCC, you /// \details Runtime support requires compile time support. When compiling with GCC, you
/// may need to compile with <tt>-march=armv8.4-a+crypto</tt>; while Apple requires /// may need to compile with <tt>-march=armv8.4-a+crypto</tt>; while Apple requires
/// <tt>-arch arm64</tt>. Also see ARM's <tt>__ARM_FEATURE_CRYPTO</tt> preprocessor macro. /// <tt>-arch arm64</tt>. Also see ARM's <tt>__ARM_FEATURE_CRYPTO</tt> preprocessor macro.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
/// \note This function is only available on Aarch32 and Aarch64 platforms /// \note This function is only available on Aarch32 and Aarch64 platforms
inline bool HasSM3() inline bool HasSM3()
{ {
@ -564,7 +564,7 @@ inline bool HasSM3()
/// \details Runtime support requires compile time support. When compiling with GCC, you /// \details Runtime support requires compile time support. When compiling with GCC, you
/// may need to compile with <tt>-march=armv8.4-a+crypto</tt>; while Apple requires /// may need to compile with <tt>-march=armv8.4-a+crypto</tt>; while Apple requires
/// <tt>-arch arm64</tt>. Also see ARM's <tt>__ARM_FEATURE_CRYPTO</tt> preprocessor macro. /// <tt>-arch arm64</tt>. Also see ARM's <tt>__ARM_FEATURE_CRYPTO</tt> preprocessor macro.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
/// \note This function is only available on Aarch32 and Aarch64 platforms /// \note This function is only available on Aarch32 and Aarch64 platforms
inline bool HasSM4() inline bool HasSM4()
{ {

View File

@ -3,7 +3,7 @@
/// \file cryptlib.h /// \file cryptlib.h
/// \brief Abstract base classes that provide a uniform interface to this library. /// \brief Abstract base classes that provide a uniform interface to this library.
/*! \mainpage Crypto++ Library 7.1 API Reference /*! \mainpage Crypto++ Library 8.0 API Reference
<dl> <dl>
<dt>Abstract Base Classes<dd> <dt>Abstract Base Classes<dd>
cryptlib.h cryptlib.h
@ -604,7 +604,7 @@ public:
/// dominant one. For example on x86 <tt>AES/GCM</tt> returns "AESNI" rather than /// dominant one. For example on x86 <tt>AES/GCM</tt> returns "AESNI" rather than
/// "CLMUL" or "AES+SSE4.1" or "AES+CLMUL" or "AES+SSE4.1+CLMUL". /// "CLMUL" or "AES+SSE4.1" or "AES+CLMUL" or "AES+SSE4.1+CLMUL".
/// \note Provider is not universally implemented yet. /// \note Provider is not universally implemented yet.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
virtual std::string AlgorithmProvider() const {return "C++";} virtual std::string AlgorithmProvider() const {return "C++";}
}; };

View File

@ -27,8 +27,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 7,1,0,0 FILEVERSION 8,0,0,0
PRODUCTVERSION 7,1,0,0 PRODUCTVERSION 8,0,0,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -46,13 +46,13 @@ BEGIN
VALUE "Comments", "Free crypto library, more information available at www.cryptopp.com" VALUE "Comments", "Free crypto library, more information available at www.cryptopp.com"
VALUE "CompanyName", "Wei Dai" VALUE "CompanyName", "Wei Dai"
VALUE "FileDescription", "Crypto++® Library DLL" VALUE "FileDescription", "Crypto++® Library DLL"
VALUE "FileVersion", "7, 1, 0, 0" VALUE "FileVersion", "8, 0, 0, 0"
VALUE "InternalName", "cryptopp" VALUE "InternalName", "cryptopp"
VALUE "LegalCopyright", "Copyright© 1995-2018 by Wei Dai" VALUE "LegalCopyright", "Copyright© 1995-2018 by Wei Dai"
VALUE "LegalTrademarks", "Crypto++®" VALUE "LegalTrademarks", "Crypto++®"
VALUE "OriginalFilename", "cryptopp.dll" VALUE "OriginalFilename", "cryptopp.dll"
VALUE "ProductName", "Crypto++® Library" VALUE "ProductName", "Crypto++® Library"
VALUE "ProductVersion", "7, 1, 0, 0" VALUE "ProductVersion", "8, 0, 0, 0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View File

@ -9,7 +9,7 @@
/// \sa <A HREF="http://www.ecrypt.eu.org/stream/e2-hc128.html">The /// \sa <A HREF="http://www.ecrypt.eu.org/stream/e2-hc128.html">The
/// eSTREAM Project | HC-128</A> and /// eSTREAM Project | HC-128</A> and
/// <A HREF="https://www.cryptopp.com/wiki/HC-128">Crypto++ Wiki | HC-128</A>. /// <A HREF="https://www.cryptopp.com/wiki/HC-128">Crypto++ Wiki | HC-128</A>.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
#ifndef CRYPTOPP_HC128_H #ifndef CRYPTOPP_HC128_H
#define CRYPTOPP_HC128_H #define CRYPTOPP_HC128_H
@ -20,14 +20,14 @@
NAMESPACE_BEGIN(CryptoPP) NAMESPACE_BEGIN(CryptoPP)
/// \brief HC-128 stream cipher information /// \brief HC-128 stream cipher information
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct HC128Info : public FixedKeyLength<16, SimpleKeyingInterface::UNIQUE_IV, 16> struct HC128Info : public FixedKeyLength<16, SimpleKeyingInterface::UNIQUE_IV, 16>
{ {
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() { return "HC-128"; } CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() { return "HC-128"; }
}; };
/// \brief HC-128 stream cipher implementation /// \brief HC-128 stream cipher implementation
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class HC128Policy : public AdditiveCipherConcretePolicy<word32, 16>, public HC128Info class HC128Policy : public AdditiveCipherConcretePolicy<word32, 16>, public HC128Info
{ {
protected: protected:
@ -55,7 +55,7 @@ private:
/// \sa <A HREF="http://www.ecrypt.eu.org/stream/e2-hc128.html">The /// \sa <A HREF="http://www.ecrypt.eu.org/stream/e2-hc128.html">The
/// eSTREAM Project | HC-128</A> and /// eSTREAM Project | HC-128</A> and
/// <A HREF="https://www.cryptopp.com/wiki/HC-128">Crypto++ Wiki | HC-128</A>. /// <A HREF="https://www.cryptopp.com/wiki/HC-128">Crypto++ Wiki | HC-128</A>.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct HC128 : public HC128Info, public SymmetricCipherDocumentation struct HC128 : public HC128Info, public SymmetricCipherDocumentation
{ {
typedef SymmetricCipherFinal<ConcretePolicyHolder<HC128Policy, AdditiveCipherTemplate<> >, HC128Info> Encryption; typedef SymmetricCipherFinal<ConcretePolicyHolder<HC128Policy, AdditiveCipherTemplate<> >, HC128Info> Encryption;

View File

@ -9,7 +9,7 @@
/// \sa <A HREF="http://www.ecrypt.eu.org/stream/hc256.html">The /// \sa <A HREF="http://www.ecrypt.eu.org/stream/hc256.html">The
/// eSTREAM Project | HC-256</A> and /// eSTREAM Project | HC-256</A> and
/// <A HREF="https://www.cryptopp.com/wiki/HC-128">Crypto++ Wiki | HC-128</A>. /// <A HREF="https://www.cryptopp.com/wiki/HC-128">Crypto++ Wiki | HC-128</A>.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
#ifndef CRYPTOPP_HC256_H #ifndef CRYPTOPP_HC256_H
#define CRYPTOPP_HC256_H #define CRYPTOPP_HC256_H
@ -20,14 +20,14 @@
NAMESPACE_BEGIN(CryptoPP) NAMESPACE_BEGIN(CryptoPP)
/// \brief HC-256 stream cipher information /// \brief HC-256 stream cipher information
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct HC256Info : public FixedKeyLength<32, SimpleKeyingInterface::UNIQUE_IV, 32> struct HC256Info : public FixedKeyLength<32, SimpleKeyingInterface::UNIQUE_IV, 32>
{ {
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() { return "HC-256"; } CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() { return "HC-256"; }
}; };
/// \brief HC-256 stream cipher implementation /// \brief HC-256 stream cipher implementation
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class HC256Policy : public AdditiveCipherConcretePolicy<word32, 4>, public HC256Info class HC256Policy : public AdditiveCipherConcretePolicy<word32, 4>, public HC256Info
{ {
protected: protected:
@ -55,7 +55,7 @@ private:
/// \sa <A HREF="http://www.ecrypt.eu.org/stream/hc256.html">The /// \sa <A HREF="http://www.ecrypt.eu.org/stream/hc256.html">The
/// eSTREAM Project | HC-256</A> and /// eSTREAM Project | HC-256</A> and
/// <A HREF="https://www.cryptopp.com/wiki/HC-128">Crypto++ Wiki | HC-128</A>. /// <A HREF="https://www.cryptopp.com/wiki/HC-128">Crypto++ Wiki | HC-128</A>.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct HC256 : public HC256Info, public SymmetricCipherDocumentation struct HC256 : public HC256Info, public SymmetricCipherDocumentation
{ {
typedef SymmetricCipherFinal<ConcretePolicyHolder<HC256Policy, AdditiveCipherTemplate<> >, HC256Info> Encryption; typedef SymmetricCipherFinal<ConcretePolicyHolder<HC256Policy, AdditiveCipherTemplate<> >, HC256Info> Encryption;

12
hight.h
View File

@ -6,7 +6,7 @@
/// \file hight.h /// \file hight.h
/// \brief Classes for the HIGHT block cipher /// \brief Classes for the HIGHT block cipher
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
#ifndef CRYPTOPP_HIGHT_H #ifndef CRYPTOPP_HIGHT_H
#define CRYPTOPP_HIGHT_H #define CRYPTOPP_HIGHT_H
@ -19,7 +19,7 @@
NAMESPACE_BEGIN(CryptoPP) NAMESPACE_BEGIN(CryptoPP)
/// \brief HIGHT block cipher information /// \brief HIGHT block cipher information
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct HIGHT_Info : public FixedBlockSize<8>, public FixedKeyLength<16> struct HIGHT_Info : public FixedBlockSize<8>, public FixedKeyLength<16>
{ {
static const std::string StaticAlgorithmName() static const std::string StaticAlgorithmName()
@ -35,13 +35,13 @@ struct HIGHT_Info : public FixedBlockSize<8>, public FixedKeyLength<16>
/// \sa <a href="http://www.cryptopp.com/wiki/HIGHT">HIGHT</a>, /// \sa <a href="http://www.cryptopp.com/wiki/HIGHT">HIGHT</a>,
/// <a href="https://seed.kisa.or.kr/">Korea Internet &amp; Security /// <a href="https://seed.kisa.or.kr/">Korea Internet &amp; Security
/// Agency</a> website /// Agency</a> website
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE HIGHT : public HIGHT_Info, public BlockCipherDocumentation class CRYPTOPP_NO_VTABLE HIGHT : public HIGHT_Info, public BlockCipherDocumentation
{ {
public: public:
/// \brief HIGHT block cipher transformation functions /// \brief HIGHT block cipher transformation functions
/// \details Provides implementation common to encryption and decryption /// \details Provides implementation common to encryption and decryption
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<HIGHT_Info> class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<HIGHT_Info>
{ {
protected: protected:
@ -53,7 +53,7 @@ public:
/// \brief Encryption transformation /// \brief Encryption transformation
/// \details Enc provides implementation for encryption transformation. /// \details Enc provides implementation for encryption transformation.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Enc : public Base class CRYPTOPP_NO_VTABLE Enc : public Base
{ {
public: public:
@ -62,7 +62,7 @@ public:
/// \brief Encryption transformation /// \brief Encryption transformation
/// \details Dec provides implementation for decryption transformation. /// \details Dec provides implementation for decryption transformation.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Dec : public Base class CRYPTOPP_NO_VTABLE Dec : public Base
{ {
public: public:

12
lea.h
View File

@ -5,7 +5,7 @@
/// \file lea.h /// \file lea.h
/// \brief Classes for the LEA block cipher /// \brief Classes for the LEA block cipher
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
#ifndef CRYPTOPP_LEA_H #ifndef CRYPTOPP_LEA_H
#define CRYPTOPP_LEA_H #define CRYPTOPP_LEA_H
@ -28,7 +28,7 @@
NAMESPACE_BEGIN(CryptoPP) NAMESPACE_BEGIN(CryptoPP)
/// \brief LEA block cipher information /// \brief LEA block cipher information
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct LEA_Info : public FixedBlockSize<16>, public VariableKeyLength<16,16,32,8> struct LEA_Info : public FixedBlockSize<16>, public VariableKeyLength<16,16,32,8>
{ {
/// \brief The algorithm name /// \brief The algorithm name
@ -48,13 +48,13 @@ struct LEA_Info : public FixedBlockSize<16>, public VariableKeyLength<16,16,32,8
/// \sa <a href="http://www.cryptopp.com/wiki/LEA">LEA</a>, /// \sa <a href="http://www.cryptopp.com/wiki/LEA">LEA</a>,
/// <a href="https://seed.kisa.or.kr/html/egovframework/iwt/ds/ko/ref/LEA%20A%20128-Bit%20Block%20Cipher%20for%20Fast%20Encryption%20on%20Common%20Processors-English.pdf"> /// <a href="https://seed.kisa.or.kr/html/egovframework/iwt/ds/ko/ref/LEA%20A%20128-Bit%20Block%20Cipher%20for%20Fast%20Encryption%20on%20Common%20Processors-English.pdf">
/// LEA: A 128-Bit Block Cipher for Fast Encryption on Common Processors</a> /// LEA: A 128-Bit Block Cipher for Fast Encryption on Common Processors</a>
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE LEA : public LEA_Info, public BlockCipherDocumentation class CRYPTOPP_NO_VTABLE LEA : public LEA_Info, public BlockCipherDocumentation
{ {
public: public:
/// \brief LEA block cipher transformation functions /// \brief LEA block cipher transformation functions
/// \details Provides implementation common to encryption and decryption /// \details Provides implementation common to encryption and decryption
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<LEA_Info> class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<LEA_Info>
{ {
protected: protected:
@ -69,7 +69,7 @@ public:
/// \brief Encryption transformation /// \brief Encryption transformation
/// \details Enc provides implementation for encryption transformation. All key and block /// \details Enc provides implementation for encryption transformation. All key and block
/// sizes are supported. /// sizes are supported.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Enc : public Base class CRYPTOPP_NO_VTABLE Enc : public Base
{ {
public: public:
@ -83,7 +83,7 @@ public:
/// \brief Encryption transformation /// \brief Encryption transformation
/// \details Dec provides implementation for decryption transformation. All key and block /// \details Dec provides implementation for decryption transformation. All key and block
/// sizes are supported. /// sizes are supported.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Dec : public Base class CRYPTOPP_NO_VTABLE Dec : public Base
{ {
public: public:

View File

@ -391,7 +391,7 @@ int crypto_sign_keypair(byte *pk, byte *sk);
/// added for interop with some anonymous routing protocols. /// added for interop with some anonymous routing protocols.
/// \returns 0 on success, non-0 otherwise /// \returns 0 on success, non-0 otherwise
/// \sa <A HREF="https://nacl.cr.yp.to/sign.html">NaCl crypto_sign documentation</A> /// \sa <A HREF="https://nacl.cr.yp.to/sign.html">NaCl crypto_sign documentation</A>
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
int crypto_sign_sk2pk(byte *pk, const byte *sk); int crypto_sign_sk2pk(byte *pk, const byte *sk);
/// \brief Produce a keystream using XSalsa20 /// \brief Produce a keystream using XSalsa20

View File

@ -10,7 +10,7 @@
/// \sa <A HREF="http://www.ecrypt.eu.org/stream/e2-rabbit.html">The /// \sa <A HREF="http://www.ecrypt.eu.org/stream/e2-rabbit.html">The
/// eSTREAM Project | Rabbit</A> and /// eSTREAM Project | Rabbit</A> and
/// <A HREF="https://www.cryptopp.com/wiki/Rabbit">Crypto++ Wiki | Rabbit</A>. /// <A HREF="https://www.cryptopp.com/wiki/Rabbit">Crypto++ Wiki | Rabbit</A>.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
#ifndef CRYPTOPP_RABBIT_H #ifndef CRYPTOPP_RABBIT_H
#define CRYPTOPP_RABBIT_H #define CRYPTOPP_RABBIT_H
@ -25,21 +25,21 @@
NAMESPACE_BEGIN(CryptoPP) NAMESPACE_BEGIN(CryptoPP)
/// \brief Rabbit stream cipher information /// \brief Rabbit stream cipher information
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct RabbitInfo : public FixedKeyLength<16, SimpleKeyingInterface::NOT_RESYNCHRONIZABLE> struct RabbitInfo : public FixedKeyLength<16, SimpleKeyingInterface::NOT_RESYNCHRONIZABLE>
{ {
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() { return "Rabbit"; } CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() { return "Rabbit"; }
}; };
/// \brief Rabbit stream cipher information /// \brief Rabbit stream cipher information
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct RabbitWithIVInfo : public FixedKeyLength<16, SimpleKeyingInterface::UNIQUE_IV, 8> struct RabbitWithIVInfo : public FixedKeyLength<16, SimpleKeyingInterface::UNIQUE_IV, 8>
{ {
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() { return "RabbitWithIV"; } CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() { return "RabbitWithIV"; }
}; };
/// \brief Rabbit stream cipher implementation /// \brief Rabbit stream cipher implementation
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class RabbitPolicy : public AdditiveCipherConcretePolicy<word32, 4>, public RabbitInfo class RabbitPolicy : public AdditiveCipherConcretePolicy<word32, 4>, public RabbitInfo
{ {
protected: protected:
@ -57,7 +57,7 @@ private:
}; };
/// \brief Rabbit stream cipher implementation /// \brief Rabbit stream cipher implementation
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class RabbitWithIVPolicy : public AdditiveCipherConcretePolicy<word32, 4>, public RabbitWithIVInfo class RabbitWithIVPolicy : public AdditiveCipherConcretePolicy<word32, 4>, public RabbitWithIVInfo
{ {
protected: protected:
@ -84,7 +84,7 @@ private:
/// \sa RabbitWithIV, <A HREF="http://www.ecrypt.eu.org/stream/e2-rabbit.html">The /// \sa RabbitWithIV, <A HREF="http://www.ecrypt.eu.org/stream/e2-rabbit.html">The
/// eSTREAM Project | Rabbit</A> and /// eSTREAM Project | Rabbit</A> and
/// <A HREF="https://www.cryptopp.com/wiki/Rabbit">Crypto++ Wiki | Rabbit</A>. /// <A HREF="https://www.cryptopp.com/wiki/Rabbit">Crypto++ Wiki | Rabbit</A>.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct Rabbit : public RabbitInfo, public SymmetricCipherDocumentation struct Rabbit : public RabbitInfo, public SymmetricCipherDocumentation
{ {
typedef SymmetricCipherFinal<ConcretePolicyHolder<RabbitPolicy, AdditiveCipherTemplate<> >, RabbitInfo> Encryption; typedef SymmetricCipherFinal<ConcretePolicyHolder<RabbitPolicy, AdditiveCipherTemplate<> >, RabbitInfo> Encryption;
@ -100,7 +100,7 @@ struct Rabbit : public RabbitInfo, public SymmetricCipherDocumentation
/// \sa Rabbit, <A HREF="http://www.ecrypt.eu.org/stream/e2-rabbit.html">The /// \sa Rabbit, <A HREF="http://www.ecrypt.eu.org/stream/e2-rabbit.html">The
/// eSTREAM Project | Rabbit</A> and /// eSTREAM Project | Rabbit</A> and
/// <A HREF="https://www.cryptopp.com/wiki/Rabbit">Crypto++ Wiki | Rabbit</A>. /// <A HREF="https://www.cryptopp.com/wiki/Rabbit">Crypto++ Wiki | Rabbit</A>.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct RabbitWithIV : public RabbitWithIVInfo, public SymmetricCipherDocumentation struct RabbitWithIV : public RabbitWithIVInfo, public SymmetricCipherDocumentation
{ {
typedef SymmetricCipherFinal<ConcretePolicyHolder<RabbitWithIVPolicy, AdditiveCipherTemplate<> >, RabbitWithIVInfo> Encryption; typedef SymmetricCipherFinal<ConcretePolicyHolder<RabbitWithIVPolicy, AdditiveCipherTemplate<> >, RabbitWithIVInfo> Encryption;

View File

@ -30,7 +30,7 @@ NAMESPACE_BEGIN(CryptoPP)
/// \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks, /// \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks,
/// and not 192-bit or 256-bit blocks /// and not 192-bit or 256-bit blocks
/// \since Rijndael since Crypto++ 3.1, Intel AES-NI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, /// \since Rijndael since Crypto++ 3.1, Intel AES-NI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
/// Power8 AES since Crypto++ 6.0, ARMv7 AES since Crypto++ 7.1 /// Power8 AES since Crypto++ 6.0, ARMv7 AES since Crypto++ 8.0
struct Rijndael_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8> struct Rijndael_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8>
{ {
CRYPTOPP_DLL static const char * CRYPTOPP_API StaticAlgorithmName() {return CRYPTOPP_RIJNDAEL_NAME;} CRYPTOPP_DLL static const char * CRYPTOPP_API StaticAlgorithmName() {return CRYPTOPP_RIJNDAEL_NAME;}
@ -40,7 +40,7 @@ struct Rijndael_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 1
/// \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks, /// \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks,
/// and not 192-bit or 256-bit blocks /// and not 192-bit or 256-bit blocks
/// \since Rijndael since Crypto++ 3.1, Intel AES-NI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, /// \since Rijndael since Crypto++ 3.1, Intel AES-NI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
/// Power8 AES since Crypto++ 6.0, ARMv7 AES since Crypto++ 7.1 /// Power8 AES since Crypto++ 6.0, ARMv7 AES since Crypto++ 8.0
/// \sa <a href="http://www.cryptopp.com/wiki/Rijndael">Rijndael</a> /// \sa <a href="http://www.cryptopp.com/wiki/Rijndael">Rijndael</a>
class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentation class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentation
{ {
@ -72,7 +72,7 @@ class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentat
/// \details Enc provides implementation for encryption transformation. All key sizes are supported. /// \details Enc provides implementation for encryption transformation. All key sizes are supported.
/// The library only provides Rijndael with 128-bit blocks, and not 192-bit or 256-bit blocks /// The library only provides Rijndael with 128-bit blocks, and not 192-bit or 256-bit blocks
/// \since Rijndael since Crypto++ 3.1, Intel AES-NI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, /// \since Rijndael since Crypto++ 3.1, Intel AES-NI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
/// Power8 AES since Crypto++ 6.0, ARMv7 AES since Crypto++ 7.1 /// Power8 AES since Crypto++ 6.0, ARMv7 AES since Crypto++ 8.0
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Enc : public Base class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Enc : public Base
{ {
public: public:
@ -86,7 +86,7 @@ class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentat
/// \details Dec provides implementation for decryption transformation. All key sizes are supported. /// \details Dec provides implementation for decryption transformation. All key sizes are supported.
/// The library only provides Rijndael with 128-bit blocks, and not 192-bit or 256-bit blocks /// The library only provides Rijndael with 128-bit blocks, and not 192-bit or 256-bit blocks
/// \since Rijndael since Crypto++ 3.1, Intel AES-NI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, /// \since Rijndael since Crypto++ 3.1, Intel AES-NI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
/// Power8 AES since Crypto++ 6.0, ARMv7 AES since Crypto++ 7.1 /// Power8 AES since Crypto++ 6.0, ARMv7 AES since Crypto++ 8.0
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Dec : public Base class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Dec : public Base
{ {
public: public:

View File

@ -7,7 +7,7 @@
/// \sa <a href="http://www.cryptopp.com/wiki/SIMECK">SIMECK</a>, /// \sa <a href="http://www.cryptopp.com/wiki/SIMECK">SIMECK</a>,
/// <a href="https://eprint.iacr.org/2015/612.pdf">The Simeck /// <a href="https://eprint.iacr.org/2015/612.pdf">The Simeck
/// Family of Lightweight Block Ciphers</a> /// Family of Lightweight Block Ciphers</a>
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
#ifndef CRYPTOPP_SIMECK_H #ifndef CRYPTOPP_SIMECK_H
#define CRYPTOPP_SIMECK_H #define CRYPTOPP_SIMECK_H
@ -30,7 +30,7 @@
NAMESPACE_BEGIN(CryptoPP) NAMESPACE_BEGIN(CryptoPP)
/// \brief SIMECK block cipher information /// \brief SIMECK block cipher information
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct SIMECK32_Info : public FixedBlockSize<4>, public FixedKeyLength<8>, public FixedRounds<32> struct SIMECK32_Info : public FixedBlockSize<4>, public FixedKeyLength<8>, public FixedRounds<32>
{ {
/// \brief The algorithm name /// \brief The algorithm name
@ -45,7 +45,7 @@ struct SIMECK32_Info : public FixedBlockSize<4>, public FixedKeyLength<8>, publi
}; };
/// \brief SIMECK block cipher information /// \brief SIMECK block cipher information
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
struct SIMECK64_Info : public FixedBlockSize<8>, public FixedKeyLength<16>, public FixedRounds<44> struct SIMECK64_Info : public FixedBlockSize<8>, public FixedKeyLength<16>, public FixedRounds<44>
{ {
/// \brief The algorithm name /// \brief The algorithm name
@ -65,13 +65,13 @@ struct SIMECK64_Info : public FixedBlockSize<8>, public FixedKeyLength<16>, publ
/// \sa SIMECK64, <a href="http://www.cryptopp.com/wiki/SIMECK">SIMECK</a>, /// \sa SIMECK64, <a href="http://www.cryptopp.com/wiki/SIMECK">SIMECK</a>,
/// <a href="https://eprint.iacr.org/2015/612.pdf">The Simeck Family of /// <a href="https://eprint.iacr.org/2015/612.pdf">The Simeck Family of
/// Lightweight Block Ciphers</a> /// Lightweight Block Ciphers</a>
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE SIMECK32 : public SIMECK32_Info, public BlockCipherDocumentation class CRYPTOPP_NO_VTABLE SIMECK32 : public SIMECK32_Info, public BlockCipherDocumentation
{ {
public: public:
/// \brief SIMECK block cipher transformation functions /// \brief SIMECK block cipher transformation functions
/// \details Provides implementation common to encryption and decryption /// \details Provides implementation common to encryption and decryption
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<SIMECK32_Info> class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<SIMECK32_Info>
{ {
protected: protected:
@ -85,7 +85,7 @@ public:
/// \brief Encryption transformation /// \brief Encryption transformation
/// \details Enc provides implementation for encryption transformation. All key and block /// \details Enc provides implementation for encryption transformation. All key and block
/// sizes are supported. /// sizes are supported.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Enc : public Base class CRYPTOPP_NO_VTABLE Enc : public Base
{ {
public: public:
@ -95,7 +95,7 @@ public:
/// \brief Encryption transformation /// \brief Encryption transformation
/// \details Dec provides implementation for decryption transformation. All key and block /// \details Dec provides implementation for decryption transformation. All key and block
/// sizes are supported. /// sizes are supported.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Dec : public Base class CRYPTOPP_NO_VTABLE Dec : public Base
{ {
public: public:
@ -115,13 +115,13 @@ typedef SIMECK32::Decryption SIMECK32Decryption;
/// \sa SIMECK32, <a href="http://www.cryptopp.com/wiki/SIMECK">SIMECK</a>, /// \sa SIMECK32, <a href="http://www.cryptopp.com/wiki/SIMECK">SIMECK</a>,
/// <a href= "https://eprint.iacr.org/2015/612.pdf">The Simeck Family of /// <a href= "https://eprint.iacr.org/2015/612.pdf">The Simeck Family of
/// Lightweight Block Ciphers</a> /// Lightweight Block Ciphers</a>
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE SIMECK64 : public SIMECK64_Info, public BlockCipherDocumentation class CRYPTOPP_NO_VTABLE SIMECK64 : public SIMECK64_Info, public BlockCipherDocumentation
{ {
public: public:
/// \brief SIMECK block cipher transformation functions /// \brief SIMECK block cipher transformation functions
/// \details Provides implementation common to encryption and decryption /// \details Provides implementation common to encryption and decryption
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<SIMECK64_Info> class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<SIMECK64_Info>
{ {
protected: protected:
@ -135,7 +135,7 @@ public:
/// \brief Encryption transformation /// \brief Encryption transformation
/// \details Enc provides implementation for encryption transformation. All key and block /// \details Enc provides implementation for encryption transformation. All key and block
/// sizes are supported. /// sizes are supported.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Enc : public Base class CRYPTOPP_NO_VTABLE Enc : public Base
{ {
public: public:
@ -149,7 +149,7 @@ public:
/// \brief Encryption transformation /// \brief Encryption transformation
/// \details Dec provides implementation for decryption transformation. All key and block /// \details Dec provides implementation for decryption transformation. All key and block
/// sizes are supported. /// sizes are supported.
/// \since Crypto++ 7.1 /// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Dec : public Base class CRYPTOPP_NO_VTABLE Dec : public Base
{ {
public: public:

2
sm4.h
View File

@ -60,7 +60,7 @@ public:
/// \details SM4 encryption is accelerated on machines with AES-NI. Decryption is /// \details SM4 encryption is accelerated on machines with AES-NI. Decryption is
/// not acclerated because it is not profitable. Thanks to Markku-Juhani Olavi /// not acclerated because it is not profitable. Thanks to Markku-Juhani Olavi
/// Saarinen. /// Saarinen.
/// \since Crypto++ 6.0, AESNI encryption since Crypto++ 7.1 /// \since Crypto++ 6.0, AESNI encryption since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Enc : public Base class CRYPTOPP_NO_VTABLE Enc : public Base
{ {
public: public: