Crypto++: a C++ Class Library of Cryptographic Schemes
Version 5.6.4 - SEPT/11/2016
Crypto++ Library is a free C++ class library of cryptographic schemes.
Currently the library contains the following algorithms:
algorithm type name
authenticated encryption schemes GCM, CCM, EAX
high speed stream ciphers ChaCha (ChaCha8/12/20), Panama, Sosemanuk,
Salsa20, XSalsa20
AES and AES candidates AES (Rijndael), RC6, MARS, Twofish, Serpent,
CAST-256
IDEA, Triple-DES (DES-EDE2 and DES-EDE3),
other block ciphers Camellia, SEED, RC5, Blowfish, TEA, XTEA,
Skipjack, SHACAL-2
block cipher modes of operation ECB, CBC, CBC ciphertext stealing (CTS),
CFB, OFB, counter mode (CTR)
message authentication codes VMAC, HMAC, GMAC, CMAC, CBC-MAC, DMAC,
Two-Track-MAC
BLAKE2 (BLAKE2b, BLAKE2s), SHA-1, SHA-2 (SHA-224,
hash functions SHA-256, SHA-384, and SHA-512), SHA-3, Tiger,
WHIRLPOOL, RIPEMD-128, RIPEMD-256, RIPEMD-160,
RIPEMD-320
RSA, DSA, ElGamal, Nyberg-Rueppel (NR),
public-key cryptography Rabin-Williams (RW), LUC, LUCELG,
DLIES (variants of DHAES), ESIGN
padding schemes for public-key PKCS#1 v2.0, OAEP, PSS, PSSR, IEEE P1363
systems EMSA2 and EMSA5
Diffie-Hellman (DH), Unified Diffie-Hellman
key agreement schemes (DH2), Menezes-Qu-Vanstone (MQV), Hashed MQV (HMQV),
Fully Hashed MQV (FHMQV), LUCDIF, XTR-DH
elliptic curve cryptography ECDSA, ECNR, ECIES, ECDH, ECMQV
insecure or obsolescent MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL
algorithms retained for backwards 3.0, WAKE-OFB, DESX (DES-XEX3), RC2,
compatibility and historical SAFER, 3-WAY, GOST, SHARK, CAST-128, Square
value
Other features include:
* pseudo random number generators (PRNG): ANSI X9.17 appendix C, RandomPool
* password based key derivation functions: PBKDF1 and PBKDF2 from PKCS #5,
PBKDF from PKCS #12 appendix B, HKDF from RFC 5869
* Shamir's secret sharing scheme and Rabin's information dispersal algorithm
(IDA)
* fast multi-precision integer (bignum) and polynomial operations
* finite field arithmetics, including GF(p) and GF(2^n)
* prime number generation and verification
* useful non-cryptographic algorithms
+ DEFLATE (RFC 1951) compression/decompression with gzip (RFC 1952) and
zlib (RFC 1950) format support
+ hex, base-32, and base-64 coding/decoding
+ 32-bit CRC, CRC-C and Adler32 checksum
* class wrappers for these platform and operating system features (optional):
+ high resolution timers on Windows, Unix, and Mac OS
+ Berkeley and Windows style sockets
+ Windows named pipes
+ /dev/random, /dev/urandom, /dev/srandom
+ Microsoft's CryptGenRandom on Windows
+ VIA Padlock, Amd64 RDRAND and RDSEED
* A high level interface for most of the above, using a filter/pipeline
metaphor
* benchmarks and validation testing
* x86, x86_64, MMX, SSE2, SSE4 assembly code for the most commonly used
algorithms, with run-time CPU feature detection and code selection.
Limited ARM NEON and ARMv8 ASIMD, CRC and Crypto extension support
* some versions are available in FIPS 140-2 validated form
You are welcome to use it for any purpose without paying me, but see
License.txt for the fine print.
The following compilers are supported for this release. Please visit
http://www.cryptopp.com the most up to date build instructions and porting notes.
* MSVC 6.0 - 2015
* GCC 3.3 - 7.0
* Clang 2.9 - 4.0
* C++Builder 2010
* Intel C++ Compiler 9 - 16.0
* Sun Studio 12u1 - 12.5
*** Important Usage Notes ***
1. If a constructor for A takes a pointer to an object B (except primitive
types such as int and char), then A owns B and will delete B at A's
destruction. If a constructor for A takes a reference to an object B,
then the caller retains ownership of B and should not destroy it until
A no longer needs it.
2. Crypto++ is thread safe at the class level. This means you can use
Crypto++ safely in a multithreaded application, but you must provide
synchronization when multiple threads access a common Crypto++ object.
*** MSVC-Specific Information ***
On Windows, Crypto++ can be compiled into 3 forms: a static library
including all algorithms, a DLL with only FIPS Approved algorithms, and
a static library with only algorithms not in the DLL.
(FIPS Approved means Approved according to the FIPS 140-2 standard.)
The DLL may be used by itself, or it may be used together with the second
form of the static library. MSVC project files are included to build
all three forms, and sample applications using each of the three forms
are also included.
To compile Crypto++ with MSVC, open "cryptest.sln" (for MSVC 2005 - 2015)
or "cryptest.dsw" (for MSVC 6 - MSVC .NET 2003) workspace file and build
one or more of the following projects:
cryptdll - This builds the DLL. Please note that if you wish to use Crypto++
as a FIPS validated module, you must use a pre-built DLL that has undergone
the FIPS validation process instead of building your own.
dlltest - This builds a sample application that only uses the DLL.
cryptest Non-DLL-Import Configuration - This builds the full static library
along with a full test driver.
cryptest DLL-Import Configuration - This builds a static library containing
only algorithms not in the DLL, along with a full test driver that uses
both the DLL and the static library.
To use the Crypto++ DLL in your application, #include "dll.h" before including
any other Crypto++ header files, and place the DLL in the same directory as
your .exe file. dll.h includes the line #pragma comment(lib, "cryptopp")
so you don't have to explicitly list the import library in your project
settings. To use a static library form of Crypto++, make the "cryptlib"
project a dependency of your application project, or specify it as
an additional library to link with in your project settings.
In either case you should check the compiler options to
make sure that the library and your application are using the same C++
run-time libraries and calling conventions.
*** DLL Memory Management ***
Because it's possible for the Crypto++ DLL to delete objects allocated
by the calling application, they must use the same C++ memory heap. Three
methods are provided to achieve this.
1. The calling application can tell Crypto++ what heap to use. This method
is required when the calling application uses a non-standard heap.
2. Crypto++ can tell the calling application what heap to use. This method
is required when the calling application uses a statically linked C++ Run
Time Library. (Method 1 does not work in this case because the Crypto++ DLL
is initialized before the calling application's heap is initialized.)
3. Crypto++ can automatically use the heap provided by the calling application's
dynamically linked C++ Run Time Library. The calling application must
make sure that the dynamically linked C++ Run Time Library is initialized
before Crypto++ is loaded. (At this time it is not clear if it is possible
to control the order in which DLLs are initialized on Windows 9x machines,
so it might be best to avoid using this method.)
When Crypto++ attaches to a new process, it searches all modu
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
AES/CBC/PKCS5Padding/ 加解密 (652个子文件)
x64dll.asm 46KB
x64masm.asm 37KB
rdrand.asm 12KB
include.bat 2KB
CleanVCPrj.bat 130B
rdrand-masm.cmd 4KB
config.compat 37KB
blake2.cpp 219KB
integer.cpp 121KB
sharkbox.cpp 119KB
validat3.cpp 108KB
validat1.cpp 95KB
tigertab.cpp 44KB
rijndael.cpp 43KB
whrlpool.cpp 42KB
fipsalgt.cpp 37KB
validat2.cpp 36KB
filters.cpp 36KB
test.cpp 35KB
gcm.cpp 35KB
squaretb.cpp 31KB
ripemd.cpp 31KB
eccrypto.cpp 31KB
cryptlib.cpp 29KB
casts.cpp 29KB
sha.cpp 28KB
zdeflate.cpp 26KB
vmac.cpp 25KB
datatest.cpp 25KB
fipstest.cpp 25KB
nbtheory.cpp 25KB
sosemanuk.cpp 24KB
salsa.cpp 24KB
camellia.cpp 22KB
cpu.cpp 21KB
gf2n.cpp 20KB
zinflate.cpp 17KB
crc.cpp 17KB
socketft.cpp 16KB
tftables.cpp 16KB
network.cpp 16KB
bench2.cpp 15KB
bench1.cpp 15KB
polynomi.cpp 14KB
rdrand.cpp 14KB
panama.cpp 14KB
asn.cpp 14KB
bfinit.cpp 14KB
wait.cpp 14KB
des.cpp 13KB
queue.cpp 13KB
ecp.cpp 12KB
ida.cpp 12KB
ttmac.cpp 11KB
cast.cpp 11KB
gfpcrypt.cpp 10KB
keccak.cpp 10KB
sha3.cpp 10KB
algebra.cpp 9KB
rsa.cpp 9KB
default.cpp 9KB
modes.cpp 9KB
regtest.cpp 9KB
pubkey.cpp 8KB
channels.cpp 8KB
rw.cpp 7KB
ec2n.cpp 7KB
strciphr.cpp 7KB
osrng.cpp 7KB
pkcspad.cpp 7KB
marss.cpp 7KB
tiger.cpp 6KB
luc.cpp 6KB
safer.cpp 6KB
files.cpp 6KB
esign.cpp 6KB
dessp.cpp 6KB
skipjack.cpp 6KB
pssr.cpp 6KB
misc.cpp 6KB
basecode.cpp 6KB
dlltest.cpp 6KB
rabin.cpp 6KB
winpipes.cpp 6KB
square.cpp 6KB
chacha.cpp 5KB
seed.cpp 5KB
authenc.cpp 5KB
dll.cpp 5KB
hrtimer.cpp 5KB
seal.cpp 5KB
iterhash.cpp 5KB
rdtables.cpp 5KB
shark.cpp 5KB
md5.cpp 4KB
rng.cpp 4KB
twofish.cpp 4KB
mqueue.cpp 4KB
tea.cpp 4KB
ccm.cpp 4KB
共 652 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
tgd1221
- 粉丝: 2
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- base.apk
- Vue 结合 D3.js 进行数据可视化开发的练手案例.zip
- 语音模块使用说明_jr6001调试工具.html
- 毕业设计-reat18货物运输后台管理系统
- Qt tcp通信(exe)
- tensorflow-gpu-2.7.3-cp39-cp39-manylinux2010-x86-64.whl
- tensorflow-2.8.0-cp37-cp37m-manylinux2010-x86-64.whl
- tensorflow-2.7.4-cp39-cp39-manylinux2010-x86-64.whl
- HTML后台管理系统源49套合集 H5模板源码下载 总有一款适合你 静态页面
- DDColor-PDF文献
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页