// cryptlib.h - written and placed in the public domain by Wei Dai
//! \file cryptlib.h
//! \brief Abstract base classes that provide a uniform interface to this library.
/*! \mainpage Crypto++ Library 5.6.5 API Reference
<dl>
<dt>Abstract Base Classes<dd>
cryptlib.h
<dt>Authenticated Encryption Modes<dd>
CCM, EAX, \ref GCM "GCM (2K tables)", \ref GCM "GCM (64K tables)"
<dt>Block Ciphers<dd>
\ref Rijndael "AES", Weak::ARC4, Blowfish, BTEA, Camellia, CAST128, CAST256, DES, \ref DES_EDE2 "2-key Triple-DES", \ref DES_EDE3 "3-key Triple-DES",
\ref DES_XEX3 "DESX", GOST, IDEA, \ref LR "Luby-Rackoff", MARS, RC2, RC5, RC6, \ref SAFER_K "SAFER-K", \ref SAFER_SK "SAFER-SK", SEED, Serpent,
\ref SHACAL2 "SHACAL-2", SHARK, SKIPJACK,
Square, TEA, \ref ThreeWay "3-Way", Twofish, XTEA
<dt>Stream Ciphers<dd>
ChaCha8, ChaCha12, ChaCha20, \ref Panama "Panama-LE", \ref Panama "Panama-BE", Salsa20, \ref SEAL "SEAL-LE", \ref SEAL "SEAL-BE", WAKE, XSalsa20
<dt>Hash Functions<dd>
BLAKE2s, BLAKE2b, \ref Keccak "Keccak (F1600)", SHA1, SHA224, SHA256, SHA384, SHA512, \ref SHA3 "SHA-3", Tiger, Whirlpool, RIPEMD160, RIPEMD320, RIPEMD128, RIPEMD256, Weak::MD2, Weak::MD4, Weak::MD5
<dt>Non-Cryptographic Checksums<dd>
CRC32, Adler32
<dt>Message Authentication Codes<dd>
VMAC, HMAC, CBC_MAC, CMAC, DMAC, TTMAC, \ref GCM "GCM (GMAC)", BLAKE2
<dt>Random Number Generators<dd>
NullRNG(), LC_RNG, RandomPool, BlockingRng, NonblockingRng, AutoSeededRandomPool, AutoSeededX917RNG,
\ref MersenneTwister "MersenneTwister (MT19937 and MT19937-AR)", RDRAND, RDSEED
<dt>Key Derivation and Password-based Cryptography<dd>
HKDF, \ref PKCS12_PBKDF "PBKDF (PKCS #12)", \ref PKCS5_PBKDF1 "PBKDF-1 (PKCS #5)", \ref PKCS5_PBKDF2_HMAC "PBKDF-2/HMAC (PKCS #5)"
<dt>Public Key Cryptosystems<dd>
DLIES, ECIES, LUCES, RSAES, RabinES, LUC_IES
<dt>Public Key Signature Schemes<dd>
DSA2, GDSA, ECDSA, NR, ECNR, LUCSS, RSASS, RSASS_ISO, RabinSS, RWSS, ESIGN
<dt>Key Agreement<dd>
DH, DH2, \ref MQV_Domain "MQV", \ref HMQV_Domain "HMQV", \ref FHMQV_Domain "FHMQV", ECDH, ECMQV, ECHMQV, ECFHMQV, XTR_DH
<dt>Algebraic Structures<dd>
Integer, PolynomialMod2, PolynomialOver, RingOfPolynomialsOver,
ModularArithmetic, MontgomeryRepresentation, GFP2_ONB, GF2NP, GF256, GF2_32, EC2N, ECP
<dt>Secret Sharing and Information Dispersal<dd>
SecretSharing, SecretRecovery, InformationDispersal, InformationRecovery
<dt>Compression<dd>
Deflator, Inflator, Gzip, Gunzip, ZlibCompressor, ZlibDecompressor
<dt>Input Source Classes<dd>
StringSource, ArraySource, FileSource, SocketSource, WindowsPipeSource, RandomNumberSource
<dt>Output Sink Classes<dd>
StringSinkTemplate, StringSink, ArraySink, FileSink, SocketSink, WindowsPipeSink, RandomNumberSink
<dt>Filter Wrappers<dd>
StreamTransformationFilter, HashFilter, HashVerificationFilter, SignerFilter, SignatureVerificationFilter
<dt>Binary to Text Encoders and Decoders<dd>
HexEncoder, HexDecoder, Base64Encoder, Base64Decoder, Base64URLEncoder, Base64URLDecoder, Base32Encoder, Base32Decoder
<dt>Wrappers for OS features<dd>
Timer, Socket, WindowsHandle, ThreadLocalStorage, ThreadUserTimer
<dt>FIPS 140 validated cryptography<dd>
fips140.h
</dl>
In the DLL version of Crypto++, only the following implementation class are available.
<dl>
<dt>Block Ciphers<dd>
AES, \ref DES_EDE2 "2-key Triple-DES", \ref DES_EDE3 "3-key Triple-DES", SKIPJACK
<dt>Cipher Modes (replace template parameter BC with one of the block ciphers above)<dd>
\ref ECB_Mode "ECB_Mode<BC>", \ref CTR_Mode "CTR_Mode<BC>", \ref CBC_Mode "CBC_Mode<BC>", \ref CFB_FIPS_Mode "CFB_FIPS_Mode<BC>", \ref OFB_Mode "OFB_Mode<BC>", \ref GCM "GCM<AES>"
<dt>Hash Functions<dd>
SHA1, SHA224, SHA256, SHA384, SHA512
<dt>Public Key Signature Schemes (replace template parameter H with one of the hash functions above)<dd>
RSASS\<PKCS1v15, H\>, RSASS\<PSS, H\>, RSASS_ISO\<H\>, RWSS\<P1363_EMSA2, H\>, DSA, ECDSA\<ECP, H\>, ECDSA\<EC2N, H\>
<dt>Message Authentication Codes (replace template parameter H with one of the hash functions above)<dd>
HMAC\<H\>, CBC_MAC\<DES_EDE2\>, CBC_MAC\<DES_EDE3\>, GCM\<AES\>
<dt>Random Number Generators<dd>
DefaultAutoSeededRNG (AutoSeededX917RNG\<AES\>)
<dt>Key Agreement<dd>
DH, DH2
<dt>Public Key Cryptosystems<dd>
RSAES\<OAEP\<SHA1\> \>
</dl>
<p>This reference manual is a work in progress. Some classes are lack detailed descriptions.
<p>Click <a href="CryptoPPRef.zip">here</a> to download a zip archive containing this manual.
<p>Thanks to Ryan Phillips for providing the Doxygen configuration file
and getting us started on the manual.
*/
#ifndef CRYPTOPP_CRYPTLIB_H
#define CRYPTOPP_CRYPTLIB_H
#include "config.h"
#include "stdcpp.h"
#include "trap.h"
#if defined(CRYPTOPP_BSD_AVAILABLE) || defined(CRYPTOPP_UNIX_AVAILABLE)
# include <signal.h>
#endif
#if CRYPTOPP_MSC_VERSION
# pragma warning(push)
# pragma warning(disable: 4127 4189 4702)
#endif
NAMESPACE_BEGIN(CryptoPP)
// forward declarations
class Integer;
class RandomNumberGenerator;
class BufferedTransformation;
//! \brief Specifies a direction for a cipher to operate
//! \sa BlockTransformation::IsForwardTransformation(), BlockTransformation::IsPermutation(), BlockTransformation::GetCipherDirection()
enum CipherDir {
//! \brief the cipher is performing encryption
ENCRYPTION,
//! \brief the cipher is performing decryption
DECRYPTION};
//! \brief Represents infinite time
const unsigned long INFINITE_TIME = ULONG_MAX;
// VC60 workaround: using enums as template parameters causes problems
//! \brief Converts a typename to an enumerated value
template <typename ENUM_TYPE, int VALUE>
struct EnumToType
{
static ENUM_TYPE ToEnum() {return (ENUM_TYPE)VALUE;}
};
//! \brief Provides the byte ordering
//! \details Big-endian and little-endian modes are supported. Bi-endian and PDP-endian modes
//! are not supported.
enum ByteOrder {
//! \brief byte order is little-endian
LITTLE_ENDIAN_ORDER = 0,
//! \brief byte order is big-endian
BIG_ENDIAN_ORDER = 1};
//! \brief Provides a constant for LittleEndian
typedef EnumToType<ByteOrder, LITTLE_ENDIAN_ORDER> LittleEndian;
//! \brief Provides a constant for BigEndian
typedef EnumToType<ByteOrder, BIG_ENDIAN_ORDER> BigEndian;
//! \class Exception
//! \brief Base class for all exceptions thrown by the library
//! \details All library exceptions directly or indirectly inherit from the Exception class.
//! The Exception class itself inherits from std::exception. The library does not use
//! std::runtime_error derived classes.
class CRYPTOPP_DLL Exception : public std::exception
{
public:
//! \enum ErrorType
//! \brief Error types or categories
enum ErrorType {
//! \brief A method was called which was not implemented
NOT_IMPLEMENTED,
//! \brief An invalid argument was detected
INVALID_ARGUMENT,
//! \brief BufferedTransformation received a Flush(true) signal but can't flush buffers
CANNOT_FLUSH,
//! \brief Data integerity check, such as CRC or MAC, failed
DATA_INTEGRITY_CHECK_FAILED,
//! \brief Input data was received that did not conform to expected format
INVALID_DATA_FORMAT,
//! \brief Error reading from input device or writing to output device
IO_ERROR,
//! \brief Some other error occurred not belonging to other categories
OTHER_ERROR
};
//! \brief Construct a new Exception
explicit Exception(ErrorType errorType, const std::string &s) : m_errorType(errorType), m_what(s) {}
virtual ~Exception() throw() {}
//! \brief Retrieves a C-string describing the exception
const char *what() const throw() {return (m_what.c_str());}
//! \brief Retrieves a string describing the exception
const std::string &GetWhat() const {return m_what;}
//! \brief Sets the error string for the exception
void SetWhat(const std::string &s) {m_what = s;}
//! \brief Retrieves the error type for the exception
没有合适的资源?快使用搜索试试~ 我知道了~
CryptoPPForUE4.17.2_5.6.5.zip
共146个文件
h:145个
lib:1个
5星 · 超过95%的资源 需积分: 24 19 下载量 114 浏览量
2017-12-13
11:48:53
上传
评论
收藏 6.51MB ZIP 举报
温馨提示
Crypto++ 针对ue4.17.2编译的x64 release lib静态文件
资源推荐
资源详情
资源评论
收起资源包目录
CryptoPPForUE4.17.2_5.6.5.zip (146个子文件)
cryptlib.h 156KB
pubkey.h 93KB
misc.h 91KB
filters.h 59KB
config.h 37KB
secblock.h 32KB
strciphr.h 27KB
integer.h 25KB
gfpcrypt.h 22KB
seckey.h 21KB
modes.h 20KB
algparam.h 20KB
asn.h 20KB
cpu.h 20KB
polynomi.h 17KB
algebra.h 16KB
eccrypto.h 15KB
blake2.h 13KB
modarith.h 13KB
simple.h 12KB
gf2n.h 12KB
hmqv.h 12KB
fhmqv.h 12KB
luc.h 10KB
osrng.h 10KB
mqv.h 10KB
rsa.h 10KB
base64.h 9KB
serpentp.h 9KB
nbtheory.h 9KB
smartptr.h 8KB
pwdbased.h 8KB
wait.h 8KB
network.h 8KB
default.h 8KB
iterhash.h 8KB
dh.h 8KB
trap.h 8KB
mersenne.h 7KB
rdrand.h 7KB
socketft.h 6KB
oids.h 6KB
zdeflate.h 6KB
xtr.h 6KB
fips140.h 6KB
des.h 6KB
basecode.h 5KB
ida.h 5KB
base32.h 5KB
elgamal.h 5KB
argnames.h 5KB
ecp.h 5KB
zinflate.h 5KB
queue.h 5KB
panama.h 5KB
files.h 5KB
tea.h 5KB
gcm.h 5KB
ossig.h 5KB
factory.h 4KB
ec2n.h 4KB
channels.h 4KB
ccm.h 4KB
rw.h 4KB
esign.h 4KB
rng.h 4KB
keccak.h 4KB
chacha.h 4KB
pssr.h 4KB
hkdf.h 4KB
vmac.h 4KB
winpipes.h 4KB
gzip.h 4KB
eprecomp.h 4KB
mqueue.h 4KB
sha3.h 4KB
lubyrack.h 3KB
pkcspad.h 3KB
eax.h 3KB
rabin.h 3KB
safer.h 3KB
salsa.h 3KB
rc2.h 3KB
sha.h 3KB
cast.h 3KB
rijndael.h 3KB
arc4.h 3KB
authenc.h 3KB
randpool.h 3KB
validate.h 3KB
dmac.h 3KB
mdc.h 2KB
hmac.h 2KB
dh2.h 2KB
fltrimpl.h 2KB
zlib.h 2KB
emsa2.h 2KB
wake.h 2KB
3way.h 2KB
words.h 2KB
共 146 条
- 1
- 2
资源评论
- Jack_Chen82020-10-19不错,挺好用的
某校不良生
- 粉丝: 224
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功