File Exchanger Tool 0.0.9.9 --------------------------- File Exchanger (file_exchanger) Tool is a peer-to-peer files exchanger for Windows/Linux platform. File Exchanger (file_exchanger) Tool ® Copyright © 2018-2019 by SManSoft Overview -------- The main features of File Exchanger (file_exchanger) Tool: - transfer of files from client to server, using open socket connections; - transfer of files from client to server, using SSL connections; - control of entirety of received files, comparing of checksum values sent and received files, using CRC-32 algorithm; - using transfer of files from client to server, using SSL connections; - using follow SSL mode/algorithms (TLSv1.2), if SSL connection is used: ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 - version TLS - the protocol used ECDHE - the key exchange mechanism ECDSA - the algorithm of the authentication key AES - the symmetric encryption algorithm 256 - the key size of AES GCM - the mode of AES SHA384 - the MAC used by the algorithm prime256v1 (NIST P-256, secp256r1) - Elliptic Curve, that is used by ECDHE and ECDSA; - using unique CA of client and server certificates; - user can update CA, client/server keys/certificates, using suite of scripts ssl.ecdsa.tar.gz (ReadMe.txt in ssl.ecdsa.tar.gz); - using of xml configuration files, which can be updated by user and will be applied without restart of processes (sm_file_send_clns, sm_file_send_srvs); - scanning of configured directories, where sent files can be copy; - copying of sub-directories with files, saving of sub-directories tree at the server side; - support of unicode symbols in file/directory names; - backup of sent/received files; - server and client modules can be launched as Services (Windows)/Daemons (Linux); - tool applications don't use any intermediate servers and transfer files directly between client and server; Install ----- Installed packages: Linux (x86_64 only): file_exchanger-x.x.x.x-Linux-x64.run base installer, that unpacks installation files to current directory; also this installer launches (requires root permissions) script share/smansoft/scripts/install.sh that creates /var/lib/smansoft and /var/log/smansoft directories, some sub-directories tree and several configuration files; file_exchanger-x.x.x.x-Linux-x64.tar.gz binary version, equals to unpacked above binary code; user should launch (requires root permissions) script share/smansoft/scripts/install.sh for creating of necessary directories (/var/lib/smansoft, /var/log/smansoft) and configuration files; file_exchanger_portable-x.x.x.x-Linux-x64.tar.gz binary portable version, that uses only unpacked directories, during work; user can change default directories (in configuration), where files are processed (read and saved); Windows (x86 and x86_64): file_exchanger-x.x.x.x-Windows-xxx.exe base standard installer; installer launch several .bat scripts, which creates directories %ALLUSERSPROFILE%\smansoft or %LOCALAPPDATA%\smansoft or %APPDATA%\smansoft , some sub-directories tree, several configuration files, creates and launches services; file_exchanger-x.x.x.x-Windows-xxx.zip binary version, equals to unpacked above binary code; user should launch (requires Administrator permissions) script share/smansoft/scripts/install_config.bat share/smansoft/scripts/install_services.bat for creating of necessary directories and configuration files; file_exchanger_portable-x.x.x.x-Windows-xxx.zip binary portable version, that uses only unpacked directories, during work; user can change default directories (in configuration), where files are processed (read and saved); Unpacked directories: bin share smansoft common doc sm_file_send_cln keys sm_file_send_clns keys sm_file_send_srv keys sm_file_send_srvs keys sm_file_send_w cln_backups cln_out srv_backups srv_in bin - main binary directory; share/smansoft/common - directory, where is saved all common configuration files; user can cnahge files: sm_file_send_clns.xml, sm_file_send_srvs.xml; share/smansoft/scripts - directory, that contain scripts (bash and Windows batch), which are used during install and scripts for launch/kill of Linux daemons; share/smansoft/doc - doc directory; share/smansoft/sm_file_send_cln (sm_file_send_clns, sm_file_send_srv, sm_file_send_srvs) - home data of applications; keys - directories, which contain keys and certificates of applications, which are used in SSL connections; share/smansoft/sm_file_send_w/cln_backups - directory, where sm_file_send_clns backups all sent files (by default) (can be changed); share/smansoft/sm_file_send_w/cln_out - directory, which is scanned by sm_file_send_clns (by default) (can be changed); share/smansoft/sm_file_send_w/srv_backups - directory, where sm_file_send_srvs backups all received files (by default) (can be changed); share/smansoft/sm_file_send_w/srv_in - directory, where sm_file_send_srvs saves all received files (by default) (can be changed); Usage ----- sm_file_send_cln command line tool, reads files from directory, defined by -d, --out_dir= and backups sent files in -b, --back_dir= Logs are saved in directory: standard version: Linux: /home//.local/share/smansoft/sm_file_send_cln/log Windows: %LOCALAPPDATA%\smansoft\sm_file_send_cln\log portable version: Linux/Windows: [application dir]/var/log/smansoft/sm_file_send_cln/log Tool can read all sub-directories in -d, if used defined -s, --sub_dirs usage: sm_file_send_cln [OPTION] -h, --help display this help... -n, --send_files send files... -d, --out_dir= output directory... -b, --back_dir= backup directory... -f, --file= send only one file... -a, --server_address= ip address of the server... -p, --server_port= tcp port of the server... -l, --use_ssl use ssl for tcp connection... -s, --sub_dirs scan sub-directories... sm_file_send_srv command line tool, writes files to directory, defined by -d, --in_dir= and backups files in -b, --back_dir= i.e. if contains same file and client send file with same name, source file will be saved in and new file will be received and saved in ; server opens two server socket connections for open and secured (SSL) connections, defined by -p, --port= and -l, --ssl_port=; Logs are saved in directory: standard version: Linux: /home//.local/share/smansoft/sm_file_send_srv/log Windows: %LOCALAPPDATA%\smansoft\sm_file_send_srv\log portable version: Linux/Windows: [application dir]/var/log/smansoft/sm_file_send_srv/log usage: sm_file_send_srv [OPTION] -h, --help display this help... -s, --start_server start server... -d, --in_dir= input directory... -b, --back_dir= backup directory... -p, --port= tcp port... -l, --ssl_port= ssl tcp port... sm_file_send_clns command line tool/service/daemon, reads files from directory, defined by (sm_file_send_clns.xml) and backups files in (sm_file_send_clns.xml); If version of sm_file_send_srvs is portable, and are empty (by default) and sm_file_send_srvs uses [application dir]/share/smansoft/sm_file_send_w/cln_out [application dir]/share/smansoft/sm_file_send_w/cln_backups ; application, that can be launched as standard application, as service (Windows) or daemon (Linux); application, reads configuration file sm_file_send_clns.xml from standard version: Windows: %ALLUSERSPROFILE%\smansoft\common Linux: /var/lib/smansoft/common portable version (Windows/Linux): [application dir]/share/smansoft/common directory; user can use scripts (share/smansoft/scripts) run_clns_cu.sh (current user) run_clns_root.sh (root) kill_clns_cu.sh (current user) kill_clns_root.sh (root) for launch/kill linux daemons; if user uses these scripts, daemon creates sm_file_send_clns.pid file in /var/lib/smansoft/run or in [application dir]/share/smansoft/run ; user can change sm_file_send_clns.xml and changed parameters will be applied without restart of the sm_file_send_clns process/service/daemon; command line tool, reads files from directory, defined by -d, --out_dir= and backups sent files in -b, --back_dir= Logs are saved in directory: standard version: Linux: /home//.local/share/smansoft/sm_file_send_clns/log Windows: %LOCALAPPDATA%\smansoft\sm_file_send_clns\log portable version: Linux/Windows: [application dir]/var/log/smansoft/sm_file_send_clns/log usage (Windows): sm_file_send_clns [OPTION] --registerService Register the application as a service. --unregisterService Unregister the application as a service. --displayName=name Specify a display name for the service (only with /registerService). --description=text Specify a description for the service (only with /registerService). --startup=automatic|manual Specify the startup mode for the service (only with /registerService). -h, --help display this help... usage (Linux): sm_file_send_clns [OPTION] --daemon Run application as a daemon. --umask=mask Set the daemon's umask (octal, e.g. 027). --pidfile=path Write the process ID of the application to given file. -h, --help display this help... sm_file_send_srvs command line tool/service/daemon, writes files to directory, defined by (sm_file_send_srvs.xml) and backups files in (sm_file_send_srvs.xml); If version of sm_file_send_srvs is portable, and are empty (by default) and sm_file_send_srvs uses [application dir]/share/smansoft/sm_file_send_w/srv_in [application dir]/share/smansoft/sm_file_send_w/srv_backups ; application, that can be launched as standard application, as service (Windows) or daemon (Linux); application, reads configuration file sm_file_send_srvs.xml from standard version: Windows: %ALLUSERSPROFILE%\smansoft\common Linux: /var/lib/smansoft/common portable version (Windows/Linux): [application dir]/share/smansoft/common directory; user can use scripts (share/smansoft/scripts) run_clns_cu.sh (current user) run_clns_root.sh (root) kill_clns_cu.sh (current user) kill_clns_root.sh (root) for launch/kill linux daemons; if user uses these scripts, daemon creates sm_file_send_clns.pid file in /var/lib/smansoft/run or in [application dir]/share/smansoft/run ; Logs are saved in directory: standard version: Linux: /home//.local/share/smansoft/sm_file_send_srvs/log Windows: %LOCALAPPDATA%\smansoft\sm_file_send_srvs\log portable version: Linux/Windows: [application dir]/var/log/smansoft/sm_file_send_srvs/log File Exchanger (file_exchanger) Tool is a free software distributed under the MIT. Read License.txt for more information about license. Please, send your notes and questions to mailto:info@smansoft.com . --------------------------- End of document