no server needed • full encrypted • public / private key management • send files encrypted • rooms • send formatted source code • avatars for users • emoticons • opensource • free

confidentiality

confidentiality

SUM uses RSA encryption for sending messages and files. The optional php backend only holds the encrypted data for locating other users, not for communication.

authenticity

authenticity

SUM offers a key management. This allows the receiver to verify the identity of the other user for every single message.

full featured chat

full featured chat

SUM is a full featured instant messenger chat application for your desktop. User can create rooms, set avatars, send files, send links, use emoticons, ...

Installation & Configuration

Download and unzip sum.zip. You can start sum by executing sum.exe.

You can configure SUM by adding config.ini in the same folder as your sum.exe. You can also enter the path of the config.ini as command line argument for sum.exe.

Before you can use SUM you have to configure first how your chat clients will find each other. You can choose between using a network drive (shared directory) or using a php based backend script on a webserver.

Using a network drive or shared directory

If you use a shared folder as backend then insert following values in your config.ini. You have to specify myserver/simfolder:

userlist = file
user_file = //myserver/simfolder/userfile.json
user_file_extended = //myserver/simfolder/?
lock_file = //myserver/simfolder/userfile.lock
                        

Using the little backend script on a webserver

You can also use the backend.php on your webserver. This little script saves the userlist in a sqlite database (you don't have to configure anything, just give the script write permissions to the folder backend.php is in). Before the SUM client saves the data in the backend.php script it encrypts it. You can specify the AES password. Only your clients can decrypt the data stored on the webserver.

userlist = web
web_url = http://myserver/sum/backend.php
aes_key = mysecretpassword
sha256_salt = anysaltstring
                        

Configuration

You can configure following values in your config.ini. See default.ini for default settings.

Parameter Description
userlist use file or web for using file based or web based (backend.php) userlist management
web_url if you use web for parameter userlist this specifies the url where backend.php runs
aes_key This specifies the AES password for encrypting the userfile and any data the backend.php script will save on server
sha256_salt salt for password hashing
user_file if you use file for parameter userlist this specifies the path of the userlist file where all users register themself
user_file_extended if you use file for parameter userlist this specifies the path of the file where a user saves data as their avatar, key, ip and port which changes rarely
lock_file if you use file for parameter userlist this specifies the lock file for ensuring that only one user access the userfile at once
iv initialization vector for AES encryption
language language de for German, en for English
version_file path of version file. There you can enter the newest SUM version and all user which has a lower version will get a note about an update
version_update url to the newest version for downloading
version_update_intervall how often version file will be checked
user_timeout set user status to offline after ms inactivity
user_remove remove users from list after ms inactivity
user_list_update_intervall update every n seconds users entry in userlist file
lock_stale max age in milliseconds of lock file (when user quits before release lock file)
lock_retry_minimum retry in minimum random ms when file is locked
lock_retry_maximum retry in maximum random ms when file is locked
notification_reminder timeout for notification about unread messages reminder in ms
excluded_ips ips which will be ignored on creating server (e.g. for excluding local virtual machine network devices)
conversation_items amount of chat messages until "show more" will be shown
about_url url for menue entry 'about sum'
highlight_languages_value supported highlight.js languages in code input selection (replace value by language key)
welcome_text welcome text which will be shown on startup