21 #if defined(Q_OS_WIN32) 30 #define SETTING_TOR_EXECUTABLE "TorExecutable" 31 #define SETTING_TORRC "Torrc" 32 #define SETTING_CONTROL_ADDR "ControlAddr" 33 #define SETTING_CONTROL_PORT "ControlPort" 34 #define SETTING_SOCKET_PATH "ControlSocket" 35 #define SETTING_CONTROL_METHOD "ControlMethod" 36 #define SETTING_AUTH_TOKEN "AuthToken" 37 #define SETTING_TOR_USER "User" 38 #define SETTING_TOR_GROUP "Group" 39 #define SETTING_DATA_DIRECTORY "DataDirectory" 40 #define SETTING_AUTH_METHOD "AuthenticationMethod" 41 #define SETTING_CONTROL_PASSWORD "ControlPassword" 42 #define SETTING_USE_RANDOM_PASSWORD "UseRandomPassword" 43 #define SETTING_WARN_PLAINTEXT_PORTS "WarnPlaintextPorts" 44 #define SETTING_REJECT_PLAINTEXT_PORTS "RejectPlaintextPorts" 45 #define SETTING_BOOTSTRAP "Bootstrap" 46 #define SETTING_BOOTSTRAP_FROM "BootstrapFrom" 47 #define SETTING_AUTOCONTROL "AutoControl" 50 #define DEFAULT_AUTH_METHOD PasswordAuth 52 #define DEFAULT_CONTROL_METHOD "ControlPort" 54 #define DEFAULT_SOCKET_PATH "" 57 #define TOR_ARG_CONTROL_PORT "ControlPort" 58 #define TOR_ARG_TORRC "-f" 59 #define TOR_ARG_DATA_DIRECTORY "DataDirectory" 60 #define TOR_ARG_HASHED_PASSWORD "HashedControlPassword" 61 #define TOR_ARG_COOKIE_AUTH "CookieAuthentication" 62 #define TOR_ARG_SOCKSPORT "SocksPort" 65 #define PASSWORD_LEN 16 72 #if defined(Q_OS_WIN32) 74 if (QFileInfo(programFiles +
"\\Vidalia Bundle\\Tor\\tor.exe").exists())
76 programFiles +
"\\Vidalia Bundle\\Tor\\tor.exe");
104 QHash<QString, QString> conf;
105 QString hashedPassword;
117 switch (authMethod) {
126 if (hashedPassword.isEmpty()) {
128 *errmsg = tr(
"Failed to hash the control password.");
169 return QDir::convertSeparators(tor);
186 return QDir::convertSeparators(torrc);
204 return QHostAddress(addr);
296 QHash<QString,QString> conf;
324 QList<QVariant> ports;
328 out << port.toUInt();
338 QList<QVariant> warnList;
339 foreach (quint16 port, ports) {
351 QList<QVariant> ports;
355 out << port.toUInt();
365 QList<QVariant> rejectList;
366 foreach (quint16 port, ports) {
392 QString str = authMethod.toLower();
418 while (salt.size() < 8) {
void setControlPort(quint16 port)
#define SETTING_DATA_DIRECTORY
bool getConf(QHash< QString, QString > &map, QString *errmsg=0)
#define SETTING_BOOTSTRAP_FROM
#define DEFAULT_CONTROL_METHOD
bool useRandomPassword() const
void setControlMethod(ControlMethod::Method method)
#define SETTING_CONTROL_PORT
virtual QVariant value(const QString &key) const
TorSettings(TorControl *torControl=0)
static Method fromString(QString method)
QList< quint16 > getRejectPlaintextPorts() const
TorControl * torControl() const
bool setConf(QHash< QString, QString > map, QString *errmsg=0)
virtual void setValue(const QString &key, const QVariant &value)
#define DEFAULT_AUTH_METHOD
#define SETTING_USE_RANDOM_PASSWORD
bool getInfo(QHash< QString, QString > &map, QString *errmsg=0)
AuthenticationMethod getAuthenticationMethod() const
void setControlPassword(const QString &password)
static QString toString(ControlMethod::Method method)
QByteArray crypto_rand_bytes(int len)
QVariant defaultValue(const QString &key) const
void setWarnPlaintextPorts(const QList< quint16 > &ports)
void setControlAddress(const QHostAddress &addr)
QList< quint16 > getWarnPlaintextPorts() const
static QString randomPassword()
QString crypto_rand_string(int len)
#define SETTING_CONTROL_PASSWORD
#define SETTING_TOR_EXECUTABLE
#define DEFAULT_SOCKET_PATH
void setBootstrap(bool enabled)
#define SETTING_AUTOCONTROL
ControlMethod::Method getControlMethod() const
static QString dataDirectory()
QString base16_encode(const QByteArray &buf)
#define SETTING_AUTH_METHOD
#define SETTING_CONTROL_METHOD
void setSocketPath(const QString &path)
QByteArray crypto_secret_to_key(const QString &secret, const QByteArray &salt, quint8 c)
QString getDataDirectory() const
void setExecutable(const QString &torExecutable)
bool autoControlPort() const
void setAuthenticationMethod(AuthenticationMethod method)
AuthenticationMethod toAuthenticationMethod(const QString &authMethod) const
void setDataDirectory(const QString &dataDir)
void setAutoControlPort(const bool auto)
#define TOR_ARG_SOCKSPORT
void setUseRandomPassword(bool useRandomPassword)
#define SETTING_SOCKET_PATH
QString bootstrapFrom() const
void setTorrc(const QString &torrc)
void setRejectPlaintextPorts(const QList< quint16 > &ports)
QString toString(AuthenticationMethod type) const
QString getSocketPath() const
static QString hashPassword(const QString &password)
bool apply(QString *errmsg=0)
virtual QVariant localValue(const QString &key) const
#define TOR_ARG_COOKIE_AUTH
QString win32_program_files_folder()
void setDefault(const QString &key, const QVariant &val)
#define SETTING_WARN_PLAINTEXT_PORTS
void setBootstrapFrom(const QString &from)
#define SETTING_BOOTSTRAP
#define TOR_ARG_HASHED_PASSWORD
#define SETTING_REJECT_PLAINTEXT_PORTS
QString getExecutable() const
#define SETTING_CONTROL_ADDR
QString getControlPassword() const
quint16 getControlPort() const
QHostAddress getControlAddress() const