Evgeny Poberezkin
aff2d73e45
build SMP server on tags ( #127 )
...
* build SMP server on tags
* stack test -> stack build --test
2021-05-04 08:37:48 +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
1c7d7e5083
base64 encode keyhash in DB ( #126 )
2021-05-03 15:52:41 +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
b517d793d8
only allow correct key and signature sizes, improve timing mitigation ( #121 )
2021-05-03 12:31:23 +01:00
Evgeny Poberezkin
76e81e1cf0
fix duplex connection diagram link
2021-05-03 10:13:55 +01:00
Evgeny Poberezkin
4ec548f8b8
fix diagram links
2021-05-03 10:12:33 +01:00
Evgeny Poberezkin
885dda21ec
Merge branch 'master' of simplex-chat (protocol)
2021-05-03 10:09:56 +01:00
Evgeny Poberezkin
8aabb6f0e6
move files to protocol folder
2021-05-03 10:06:16 +01:00
Evgeny Poberezkin
d4378461ab
package.yaml: rename simplex-messaging to simplexmq and update version ( #124 )
2021-05-02 21:07:45 +01:00
Efim Poberezkin
28ddef2d9c
docs, smp: align with implementation ( #43 )
...
* adjust out-of-band message abnf
* define hostname and encoded using prose-val
* elaborate on base64
* corrections up to SMP procedure
* fix CONN -> NEW
* update SMP protocol to align with the implementation
* remove Possible extensions from TOC
* lists
* corrections
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
2021-05-02 19:15:40 +01:00
Evgeny Poberezkin
7df39e9db3
update SMP version ( #123 )
2021-05-02 18:56:08 +01:00
Evgeny Poberezkin
aac23c6481
SMP agent protocol commands semantics ( #44 )
2021-05-02 18:47:16 +01:00
Evgeny Poberezkin
af408d50bf
Merge pull request #82 from simplex-chat/v2
2021-05-02 11:34:24 +01:00
Evgeny Poberezkin
93956b65c2
Merge branch 'master' into v2
2021-05-02 11:23:41 +01:00
Efim Poberezkin
b7902ee4c8
agent sqlite: store msg hashes and integrity ( #118 , #119 , #120 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2021-05-02 10:48:31 +04:00
Evgeny Poberezkin
633b3a4bda
mitigate timing attack to determine if queue exists ( #117 )
...
* mitigate timing attack to determine if queue exists
* remove timing for authenticated SEND command
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
2021-05-01 22:07:25 +01:00
Evgeny Poberezkin
829c198e5f
reserve block size (32 bit) and protocol (16 bit) in client handshake block ( #116 )
...
* reserve block size (32 bit) and protocol (16 bit) in client handshake block
* update function names
* fix abnf
2021-05-01 21:58:35 +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
729cf10ad8
test: SMP server store log ( #109 )
...
* test: SMP server store log
* test: extend store log test: queue deletion, log compacted
* test: check store log length in lines
2021-04-29 07:23:32 +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
5fec6c1755
Sign and verify agent messages ( #106 )
...
* sign and verify agent messages with key sent in HELLO (TODO: hardcoded block size - should use size from handshake; verify signature of HELLO message itself; possibly, different MSG status if signature was not verified (currently ignored) or failed to verify (currently fails with AGENT A_ENCRYPTION - alternatively, change it to AGENT A_SIGNATURE))
* remove hardcoded block size, make it 4096 bytes
* verify signature of HELLO message before it is added to RcvQueue
* refactor
* update doc
* rename functions
2021-04-26 20:05:46 +01:00
Evgeny Poberezkin
cddff78719
binary X509 encoding for RSA key send during transport handshake ( #105 )
2021-04-24 12:46:57 +01:00
Efim Poberezkin
65ad2eb6a8
docs, smp, chore: remove multiline sentences line breaks; uniform lists ( #42 )
2021-04-19 23:14:40 +04:00
Evgeny Poberezkin
3187bc8140
chat: add connection errors in chat, fix catch ( #103 )
2021-04-19 08:40:23 +01:00
Efim Poberezkin
40ad6db51a
return error on creation of duplicate connection ( #102 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2021-04-19 00:46:01 +04:00
Evgeny Poberezkin
5e3bc7ee6c
improve error handling ( #101 )
...
* inventory of error handling problems and types
* Change SMP protocol errors syntax
* connection errors in agent protocol (ERR CONN), STORE error -> AGENT error
* include exception in SEInternal error
* add MESSAGE errors, remove CRYPTO and SIZE errors
* agent protocol SYNTAX and AGENT errors
* BROKER errors
* group all client command (and agent response) errors
* BROKER TRANSPORT error
* simplify Client
* clean up
* transport errors
* simplify client
* parse / serialize agent errors
* differentiate crypto errors
* update errors.md
* make agent and SMP protocol errors consistent, simplify
* update doc
* test: parse / serialize protocol errors with QuickCheck
* add String to internal error
* exponential back-off when retrying to send HELLO
* refactor Client.hs
* replace fold with recursion in startTCPClient
* fail test if server did not start, refactor
* test: wait till TCP server stops
* test: refactor waiting for server to stop
* test: fail with error if server did not start/stop
2021-04-18 18:37:54 +01:00
Evgeny Poberezkin
9104ff0c4a
Merge branch 'master' into v2
2021-04-18 17:03:25 +01:00
Evgeny Poberezkin
65db5cfa18
duplex procedure, update diagram ( #41 )
...
* duplex procedure, update diagram
* reduce svg whitespace
* update svg
2021-04-18 07:34:47 +01:00
Evgeny Poberezkin
5c1e9682c8
streams rfc draft ( #64 )
...
* streams rfc draft
* typos
* update streams RFC
Co-authored-by: Efim Poberezkin <efim.poberezkin@gmail.com >
2021-04-17 08:10:23 +01:00
Evgeny Poberezkin
36dad0ba86
SMP agent protocol - duplex messaging ( #39 )
...
* duplex messaging commands syntax
* update duplex messaging commands
* update duplex commands/responses
* SMP messages between agents
* error for multiple skipped messages
* more syntax
* more syntax
* add diagram: creating duplex connection
* fix diagram link
* update diagram
* update duplex diagram
* add queue statuses to the diagram
* add "try sending" periods to duplex diagram
* diagram: queue status (receive/send)
* update queue status
* simplify duplex connection to only have two queues
* remove error notification sent to another agent, only notify user
* remove unused commands, add "unsubscribed" notification
* simplified commands and added connection invitation syntax
* update SMP agent protocol
* duplex protocol correction
* corrections (#40 )
* SMP agent protocol
* rename duplex-messaging to agent-protocol
* minor fixes
* SMP agent protocol corrections
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
2021-04-16 19:56:53 +01:00
Evgeny Poberezkin
417066c462
change missing IDs message status syntax ( #100 )
2021-04-16 18:48:13 +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
19520787a6
0.2.2
2021-04-11 18:10:31 +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
Efim Poberezkin
6c7e013007
0.2.1
2021-04-10 16:49:40 +04: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