Difference between revisions of "Client Setup"

From Titan Wiki
Jump to navigation Jump to search
(Added router part)
 
m (Minor edity)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
In the .toml file you'll find all adjustable settings for Titan. Everything from the encryption layer in a group, to which files you share.
+
In the .toml file you'll find all adjustable settings for Demonsaw. Everything from the encryption layer in a group, to which files you share.
  
'''Please note:''' Not all elements here are in your .toml file, and they don't need to! Titan will automatically create missing fields if changed in-app.
+
'''Please note:''' Not all elements here are in your .toml file, and they don't need to! Titan will automatically create missing fields if changed in-app. And almost all attributes specified here are possible to change within the GUI.
  
 
== global ==
 
== global ==
Line 20: Line 20:
  
 
:<code>name</code> is the name of your client.
 
:<code>name</code> is the name of your client.
:<code>threads</code> defines the amount of concurrent threads the app will use when transferring files. '''Default = 4'''
+
:<code>threads</code> defines the amount of concurrent threads the app will use when scanning files. This value should reflect number of threads available on the CPU inclusive virtual.  '''Default = 4'''
 
:<code>enabled</code> defines whether your client is enabled, and will automatically connect to the specified router once you open the app. '''Default = true'''
 
:<code>enabled</code> defines whether your client is enabled, and will automatically connect to the specified router once you open the app. '''Default = true'''
 
::'''Note:''' this value will change depending on the state of your client when you close Titan. If your client is disconnected when you close the app, this value will become "false".
 
::'''Note:''' this value will change depending on the state of your client when you close Titan. If your client is disconnected when you close the app, this value will become "false".
Line 80: Line 80:
 
=== client.verified ===
 
=== client.verified ===
  
This field is normally absent, and will continue to be so until further notice...
+
In order to appear as a [[Verified users|verified user]], you'll have to manually add this section to your demonsaw.toml file. Note that the router owner will have to do some changes on their toml file as well. Go to [[Router Setup#router.verified|Router Setup]] to see what.
  
 +
All values are '''case sensitive'''!<br/>
 +
:1. You need to create a hash for the router owner. You can create one here: http://www.freecodeformat.com/pbkdf2.php
 +
:2. Enter the name of your client in the <code>Data Input</code> field, for example "BBQ Spice" (without quotation marks), and then click the <code>PBKDF2</code> button.
 +
:3. A new row will spawn and you'll need to fill out following:
 +
::<code>Key length</code> choose your length (for example 256).
 +
::<code>Salt</code> some salt to season your hash, for example "charcoal taste salt 443".
 +
::<code>Number of iterations</code> choose your iterations (for example 16384).
 +
::'''Note:''' It would be smart to write this down somewhere safe, in case you decide to mess up your demonsaw.toml file.
 +
:4. Once everything is filled out and your key and salt is written down click <code>Hash</code>.
 +
:5. Copy the hash presented, and send it to the router admin together with the name of your client.
 +
:6. Close Demonsaw, open demonsaw.toml, insert the following at the end of the file:
 +
-Example-<br/>
 +
<pre>[client.verified]
 +
salt = "charcoal taste salt 443"
 +
hash = "sha1"
 +
iterations = 16384
 +
key = "BBQ Spice"
 +
key_size = 256</pre>
 +
'''Note:''' All properties need a value, if not this section will be lost when saved.
 +
:7. Save, close, and start Demonsaw again
 +
:8. If all went well and the router admin likes you, you should now be verified and have the verified tick on the side of your screen name.
  
== Router ==
+
'''Note:''' Most printable characters (including Unicode) should work, as long as you enclose it in double quotation marks.
  
If you want to run your own router, these are the settings you need to care about. Note that you might need to do some [https://en.wikipedia.org/wiki/Port_forwarding port forwarding] in order for others to connect to you.
+
== Example ==
 +
This is an example of a working toml:
  
:<code>enabled</code> defines whether the router is enabled or not. '''Default = true'''
+
<pre>[global]
:<code>threads</code> defines max threads that should be allocated to the router. '''Default = 128'''<br/>
+
  user_colors = 1
::'''Note:''' The more threads the more people can join the router (1 user will use around 2 threads or so).
+
  active_tab = 0
:<code>name</code> defines the (local) name of your router.
+
  auto_open = 1
:<code>address</code> defines the IP address your router should bind to. This should be "127.0.0.1", but can also be your internal IP.<br/>
+
  statusbar = 1
::'''Note:''' This is <u>NOT</u> the IP that others will use to connect to you with (unless they are on your local network). The IP others will have to use is you external IP, and can be found by simply searching for "What is my IP" on a search engine.
+
  timestamps = 1
:<code>password</code> defines the password required for client to connect to your router. '''Optional'''
+
  upload_speed = 0
:<code>port</code> defines the port your router will bind to. '''Default = 8000'''<br/>
+
  font_size = 0
::'''Note:''' Some operating systems restrict some port ranges (usually all ports < 1024). Default ports for HTTP & HTTPS are 80 & 443. For alternative ports, [https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers click here].
+
  theme = "C:/demonsaw/theme/style_sunset.css"
 
+
  download_speed = 0
=== router.option ===
+
  qt_geometry = [""] # Here goes a lot of gibberish, automatically generated
 
+
  qt_state = [""] # Here goes even more gibberish, automatically generated
:<code>buffer_size</code> defines the size of your buffer. '''Default = 32'''
+
[[client]]
:<code>motd</code> defines the Message Of The Day, and is the message the router will send to a client that has successfully connected. '''Optional'''
+
  name = "Cool Client"
:<code>redirect</code> defines an URL that a user will be redirected to if connecting through a browser. '''Optional'''
+
  threads = 4
 
+
  enabled = true
=== router.room ===
+
  color = "ffee00ff"
 
+
  [[client.share]]
This section creates a chat room available for anyone to join in the public group on your router. This room will not be available for anyone in a private group. One room is made for each copy of this section.
+
    path = "G:/Music"
 
+
    enabled = true
:<code>enabled</code> defines whether the room is enabled or not. '''Default = true'''
+
  [[client.share]]
:<code>name</code> defines the name of the room as it is shown to connected clients.
+
    path = "C:/demonsaw/demonsaw.zip"
:<code>color</code> defines the color of the room. Because colors. '''Example:''' "#ffe56ffe"
+
    enabled = true
 
+
  [[client.router]]
=== router.router ===
+
    port = 80
 
+
    name = "Eijah's"
This section defines your transfer router(s). Copy this section for however many transfer routers you want to use.
+
    enabled = true
 
+
    address = "router.demonsaw.com"
:<code>enabled</code> defines whether this transfer router should be enabled or not. '''Default = true'''
+
    password = ""
:<code>name</code> defines the (local) name of this transfer router.
+
  [client.option]
:<code>address</code> defines the address of your transfer router.
+
    mode = 11690
:<code>port</code> defines the port to use for this transfer router. '''Default = 80'''
+
    timestamp = "%H:%M:%S" # Alternatively "%I:%M:%S %p" for 12h timestamp
 +
    max_downloads = 4
 +
    salt = ""
 +
    hash = "md5"
 +
    buffer_size = 16
 +
    path = "G:/Downloads"
 +
    chunk_size = 131072
 +
    max_uploads = 4
 +
  [[client.group]]
 +
    enabled = false
 +
    cipher = "aes"
 +
    percent = 100.000
 +
    entropy = ""
 +
    key_size = 256
 +
    salt = ""
 +
    hash = "sha256"
 +
    iterations = 1
 +
  [client.session]
 +
    cipher = "aes"
 +
    algorithm = "dh"
 +
    prime_size = 128
 +
    key_size = 256
 +
    salt = ""
 +
    hash = "sha256"
 +
    iterations = 1
 +
  [client.verified]
 +
    salt = "Salty"
 +
    hash = "sha1"
 +
    iterations = 1337
 +
    key = "Cool Client"
 +
    key_size = 256</pre>

Latest revision as of 17:33, 25 April 2018

In the .toml file you'll find all adjustable settings for Demonsaw. Everything from the encryption layer in a group, to which files you share.

Please note: Not all elements here are in your .toml file, and they don't need to! Titan will automatically create missing fields if changed in-app. And almost all attributes specified here are possible to change within the GUI.

global

user_colors defines {insert some smart sentence here}
active_tab defines which tab were last active when you close the app. Default = 0
auto_open defines whether tabs should be auto-opened when there's activity in them (e.g. download tab). Default = 1
statusbar defines whether the statusbar should be visible or not. Default = 1
timestamps defines whether timestamp should be visible or not. Default = 1
font_size defines the size of all texts in the app. Default = 13
theme defines the location of a CSS file to change the theme of Titan. Optional
upload_speed defines the throttling speed of uploads in Mbps. Default = 0 (no throttle)
download_speed defines the throttling speed of downloads in Mbps. Default = 0 (no throttle)
qt_geometry is just some Qt gibberish to remember the size and location of different windows. No need to change this.
qt_state is just some Qt gibberish to remember the size and location of different windows. No need to change this.

client

name is the name of your client.
threads defines the amount of concurrent threads the app will use when scanning files. This value should reflect number of threads available on the CPU inclusive virtual. Default = 4
enabled defines whether your client is enabled, and will automatically connect to the specified router once you open the app. Default = true
Note: this value will change depending on the state of your client when you close Titan. If your client is disconnected when you close the app, this value will become "false".
color defines the color of your client.

client.share

One [[client.share]] per folder/file shared.

path defines the location of the folder or file you want to share.
enabled defines whether you are actively sharing this file or folder when you are connected.

client.router

port is which port you will connect to. Default = 80
name is the local name of the router. Optional
enabled defines whether you'll connect or not when you start the app. Default = true
address is the address (either a URL or IP) E.g. router.demonsaw.com or 192.254.75.74
password defines a password for connecting to the router. Wrong password will make the router refuse connection. Default = ""

client.option

mode {insert smart sentence here as well}
timestamp defines the time/date format to use in chat. 12H format: "%I:%M:%S %p" 24H format: "%H:%M:%S"
max_downloads defines the max number of concurrent file downloads. Default = 4
salt defines the salt to apply to the hashing of your shred files/folders. Optional
hash defines the type of hashing you want to use for you shared files/folders. Default = md5
buffer_size defines the amount of chunks your client requests to be buffered by the router. Default = 16
path defines the default downloads path for your client. If none is specified, Windows will use "C:/Users/user/Downloads", and Linux will use "something".
chunk_size defines the size (in bytes) of each chunk to request from uploaders.
Note: If you have a slow/intermittent connection, you should considering lowering this value. Default = 786432
max_uploads defines the max number of concurrent file uploads. Default = 4

client.group

One [[client.group]] per layer of encryption. All layers will be combined for increased security. You will NOT join several groups with several layers!

enabled defines whether this certain layer is enabled and used or not. Default = true
cipher defines the type of cipher you want to use for this layer. Default = aes
percent defines the percent of the file/string/URL content you want to use. Nice to reduce when you have a large file. Default = 100.000
entropy defines the entropy of your layer. This can be a file, plain text string, or the content of a URL (HTTPS not supported (yet)). Required!
key_size defines the size of the key (in KB) used. Default = 256
salt defines the salt to be used along with the entropy in this layer. Optional
hash defines the type of hash to be used in this layer. Default = sha256
iterations defines the number of iterations for this layer. Note that the whole hashing/salting process is repeated for the entropy, therefore bigger sized entropy will take very long with more iterations. Default = 1

client.session

This is the options for the encryption of the session between you and the router.

cipher defines the type of cipher you want to use for this session. Default = aes
algorithm defines the type of algorithm to use when exchanging keys with the router. Default = dh
prime_size defines the size of your prime (in KB). Default = 128
key_size defines the size of the key (in KB). Default = 256
salt defines the salt to be used. Default = ""
hash defines the type of hash to use. Default = sha256
iterations defines the number of iterations for this encryption. Default = 1

client.verified

In order to appear as a verified user, you'll have to manually add this section to your demonsaw.toml file. Note that the router owner will have to do some changes on their toml file as well. Go to Router Setup to see what.

All values are case sensitive!

1. You need to create a hash for the router owner. You can create one here: http://www.freecodeformat.com/pbkdf2.php
2. Enter the name of your client in the Data Input field, for example "BBQ Spice" (without quotation marks), and then click the PBKDF2 button.
3. A new row will spawn and you'll need to fill out following:
Key length choose your length (for example 256).
Salt some salt to season your hash, for example "charcoal taste salt 443".
Number of iterations choose your iterations (for example 16384).
Note: It would be smart to write this down somewhere safe, in case you decide to mess up your demonsaw.toml file.
4. Once everything is filled out and your key and salt is written down click Hash.
5. Copy the hash presented, and send it to the router admin together with the name of your client.
6. Close Demonsaw, open demonsaw.toml, insert the following at the end of the file:

-Example-

[client.verified]
salt = "charcoal taste salt 443"
hash = "sha1"
iterations = 16384
key = "BBQ Spice"
key_size = 256

Note: All properties need a value, if not this section will be lost when saved.

7. Save, close, and start Demonsaw again
8. If all went well and the router admin likes you, you should now be verified and have the verified tick on the side of your screen name.

Note: Most printable characters (including Unicode) should work, as long as you enclose it in double quotation marks.

Example

This is an example of a working toml:

[global]
  user_colors = 1
  active_tab = 0
  auto_open = 1
  statusbar = 1
  timestamps = 1
  upload_speed = 0
  font_size = 0
  theme = "C:/demonsaw/theme/style_sunset.css"
  download_speed = 0
  qt_geometry = [""] # Here goes a lot of gibberish, automatically generated
  qt_state = [""] # Here goes even more gibberish, automatically generated
[[client]]
  name = "Cool Client"
  threads = 4
  enabled = true
  color = "ffee00ff"
  [[client.share]]
    path = "G:/Music"
    enabled = true
  [[client.share]]
    path = "C:/demonsaw/demonsaw.zip"
    enabled = true
  [[client.router]]
    port = 80
    name = "Eijah's"
    enabled = true
    address = "router.demonsaw.com"
    password = ""
  [client.option]
    mode = 11690
    timestamp = "%H:%M:%S" # Alternatively "%I:%M:%S %p" for 12h timestamp
    max_downloads = 4
    salt = ""
    hash = "md5"
    buffer_size = 16
    path = "G:/Downloads"
    chunk_size = 131072
    max_uploads = 4
  [[client.group]]
    enabled = false
    cipher = "aes"
    percent = 100.000
    entropy = ""
    key_size = 256
    salt = ""
    hash = "sha256"
    iterations = 1
  [client.session]
    cipher = "aes"
    algorithm = "dh"
    prime_size = 128
    key_size = 256
    salt = ""
    hash = "sha256"
    iterations = 1
  [client.verified]
    salt = "Salty"
    hash = "sha1"
    iterations = 1337
    key = "Cool Client"
    key_size = 256