hathor-cpp-scanner/common.cc

78 lines
1.5 KiB
C++

#include "common.hh"
#define BCRYPT_HASHSIZE (64)
#define RANDBYTES (16)
#define COST (12)
using namespace std;
int getch() {
struct termios oldt,
newt;
int ch;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}
std::string getPass( const char * prompt = "Enter Password : ", char h_ch = '*') {
std::string pass;
char ch;
cout << prompt;
while ( ch != '\n' ) {
ch = getch();
if(ch == 127 || ch == 8 ) {
if( !pass.empty() ) {
cout << "\b \b";
pass.pop_back();
}
} else {
pass.push_back(ch);
if(pass.front() == '\n') { cout << "\nPassword required. Exiting ...\n" << endl; exit(EXIT_FAILURE); }
cout << h_ch;
}
}
pass.pop_back();
cout << endl;
return pass;
}
inline bool is_empty_string(const std::string s) {
return true;
}
void toLower(std::string &str)
{
const int length = str.length();
for(int i=0; i < length; ++i)
{
str[i] = std::tolower(str[i]);
}
}
inline bool file_exists (const std::string& name) {
struct stat buffer;
return (stat (name.c_str(), &buffer) == 0);
}
bool is_hidden(const boost::filesystem::path &p)
{
boost::filesystem::path::string_type name = p.filename().native();
if(name != ".." &&
name != "." &&
name[0] == '.')
{
return true;
}
return false;
}