Crypto++  5.6.5
Free C++ class library of cryptographic schemes
dll.h
Go to the documentation of this file.
1 // dll.h - written and placed in the public domain by Wei Dai
2 
3 //! \file
4 //! \headerfile dll.h
5 //! \brief Functions and definitions required for building the FIPS-140 DLL on Windows
6 
7 #ifndef CRYPTOPP_DLL_H
8 #define CRYPTOPP_DLL_H
9 
10 #if !defined(CRYPTOPP_IMPORTS) && !defined(CRYPTOPP_EXPORTS) && !defined(CRYPTOPP_DEFAULT_NO_DLL)
11 #ifdef CRYPTOPP_CONFIG_H
12 #error To use the DLL version of Crypto++, this file must be included before any other Crypto++ header files.
13 #endif
14 #define CRYPTOPP_IMPORTS
15 #endif
16 
17 #include "aes.h"
18 #include "cbcmac.h"
19 #include "ccm.h"
20 #include "cmac.h"
21 #include "channels.h"
22 #include "des.h"
23 #include "dh.h"
24 #include "dsa.h"
25 #include "ec2n.h"
26 #include "eccrypto.h"
27 #include "ecp.h"
28 #include "files.h"
29 #include "fips140.h"
30 #include "gcm.h"
31 #include "hex.h"
32 #include "hmac.h"
33 #include "modes.h"
34 #include "mqueue.h"
35 #include "nbtheory.h"
36 #include "osrng.h"
37 #include "pkcspad.h"
38 #include "pssr.h"
39 #include "randpool.h"
40 #include "rsa.h"
41 #include "rw.h"
42 #include "sha.h"
43 #include "skipjack.h"
44 #include "trdlocal.h"
45 
46 #ifdef CRYPTOPP_IMPORTS
47 
48 #ifdef _DLL
49 // cause CRT DLL to be initialized before Crypto++ so that we can use malloc and free during DllMain()
50 #ifdef CRYPTOPP_DEBUG
51 # pragma comment(lib, "msvcrtd")
52 # pragma comment(lib, "cryptopp")
53 #else
54 # pragma comment(lib, "msvcrt")
55 # pragma comment(lib, "cryptopp")
56 #endif
57 #endif
58 
59 #endif // #ifdef CRYPTOPP_IMPORTS
60 
61 #include <new> // for new_handler
62 
63 NAMESPACE_BEGIN(CryptoPP)
64 
65 typedef void * (CRYPTOPP_API * PNew)(size_t);
66 typedef void (CRYPTOPP_API * PDelete)(void *);
67 typedef void (CRYPTOPP_API * PGetNewAndDelete)(PNew &, PDelete &);
68 typedef std::new_handler (CRYPTOPP_API * PSetNewHandler)(std::new_handler);
69 typedef void (CRYPTOPP_API * PSetNewAndDelete)(PNew, PDelete, PSetNewHandler);
70 
71 NAMESPACE_END
72 
73 #endif
Class file for Randomness Pool.
Class file for modes of operation.
Classes for Elliptic Curves over prime fields.
STL namespace.
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.