1
#ifndef __ARC_PASSWORD_SOURCE_H__
2
#define __ARC_PASSWORD_SOURCE_H__
11
NO_PASSWORD = 0, // No password is returned. Authoritative. Not same as empty password.
12
PASSWORD = 1, // Password is provided. Authoritative.
13
CANCEL = 2 // Request to cancel procedure which need password.
15
virtual Result Get(std::string& password, int minsize, int maxsize) = 0;
18
class PasswordSourceNone: public PasswordSource {
20
virtual Result Get(std::string& password, int minsize, int maxsize);
23
class PasswordSourceString: public PasswordSource {
25
std::string password_;
27
PasswordSourceString(const std::string& password);
28
virtual Result Get(std::string& password, int minsize, int maxsize);
31
class PasswordSourceStream: public PasswordSource {
33
std::istream* password_;
35
PasswordSourceStream(std::istream* password);
36
virtual Result Get(std::string& password, int minsize, int maxsize);
39
class PasswordSourceInteractive: public PasswordSource {
44
PasswordSourceInteractive(const std::string& prompt, bool verify);
45
virtual Result Get(std::string& password, int minsize, int maxsize);
50
#endif // __ARC_PASSWORD_SOURCE_H__