Crypto++  7.0
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 #include "trdlocal.h"
44 
45 #ifdef CRYPTOPP_IMPORTS
46 
47 #ifdef _DLL
48 // cause CRT DLL to be initialized before Crypto++ so that we can use malloc and free during DllMain()
49 #ifdef CRYPTOPP_DEBUG
50 # pragma comment(lib, "msvcrtd")
51 # pragma comment(lib, "cryptopp")
52 #else
53 # pragma comment(lib, "msvcrt")
54 # pragma comment(lib, "cryptopp")
55 #endif
56 #endif
57 
58 #endif // #ifdef CRYPTOPP_IMPORTS
59 
60 #include <new> // for new_handler
61 
62 NAMESPACE_BEGIN(CryptoPP)
63 
64 typedef void * (CRYPTOPP_API * PNew)(size_t);
65 typedef void (CRYPTOPP_API * PDelete)(void *);
66 typedef void (CRYPTOPP_API * PGetNewAndDelete)(PNew &, PDelete &);
67 typedef std::new_handler (CRYPTOPP_API * PSetNewHandler)(std::new_handler);
68 typedef void (CRYPTOPP_API * PSetNewAndDelete)(PNew, PDelete, PSetNewHandler);
69 
70 NAMESPACE_END
71 
72 #endif
Class file for Randomness Pool.
Classes for block cipher modes of operation.
Classes for Elliptic Curves over prime fields.
Classes for CBC MAC.
Classes for multiple named channels.
Classes for CMAC message authentication code.
Classes for Elliptic Curves over binary fields.
Classes for PKCS padding schemes.
Classes for HMAC message authentication codes.
Classes for Rabin-Williams signature scheme.
Classes for the SKIPJACK block cipher.
Classes for Diffie-Hellman key exchange.
Classes for HexEncoder and HexDecoder.
Class file for the AES cipher (Rijndael)
Classes for the DSA signature algorithm.
Classes for DES, 2-key Triple-DES, 3-key Triple-DES and DESX.
Classes for SHA-1 and SHA-2 family of message digests.
Classes and functions for number theoretic operations.
Classes for the RSA cryptosystem.
Classes and functions for the FIPS 140-2 validated library.
GCM block cipher mode of operation.
Classes providing file-based library services.
Classes and functions for Elliptic Curves over prime and binary fields.
Crypto++ library namespace.
Classes for probablistic signature schemes.
Classes for access to the operating system's random number generators.
CCM block cipher mode of operation.