fix for Unix

pull/2/head
weidai 2003-07-11 19:46:28 +00:00
parent 12157494b2
commit cadf4f866a
5 changed files with 17 additions and 9 deletions

View File

@ -264,11 +264,13 @@ NAMESPACE_END
#endif
#define CRYPTOPP_API __stdcall
#define CRYPTOPP_CDECL _cdecl
#else // CRYPTOPP_WIN32_AVAILABLE
#define CRYPTOPP_DLL
#define CRYPTOPP_API
#define CRYPTOPP_CDECL
#endif // CRYPTOPP_WIN32_AVAILABLE

View File

@ -6,7 +6,9 @@
#include "dll.h"
#pragma warning(default: 4660)
#ifdef CRYPTOPP_WIN32_AVAILABLE
#include <windows.h>
#endif
#include "iterhash.cpp"
#include "strciphr.cpp"
@ -23,13 +25,19 @@ template<> const byte PKCS_DigestDecoration<SHA>::decoration[] = {0x30,0x21,0x30
template<> const unsigned int PKCS_DigestDecoration<SHA>::length = sizeof(PKCS_DigestDecoration<SHA>::decoration);
static const byte s_moduleMac[CryptoPP::HMAC<CryptoPP::SHA1>::DIGESTSIZE] = "reserved for mac";
#ifdef CRYPTOPP_WIN32_AVAILABLE
static HMODULE s_hModule = NULL;
#endif
void DoDllPowerUpSelfTest()
{
#ifdef CRYPTOPP_WIN32_AVAILABLE
char moduleFileName[MAX_PATH];
GetModuleFileNameA(s_hModule, moduleFileName, sizeof(moduleFileName));
CryptoPP::DoPowerUpSelfTest(moduleFileName, s_moduleMac);
#else
throw NotImplemented("DoDllPowerUpSelfTest() only available on Windows");
#endif
}
NAMESPACE_END

10
dll.h
View File

@ -55,11 +55,11 @@ NAMESPACE_BEGIN(CryptoPP)
using std::new_handler;
#endif
typedef void * (_cdecl * PNew)(size_t);
typedef void (_cdecl * PDelete)(void *);
typedef void (_cdecl * PGetNewAndDelete)(PNew &, PDelete &);
typedef new_handler (_cdecl * PSetNewHandler)(new_handler);
typedef void (_cdecl * PSetNewAndDelete)(PNew, PDelete, PSetNewHandler);
typedef void * (CRYPTOPP_CDECL * PNew)(size_t);
typedef void (CRYPTOPP_CDECL * PDelete)(void *);
typedef void (CRYPTOPP_CDECL * PGetNewAndDelete)(PNew &, PDelete &);
typedef new_handler (CRYPTOPP_CDECL * PSetNewHandler)(new_handler);
typedef void (CRYPTOPP_CDECL * PSetNewAndDelete)(PNew, PDelete, PSetNewHandler);
CRYPTOPP_DLL void DoDllPowerUpSelfTest();

View File

@ -173,7 +173,7 @@ void FIPS140_SampleApplication()
#ifdef CRYPTOPP_DLL_ONLY
int __cdecl main()
int CRYPTOPP_CDECL main()
{
FIPS140_SampleApplication();
return 0;

View File

@ -85,10 +85,8 @@ int (*AdhocTest)(int argc, char *argv[]) = NULL;
#ifdef __BCPLUSPLUS__
int cmain(int argc, char *argv[])
#elif defined(_MSC_VER)
int __cdecl main(int argc, char *argv[])
#else
int main(int argc, char *argv[])
int CRYPTOPP_CDECL main(int argc, char *argv[])
#endif
{
#ifdef _CRTDBG_LEAK_CHECK_DF