2015-04-23 16:07:22 +00:00
|
|
|
// Copyright (c) 2011-2015 The Cryptonote developers
|
2014-03-03 22:07:58 +00:00
|
|
|
// Distributed under the MIT/X11 software license, see the accompanying
|
|
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
|
2015-07-30 15:22:07 +00:00
|
|
|
namespace Tools
|
2014-03-03 22:07:58 +00:00
|
|
|
{
|
2015-07-30 15:22:07 +00:00
|
|
|
class PasswordContainer
|
2014-03-03 22:07:58 +00:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
static const size_t max_password_size = 1024;
|
|
|
|
|
2015-07-30 15:22:07 +00:00
|
|
|
PasswordContainer();
|
|
|
|
PasswordContainer(std::string&& password);
|
|
|
|
PasswordContainer(PasswordContainer&& rhs);
|
|
|
|
~PasswordContainer();
|
2014-03-03 22:07:58 +00:00
|
|
|
|
|
|
|
void clear();
|
|
|
|
bool empty() const { return m_empty; }
|
|
|
|
const std::string& password() const { return m_password; }
|
|
|
|
void password(std::string&& val) { m_password = std::move(val); m_empty = false; }
|
|
|
|
bool read_password();
|
|
|
|
|
|
|
|
private:
|
|
|
|
bool read_from_file();
|
|
|
|
bool read_from_tty();
|
|
|
|
|
|
|
|
private:
|
|
|
|
bool m_empty;
|
|
|
|
std::string m_password;
|
|
|
|
};
|
|
|
|
}
|