Crypto++  8.6
Free C++ class library of cryptographic schemes
dll.h
Go to the documentation of this file.
1 // dll.h - originally written and placed in the public domain by Wei Dai
2 
3 /// \file dll.h
4 /// \brief Functions and definitions required for building the FIPS-140 DLL on Windows
5 
6 #ifndef CRYPTOPP_DLL_H
7 #define CRYPTOPP_DLL_H
8 
9 #if !defined(CRYPTOPP_IMPORTS) && !defined(CRYPTOPP_EXPORTS) && !defined(CRYPTOPP_DEFAULT_NO_DLL)
10 #ifdef CRYPTOPP_CONFIG_H
11 #error To use the DLL version of Crypto++, this file must be included before any other Crypto++ header files.
12 #endif
13 #define CRYPTOPP_IMPORTS
14 #endif
15 
16 #include "aes.h"
17 #include "cbcmac.h"
18 #include "ccm.h"
19 #include "cmac.h"
20 #include "channels.h"
21 #include "des.h"
22 #include "dh.h"
23 #include "dsa.h"
24 #include "ec2n.h"
25 #include "eccrypto.h"
26 #include "ecp.h"
27 #include "files.h"
28 #include "fips140.h"
29 #include "gcm.h"
30 #include "hex.h"
31 #include "hmac.h"
32 #include "modes.h"
33 #include "mqueue.h"
34 #include "nbtheory.h"
35 #include "osrng.h"
36 #include "pkcspad.h"
37 #include "pssr.h"
38 #include "randpool.h"
39 #include "rsa.h"
40 #include "rw.h"
41 #include "sha.h"
42 #include "skipjack.h"
43 
44 #ifdef CRYPTOPP_IMPORTS
45 
46 #ifdef _DLL
47 // cause CRT DLL to be initialized before Crypto++ so that we can use malloc and free during DllMain()
48 #ifdef CRYPTOPP_DEBUG
49 # pragma comment(lib, "msvcrtd")
50 # pragma comment(lib, "cryptopp")
51 #else
52 # pragma comment(lib, "msvcrt")
53 # pragma comment(lib, "cryptopp")
54 #endif
55 #endif
56 
57 #endif // #ifdef CRYPTOPP_IMPORTS
58 
59 #include <new> // for new_handler
60 
61 NAMESPACE_BEGIN(CryptoPP)
62 
63 typedef void * (CRYPTOPP_API * PNew)(size_t);
64 typedef void (CRYPTOPP_API * PDelete)(void *);
65 typedef void (CRYPTOPP_API * PGetNewAndDelete)(PNew &, PDelete &);
66 typedef std::new_handler (CRYPTOPP_API * PSetNewHandler)(std::new_handler);
67 typedef void (CRYPTOPP_API * PSetNewAndDelete)(PNew, PDelete, PSetNewHandler);
68 
69 NAMESPACE_END
70 
71 #endif
ecp.h
Classes for Elliptic Curves over prime fields.
nbtheory.h
Classes and functions for number theoretic operations.
modes.h
Classes for block cipher modes of operation.
pssr.h
Classes for probabilistic signature schemes.
dh.h
Classes for Diffie-Hellman key exchange.
pkcspad.h
Classes for PKCS padding schemes.
channels.h
Classes for multiple named channels.
hex.h
Classes for HexEncoder and HexDecoder.
randpool.h
Class file for Randomness Pool.
fips140.h
Classes and functions for the FIPS 140-2 validated library.
aes.h
Class file for the AES cipher (Rijndael)
sha.h
Classes for SHA-1 and SHA-2 family of message digests.
cbcmac.h
Classes for CBC MAC.
rsa.h
Classes for the RSA cryptosystem.
dsa.h
Classes for the DSA signature algorithm.
des.h
Classes for DES, 2-key Triple-DES, 3-key Triple-DES and DESX.
skipjack.h
Classes for the SKIPJACK block cipher.
gcm.h
GCM block cipher mode of operation.
CryptoPP
Crypto++ library namespace.
mqueue.h
Classes for an unlimited queue to store messages.
CRYPTOPP_API
#define CRYPTOPP_API
Win32 calling convention.
Definition: config_dll.h:119
osrng.h
Classes for access to the operating system's random number generators.
eccrypto.h
Classes and functions for Elliptic Curves over prime and binary fields.
files.h
Classes providing file-based library services.
rw.h
Classes for Rabin-Williams signature scheme.
cmac.h
Classes for CMAC message authentication code.
ccm.h
CCM block cipher mode of operation.
ec2n.h
Classes for Elliptic Curves over binary fields.
hmac.h
Classes for HMAC message authentication codes.