Prepare for Crypto++ 8.0 release

This commit is contained in:
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
# 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
# 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 'Name: Crypto++' >> 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 '' >> libcryptopp.pc
@echo 'Cflags: -I$${includedir}' >> libcryptopp.pc

View File

@ -1,5 +1,5 @@
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.
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.
* Visual Studio 2003 - 2017
* GCC 3.3 - 8.0
* GCC 3.3 - 9.0
* Apple Clang 4.3 - 9.3
* LLVM Clang 2.9 - 4.0
* C++Builder 2010
* LLVM Clang 2.9 - 7.0
* C++Builder 2015
* Intel C++ Compiler 9 - 16.0
* Sun Studio 12u1 - 12.5
* IBM XL C/C++ 10.0 - 13.1
* Sun Studio 12u1 - 12.6
* IBM XL C/C++ 10.0 - 13.3
*** 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
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
- major release, recompile of programs required
- 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,
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
community. The first community release was Crypto++ 5.6.3. Wei is
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
# 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
sed 's|= 7.1|= 7.0|g' Doxyfile > Doxyfile.new
sed 's|= 8.1|= 8.0|g' Doxyfile > Doxyfile.new
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

22
cham.h
View File

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

View File

@ -92,7 +92,7 @@
// the version of the library the headers came from. It is not
// necessarily the version of the library built as a shared object if
// 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/
// 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
/// \returns true if AVX is determined to be available, false otherwise
/// \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
inline bool HasAVX()
{
@ -220,7 +220,7 @@ inline bool HasAVX()
/// \brief Determines AVX2 availability
/// \returns true if AVX2 is determined to be available, false otherwise
/// \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
inline bool HasAVX2()
{
@ -362,7 +362,7 @@ void CRYPTOPP_API DetectArmFeatures();
/// \brief Determine if an ARM processor is ARMv7 or above
/// \returns true if the hardware is ARMv7 or above, false otherwise.
/// \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
inline bool HasARMv7()
{
@ -504,7 +504,7 @@ inline bool HasSHA2()
/// \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
/// <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
inline bool HasSHA512()
{
@ -524,7 +524,7 @@ inline bool HasSHA512()
/// \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
/// <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
inline bool HasSHA3()
{
@ -544,7 +544,7 @@ inline bool HasSHA3()
/// \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
/// <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
inline bool HasSM3()
{
@ -564,7 +564,7 @@ inline bool HasSM3()
/// \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
/// <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
inline bool HasSM4()
{

View File

@ -3,7 +3,7 @@
/// \file cryptlib.h
/// \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>
<dt>Abstract Base Classes<dd>
cryptlib.h
@ -604,7 +604,7 @@ public:
/// 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".
/// \note Provider is not universally implemented yet.
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
virtual std::string AlgorithmProvider() const {return "C++";}
};

View File

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

View File

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

12
hight.h
View File

@ -6,7 +6,7 @@
/// \file hight.h
/// \brief Classes for the HIGHT block cipher
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
#ifndef CRYPTOPP_HIGHT_H
#define CRYPTOPP_HIGHT_H
@ -19,7 +19,7 @@
NAMESPACE_BEGIN(CryptoPP)
/// \brief HIGHT block cipher information
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
struct HIGHT_Info : public FixedBlockSize<8>, public FixedKeyLength<16>
{
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>,
/// <a href="https://seed.kisa.or.kr/">Korea Internet &amp; Security
/// Agency</a> website
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE HIGHT : public HIGHT_Info, public BlockCipherDocumentation
{
public:
/// \brief HIGHT block cipher transformation functions
/// \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>
{
protected:
@ -53,7 +53,7 @@ public:
/// \brief Encryption transformation
/// \details Enc provides implementation for encryption transformation.
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Enc : public Base
{
public:
@ -62,7 +62,7 @@ public:
/// \brief Encryption transformation
/// \details Dec provides implementation for decryption transformation.
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Dec : public Base
{
public:

12
lea.h
View File

@ -5,7 +5,7 @@
/// \file lea.h
/// \brief Classes for the LEA block cipher
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
#ifndef CRYPTOPP_LEA_H
#define CRYPTOPP_LEA_H
@ -28,7 +28,7 @@
NAMESPACE_BEGIN(CryptoPP)
/// \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>
{
/// \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>,
/// <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>
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE LEA : public LEA_Info, public BlockCipherDocumentation
{
public:
/// \brief LEA block cipher transformation functions
/// \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>
{
protected:
@ -69,7 +69,7 @@ public:
/// \brief Encryption transformation
/// \details Enc provides implementation for encryption transformation. All key and block
/// sizes are supported.
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Enc : public Base
{
public:
@ -83,7 +83,7 @@ public:
/// \brief Encryption transformation
/// \details Dec provides implementation for decryption transformation. All key and block
/// sizes are supported.
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
class CRYPTOPP_NO_VTABLE Dec : public Base
{
public:

View File

@ -391,7 +391,7 @@ int crypto_sign_keypair(byte *pk, byte *sk);
/// added for interop with some anonymous routing protocols.
/// \returns 0 on success, non-0 otherwise
/// \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);
/// \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
/// eSTREAM Project | Rabbit</A> and
/// <A HREF="https://www.cryptopp.com/wiki/Rabbit">Crypto++ Wiki | Rabbit</A>.
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
#ifndef CRYPTOPP_RABBIT_H
#define CRYPTOPP_RABBIT_H
@ -25,21 +25,21 @@
NAMESPACE_BEGIN(CryptoPP)
/// \brief Rabbit stream cipher information
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
struct RabbitInfo : public FixedKeyLength<16, SimpleKeyingInterface::NOT_RESYNCHRONIZABLE>
{
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() { return "Rabbit"; }
};
/// \brief Rabbit stream cipher information
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
struct RabbitWithIVInfo : public FixedKeyLength<16, SimpleKeyingInterface::UNIQUE_IV, 8>
{
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() { return "RabbitWithIV"; }
};
/// \brief Rabbit stream cipher implementation
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
class RabbitPolicy : public AdditiveCipherConcretePolicy<word32, 4>, public RabbitInfo
{
protected:
@ -57,7 +57,7 @@ private:
};
/// \brief Rabbit stream cipher implementation
/// \since Crypto++ 7.1
/// \since Crypto++ 8.0
class RabbitWithIVPolicy : public AdditiveCipherConcretePolicy<word32, 4>, public RabbitWithIVInfo
{
protected:
@ -84,7 +84,7 @@ private:
/// \sa RabbitWithIV, <A HREF="http://www.ecrypt.eu.org/stream/e2-rabbit.html">The
/// eSTREAM Project | Rabbit</A> and
/// <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
{
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
/// eSTREAM Project | Rabbit</A> and
/// <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
{
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,
/// 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,
/// 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>
{
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,
/// 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,
/// 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>
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.
/// 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,
/// 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
{
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.
/// 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,
/// 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
{
public:

View File

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

2
sm4.h
View File

@ -60,7 +60,7 @@ public:
/// \details SM4 encryption is accelerated on machines with AES-NI. Decryption is
/// not acclerated because it is not profitable. Thanks to Markku-Juhani Olavi
/// 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
{
public: