* remove current user name
* rename /accept to /connect, remove /chat, add /reset, allow 1-letter abbreviations
* update help
* /delete contact, separate response for confirmation
* update invatation instruction
* unset active contact only if it is the same as current
* use System.Terminal for "editor" mode (WIP, does not work in POSIX)
* fix getKey - only return one event on control keys
* fix printing with System.Terminal
* different markdown escape for color, added black color
* fix color escapes
* make black invisible
* markdown fixes
* remove Key type, fix editor bug, refactor
* refactor: use getKey in getTermLine
* default mode is "editor", remove windows warning
* markdown: code snippet
* use ! for color markdown
* edit previous input
* clean up
* use getWindowSize from System.Terminal
* add terminal package
* basic terminal mode with utf8 support in windows
* fix terminal input in basic mode on mac
* test code
* send StyledString to ChatTerminal
* clean up
* support StyledString with System.Terminal
* minor style change
* clean up
* minor style change
* transport encryption (WIP - using fixed key, parsing/serialization works, SMP tests fail)
* transport encryption
* transport encryption: separate keys to receive and to send, counter-based IVs
* docs: update transport encryption and handshake
* transport encryption handshake (TODO: validate key hash, welcome block, move keys to system environment)
* change KeyHash type to newtype of Digest SHA256
* transport encryption: validate public key hash
* send and receive welcome block with SMP version
* refactor: parsing SMPServer
* remove unused function
* verify that client version is compatible with server version (major version is not smaller)
* update (fix) SMP server tests
* windows-compatible getChar without buffering, option to use terminal without editing
* option to choose terminal mode, conditional compilation for Windows
* conditional extension
* add basic terminal mode (no contact insertion)
* option help
* [WIP] add instructions how to build project inside docker container
* docker run -> docker create
* add Dockerfile for building chat executable and instructions
* add instructions on how to run chat client to README
* wording
* wording
* corrections to the manual
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
* separate terminal IO to separate thread via queues
* terminal input arithmetics (WIP)
* editable multiline terminal input
* print messages above input area
* support Up/Down arrows
* terminal chat: move by word, move to the beginning/end of input
* insert active contact when typing starts
* refactor inserting active contact
* highlight "to contact"
* add username to prompt
* change beginning/end of line keys to shoft-arrow
* remove unused code
* add ctrl arrow key bindings
* add comment for debugging keys in terminal
Co-authored-by: Efim Poberezkin <efim.poberezkin@gmail.com>
* add instructions on how to run chat client to README
* wording
* wording
* corrections to the manual
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
* generate key pair
* crypto: sign/verify functions
* remove extension
* parse/serialize keys
* use RSA recipient/sender keys (TODO sign/verify)
* make PublicKey newtype, assign 0s to private_p & private_q
* replace SMP command parsing with Attoparsec
* rename types: Signed->Transmission, Transmission->SignedTransmission
* sign and verify commands (server tests skipped, agent tests pass)
* SMP client: avoid seralizing transmission twice when sending commands
* update SMP server tests to use command signatures
* remove support for "SEND :msg" syntax from SMP server protocol
* rename RSA module name to R to avoid confusion with C used for S.M.Crypto
* update key sizes to use bits `div` 8
* tidy up
* chat prototype
* chat prototype now compiles
* chat prototype works
* agent: respond SENT mId to SEND (instead of OK), ne repsonse to chat message in terminal
* chat prototype help, update commands
* chat CLI options
* add active contact to ChatClient (not used yet)
* refactor agentTransmission
* InviteContact -> AddContact
* automatically insert active contact
* highlight contact in chat
* name for invitations
* do not ask name on start
* change default server to smp.simplex.im