Evgeny Poberezkin
e0acb42a28
Merge branch 'stable'
2021-12-17 15:44:58 +00:00
Evgeny Poberezkin
5f7fe8b0dc
remove client from servers subscribers map after client disconnection ( #228 )
...
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
2021-12-17 16:28:48 +04:00
Evgeny Poberezkin
323fb1f03c
remove SMP server signing responses ( #226 )
...
* remove SMP server signing responses
* keep only one session ID
2021-12-16 07:15:45 +00:00
Efim Poberezkin
de01692ffd
enable WebSockets over TLS ( #225 )
2021-12-15 22:58:47 +04:00
Evgeny Poberezkin
5aa0e97cd9
sign server responses
2021-12-15 11:52:09 +00:00
Evgeny Poberezkin
83d352cfbe
TLS 1.3 transport ( #203 )
...
* TLS as Transport class instance with pre-defined server certificate/key
* refactor error logging
* remove Ed25519
* refactor TLS.cGet
* TLS over TCP for Transport
* Plain -> TLS
* comment
* getLn, change supported cipher
* use non fixed certificates
* comment
* check options earlier
* wording
* headers
* Update apps/smp-server/Main.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* Update apps/smp-server/Main.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* localhost -> server
* Update apps/smp-server/Main.hs
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* remove comment
* agent key and cert fixtures WIP
* certificate and key in correct order
* exitFailure
* refactor loadServerCertificate
* remove liftIO
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
2021-12-15 07:48:57 +00:00
Evgeny Poberezkin
acf5c15a05
increase SMP queue ID and message ID size to 24 bytes
2021-12-12 23:17:21 +00:00
Evgeny Poberezkin
f6991539a2
add server signature keys and DH keys for server->recipient msg bodis to SMP commands (server store log and agent tests are skipped)
2021-12-12 12:22:44 +00:00
Evgeny Poberezkin
e1002d5ac0
GADTs for cryptographic keys ( #208 )
...
* GADTs for cryptographic keys
* update tests (signature timing tests still fail)
* fix signature verification timing tests
* configurable algorithm to sign commands to SMP queues (Ed448 by default)
* add dummy Ed keys, add timing tests for Ed keys
* re-enable Connection subscriptions tests
2021-11-28 11:44:22 +00:00
Evgeny Poberezkin
99b3749890
simplify RSA private key types ( #207 )
...
* simplify RSA private key types
* remove updateSignKey method
2021-11-28 07:08:47 +00:00
Efim Poberezkin
51491d9cd5
Merge branch 'master' into v4
2021-09-09 01:10:41 +10:00
Evgeny Poberezkin
d23254f44a
SMP block size via config, the client can override size set by the server ( #188 )
2021-09-03 20:16:10 +01:00
Evgeny Poberezkin
cb950ae2e4
add SMP queue quota to server config (and use TBQueue for messages) ( #182 )
2021-08-26 22:54:51 +01:00
Efim Poberezkin
8a4bced569
decrease initial delay for HELLO retries on online activation ( #174 )
...
* decrease initial delay for HELLO retries on online activation
* move retry interval to config
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2021-08-01 13:51:40 +01:00
Nikita Poberezkin
8ac4b77777
create cfg dir before server initialization ( #173 )
2021-07-25 20:29:47 +01:00
Efim Poberezkin
3d9ceff691
ask client for confirmation of sender; make establishment of connection asynchronous ( #163 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2021-07-04 04:48:24 +10:00
Evgeny Poberezkin
7af7272635
SQLiteStore connection pool ( #162 )
...
* SQLiteStore connection pool
* move SQLiteStore to agent env - single store instance is used for all clients
2021-06-25 18:17:11 +01:00
Evgeny Poberezkin
bc780343df
broadcast commands ( #154 )
...
* broadcast commands (WIP)
* broadcasts: store and commands implementation
* test broadcast
* broadcast test
* rename migration, handle SEBadConnType errors
* query semicolons
2021-06-01 18:11:16 +01:00
Evgeny Poberezkin
5962c1bb3e
SMP server CLI commands ( #144 )
...
SMP server CLI commands
2021-05-23 13:10:00 +03:00
Evgeny Poberezkin
5b39f51203
websockets transport ( #139 )
...
* example websockets server
* example of ws client
* type class TConnection for generic TCP/WebSockets implementation
* support WebSockets transport
* rename TConnection methods
* revert runClient to not need transport arg
* pass the list of ports and transports via SMP server config
* remove TypeApplications
* s/Transport/TProxy/, s/TConnection/Transport/
* fix server with multiple transports, make SMP client use WS transport with port 80 (TODO fallback to WS)
2021-05-17 22:33:12 +01:00
Evgeny Poberezkin
4b9ebbbab2
move SMP server from agent commands NEW/JOIN to agent config ( #129 )
...
* move SMP server from agent commands NEW/JOIN to agent config
* fix SMPServer parser
* update agent protocol - server management
* enable agent test
* agent test with 2 servers
* create reply queue on the configured server
* choose random server
* swap bind
2021-05-06 18:53:34 +01:00
Evgeny Poberezkin
377b166d8e
SimplexMQ readme, remove chat client ( #125 )
...
* SimplexMQ readme, remove chat client
* link to license
* add roadmap, corrections
* corrections
* strange dot -> colon
* corrections
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
2021-05-04 07:11:48 +01:00
Evgeny Poberezkin
772b38d154
simplify KeyHash type, store key hash in DB as binary ( #122 )
2021-05-03 12:38:31 +01:00
Evgeny Poberezkin
93956b65c2
Merge branch 'master' into v2
2021-05-02 11:23:41 +01:00
Efim Poberezkin
6be4839703
agent: verify msg integrity based on previous msg hash and id ( #110 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2021-05-02 00:38:32 +04:00
Evgeny Poberezkin
6ceeb2c9db
save keys as binary to db, remove legacy encoding ( #114 )
...
* save keys as binary to db, remove legacy encoding
* import list
2021-04-30 09:13:18 +01:00
Evgeny Poberezkin
bf6e652e41
reduce help size ( #113 )
2021-04-30 09:06:59 +01:00
Mark Aleksander Hil
9a8570c59c
Updated ChatHelpInfo ( #112 )
2021-04-29 10:27:07 +01:00
Evgeny Poberezkin
afc09a6ec4
Store log ( #108 )
...
* StoreLog (WIP)
* add log records to map
* revert Protocol change
* revert Server change
* fix parseLogRecord
* optionally save/restore queues to/from store log
* refactor
* refactor delQueueAndMsgs
* move store log to /var/opt/simplex
* use ini file
2021-04-26 20:34:28 +01:00
Evgeny Poberezkin
816703527a
set different default server ( #107 )
...
* set different default server
* remove comment
2021-04-26 20:18:20 +01:00
Evgeny Poberezkin
cddff78719
binary X509 encoding for RSA key send during transport handshake ( #105 )
2021-04-24 12:46:57 +01:00
Evgeny Poberezkin
3187bc8140
chat: add connection errors in chat, fix catch ( #103 )
2021-04-19 08:40:23 +01:00
Evgeny Poberezkin
326050651a
Merge branch 'master' into v2
2021-04-14 21:30:30 +01:00
Evgeny Poberezkin
0028939155
standard X509/PKCS8 encoding for RSA keys ( #98 )
...
* key encoding primitives (WIP)
* use X509/PKCS8 to read/write server key files
* make PrivateKey type class
* clean up
* remove separate public key file
* specific import
2021-04-14 21:20:08 +01:00
Efim Poberezkin
2eb5ce24ec
tests: block on tcp server creation ( #99 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2021-04-14 02:25:57 +04:00
Evgeny Poberezkin
c4475499ba
remove /reset command ( #96 )
2021-04-12 23:56:17 +01:00
Evgeny Poberezkin
b364f168c8
new chat UX: removed /name, add /delete and /reset, change /accept to /connect, allow command abbreviations ( #95 )
...
* 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
2021-04-11 18:03:55 +01:00
Evgeny Poberezkin
a113067647
fix: initially blocked keys ( #94 )
2021-04-11 11:22:56 +01:00
Evgeny Poberezkin
f6888cc9a2
markdown help ( #93 )
...
* markdown help
2021-04-11 10:17:17 +01:00
Evgeny Poberezkin
07410990a0
fix left arrow key ( #92 )
...
* fix left arrow key
* remove LambdaCase
2021-04-11 09:55:57 +01:00
Evgeny Poberezkin
dbe1c4a781
Secret markdown ( #91 )
...
* secret text markdown
* refactor
2021-04-11 09:54:14 +01:00
Evgeny Poberezkin
45514c0a65
fix multiline output (messages and help) ( #90 )
2021-04-11 09:51:57 +01:00
Evgeny Poberezkin
a594972df0
refactor key handling ( #88 )
...
* refactor key handling
* remove constant change
* simplify
* refactor Downwards
2021-04-10 13:30:58 +01:00
Evgeny Poberezkin
e78b7a66d7
markdown tests ( #86 )
2021-04-10 13:12:28 +01:00
Evgeny Poberezkin
a2016241df
support Home, End and Del keys ( #87 )
...
* add Home and End keys
* support Delete key
* simplify updateTermState
2021-04-10 12:53:22 +01:00
Evgeny Poberezkin
5c44ad0a62
Windows support in editor mode ( #85 )
...
* 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
2021-04-10 11:57:28 +01:00
Evgeny Poberezkin
b8241af7e9
refactor chat terminal ( #83 )
2021-04-08 20:20:06 +01:00
Evgeny Poberezkin
44c5a3142e
Markdown ( #81 )
...
* Markdown type
* Markdown parser (WIP)
* fix markdown parser
* style markdown in messages
* one-letter color abbreviations in markdown
2021-04-08 19:32:38 +01:00
Evgeny Poberezkin
ad73298936
Read server keys from files or create if absent ( #79 )
...
* move server keys to config
* add server keys from files
* create server keys if key files do not exist
* validate loaded server key pair
* refactor fromString functions
* key files in /etc/opt/simplex
2021-04-07 22:59:57 +01:00
Evgeny Poberezkin
59ef46314d
Support windows terminal in basic mode ( #80 )
...
* 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
2021-04-07 20:20:32 +01:00