mirror of
https://github.com/shadps4-emu/ext-cryptopp.git
synced 2024-11-23 01:49:41 +00:00
Prepare for Crypto++ 8.0 release
This commit is contained in:
parent
5ace5e478a
commit
5e48cfd0c9
2
Doxyfile
2
Doxyfile
@ -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
|
||||
|
@ -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
|
||||
|
92
Readme.txt
92
Readme.txt
@ -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
|
||||
|
@ -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
22
cham.h
@ -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:
|
||||
|
2
config.h
2
config.h
@ -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
14
cpu.h
@ -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()
|
||||
{
|
||||
|
@ -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++";}
|
||||
};
|
||||
|
||||
|
@ -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"
|
||||
|
8
hc128.h
8
hc128.h
@ -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;
|
||||
|
8
hc256.h
8
hc256.h
@ -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
12
hight.h
@ -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 & 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
12
lea.h
@ -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:
|
||||
|
@ -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
|
||||
|
14
rabbit.h
14
rabbit.h
@ -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;
|
||||
|
@ -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:
|
||||
|
22
simeck.h
22
simeck.h
@ -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
2
sm4.h
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user