Crypto++  8.2
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 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&#39;s random number generators.
CCM block cipher mode of operation.