Skip to content
Snippets Groups Projects
Commit a487913c authored by deuce's avatar deuce
Browse files

Add a HACK_HACK_HACK macro which will hopefully fix SSH in Win32

regardless of the compiler.
parent a550c6ea
No related branches found
No related tags found
No related merge requests found
...@@ -8,33 +8,42 @@ ...@@ -8,33 +8,42 @@
#define C_RET int #define C_RET int
#endif #endif
#ifdef _WIN32
#define HACK_HACK_HACK __stdcall
#else
#define HACK_HACK_HACK
#endif
struct crypt_funcs { struct crypt_funcs {
C_RET (*PopData)( C_IN CRYPT_HANDLE envelope, C_OUT void C_PTR buffer, C_RET (HACK_HACK_HACK *PopData)( C_IN CRYPT_HANDLE envelope, C_OUT void C_PTR buffer,
C_IN int length, C_OUT int C_PTR bytesCopied ); C_IN int length, C_OUT int C_PTR bytesCopied );
C_RET (*PushData)( C_IN CRYPT_HANDLE envelope, C_IN void C_PTR buffer, C_RET (HACK_HACK_HACK *PushData)( C_IN CRYPT_HANDLE envelope, C_IN void C_PTR buffer,
C_IN int length, C_OUT int C_PTR bytesCopied ); C_IN int length, C_OUT int C_PTR bytesCopied );
C_RET (*FlushData)( C_IN CRYPT_HANDLE envelope ); C_RET (HACK_HACK_HACK *FlushData)( C_IN CRYPT_HANDLE envelope );
C_RET (*Init)( void ); C_RET (HACK_HACK_HACK *Init)( void );
C_RET (*End)( void ); C_RET (HACK_HACK_HACK *End)( void );
C_RET (*CreateSession)( C_OUT CRYPT_SESSION C_PTR session, C_RET (HACK_HACK_HACK *CreateSession)( C_OUT CRYPT_SESSION C_PTR session,
C_IN CRYPT_USER cryptUser, C_IN CRYPT_USER cryptUser,
C_IN CRYPT_SESSION_TYPE formatType ); C_IN CRYPT_SESSION_TYPE formatType );
C_RET (*GetAttribute)( C_IN CRYPT_HANDLE cryptHandle, C_RET (HACK_HACK_HACK *GetAttribute)( C_IN CRYPT_HANDLE cryptHandle,
C_IN CRYPT_ATTRIBUTE_TYPE attributeType, C_IN CRYPT_ATTRIBUTE_TYPE attributeType,
C_OUT int C_PTR value ); C_OUT int C_PTR value );
C_RET (*GetAttributeString)( C_IN CRYPT_HANDLE cryptHandle, C_RET (HACK_HACK_HACK *GetAttributeString)( C_IN CRYPT_HANDLE cryptHandle,
C_IN CRYPT_ATTRIBUTE_TYPE attributeType, C_IN CRYPT_ATTRIBUTE_TYPE attributeType,
C_OUT void C_PTR value, C_OUT void C_PTR value,
C_OUT int C_PTR valueLength ); C_OUT int C_PTR valueLength );
C_RET (*SetAttribute)( C_IN CRYPT_HANDLE cryptHandle, C_RET (HACK_HACK_HACK *SetAttribute)( C_IN CRYPT_HANDLE cryptHandle,
C_IN CRYPT_ATTRIBUTE_TYPE attributeType, C_IN CRYPT_ATTRIBUTE_TYPE attributeType,
C_IN int value ); C_IN int value );
C_RET (*SetAttributeString)( C_IN CRYPT_HANDLE cryptHandle, C_RET (HACK_HACK_HACK *SetAttributeString)( C_IN CRYPT_HANDLE cryptHandle,
C_IN CRYPT_ATTRIBUTE_TYPE attributeType, C_IN CRYPT_ATTRIBUTE_TYPE attributeType,
C_IN void C_PTR value, C_IN int valueLength ); C_IN void C_PTR value, C_IN int valueLength );
C_RET (*DestroySession)( C_IN CRYPT_SESSION session ); C_RET (HACK_HACK_HACK *DestroySession)( C_IN CRYPT_SESSION session );
C_RET (*AddRandom)( C_IN void C_PTR randomData, C_IN int randomDataLength ); C_RET (HACK_HACK_HACK *AddRandom)( C_IN void C_PTR randomData, C_IN int randomDataLength );
}; };
#undef HACK_HACK_HACK
extern struct crypt_funcs cl; extern struct crypt_funcs cl;
extern int crypt_loaded; extern int crypt_loaded;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment