Crypto++  8.8
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
Class file for the AES cipher (Rijndael)
Classes for CBC MAC.
CCM block cipher mode of operation.
Classes for multiple named channels.
Classes for CMAC message authentication code.
#define CRYPTOPP_API
Win32 calling convention.
Definition: config_dll.h:119
Classes for DES, 2-key Triple-DES, 3-key Triple-DES and DESX.
Classes for Diffie-Hellman key exchange.
Classes for the DSA signature algorithm.
Classes for Elliptic Curves over binary fields.
Classes and functions for Elliptic Curves over prime and binary fields.
Classes for Elliptic Curves over prime fields.
Classes providing file-based library services.
Classes and functions for the FIPS 140-2 validated library.
GCM block cipher mode of operation.
Classes for HexEncoder and HexDecoder.
Classes for HMAC message authentication codes.
Classes for block cipher modes of operation.
Classes for an unlimited queue to store messages.
Crypto++ library namespace.
Classes and functions for number theoretic operations.
Classes for access to the operating system's random number generators.
Classes for PKCS padding schemes.
Classes for probabilistic signature schemes.
Class file for Randomness Pool.
Classes for the RSA cryptosystem.
Classes for Rabin-Williams signature scheme.
Classes for SHA-1 and SHA-2 family of message digests.
Classes for the SKIPJACK block cipher.