#ifndef BruteForcePassParam_class
#define BruteForcePassParam_class



#include <cstdlib>
#include <iostream>

#ifdef WIN32
	#ifndef _DLFCN_WIN32_H
		#define _DLFCN_WIN32_H
		#ifdef _WIN32
			#define WIN32_LEAN_AND_MEAN
			#include <windows.h>
			#include <errno.h>
			#define dlopen(P,G) (void*)LoadLibrary(P)
			#define dlsym(D,F) (void*)GetProcAddress((HMODULE)(D),(F))
			#define dlclose(D) FreeLibrary((HMODULE)(D))
			__inline const char* dlerror() {
				static char szMsgBuf[256];
				FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,NULL,GetLastError(),MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),szMsgBuf,sizeof szMsgBuf,NULL);
				return szMsgBuf;
			}
		#endif /* _WIN32 */
	
	#endif /* _DLFCN_WIN32_H */

	#define sleep(seconds) Sleep((seconds)*1000)
#else
	#include <dlfcn.h>
#endif

#define MODULE_NAME "./module.rx.so"


using namespace std;


class BruteForcePassParam {

	public:
		string chars_allowed;
		int chars_allowed_length;
		int min_size;
		int max_size;
		string hash_to_hack;


		BruteForcePassParam();
		~BruteForcePassParam();
};



#endif
