Efim Poberezkin
08b43b42a0
test compilation
2022-02-03 17:20:49 +04:00
Efim Poberezkin
b2fbab5b0f
Postgres POC (duplicated SQLite code)
2022-02-02 12:08:07 +04:00
Evgeny Poberezkin
137ff7043d
use aeson fork with the option to encode/decode nullary constructors as empty objects ( #312 )
...
* use aeson fork with the option to encode/decode nullary constructors as empty objects
* update dependencies
2022-01-29 19:36:02 +00:00
Evgeny Poberezkin
b777a4fd93
split the server dependencies from the agent ( #310 )
...
* split the server dependencies from the agent
* remove redundant imports
* fix Main.hs
2022-01-21 17:33:47 +00:00
Efim Poberezkin
495439adf5
1.0.2
2022-01-21 11:40:49 +04:00
Efim Poberezkin
98fac579c0
switch tls from fork to original repo ( #307 )
2022-01-21 11:26:16 +04:00
Evgeny Poberezkin
a9a6917056
replace file-embed with QQ ( #301 )
2022-01-20 18:31:09 +00:00
Efim Poberezkin
7e0bcc7aa0
v1.0.1 ( #294 )
2022-01-15 18:39:57 +04:00
Efim Poberezkin
9c3962bbe3
update readme on initialization, fix servers list ( #288 )
2022-01-13 10:39:02 +04:00
Evgeny Poberezkin
c81e667e01
update version and changelog
2022-01-11 07:41:41 +00:00
Evgeny Poberezkin
0775bceb5e
remove unnecessary separation of UnliftIO instance for ExceptT ( #275 )
2022-01-10 19:06:04 +00:00
Evgeny Poberezkin
2a89394174
integrate double ratchet into agent ( #268 )
...
* separate skipped messages from ratchet
* return diff for skipped messages instead of the whole state (tests fail)
* fix ratchet tests
* JSON encoding/decoding for ratchet state
* schema for ratchets
* split MonadUnliftIO instance for ExceptT to a separate file
* update StrEncoding instance for Str
* ratchet store methods
* updateRatchet store method
* move E2E ratchet params to Ratchet module
* x3dh key agreement for double ratchet
* test/fix x3dh, use x3dh for ratchets initialization
* store/get x3dh keys, save ratchet of fixed X448 type
* double-ratchet encryption integration (tests fail)
* fix double ratchet
* fix padding and message length
* remove unused code for "activations"
* remove comment
* add version checks for forward/backward compatibility
* split loading ratchet and skipped message keys
* remove unused encoding instances for Algorithm types
* update ratchet initialization params
2022-01-10 12:01:54 +00:00
Efim Poberezkin
4d68042884
change initial migration date (migrations merged) ( #267 )
2022-01-07 17:03:00 +04:00
Evgeny Poberezkin
a5a00f3d02
Merge branch 'stable' into ep/message-delivery
2022-01-06 16:38:22 +00:00
Evgeny Poberezkin
584f230c4d
update versions for 0.5.2, changelog ( #261 )
2022-01-06 13:50:50 +00:00
Evgeny Poberezkin
f3523bbba9
make KeyHash non-optional, verify KeyHash in SMP handshake, use StrEncoding class ( #250 )
...
* make KeyHash non-optional, StrEncoding class
* change server URI format in agent config, refactor with StrEncoding
* refactor Crypto using checkAlgorithm
* refactor parsing connection requests
* prepare to validate CA fingerprint sent in client handshake
* KeyHash check in handshake
* rename type to CliCommand
* server validates keyhash sent by the client
* validate -a option when parsing
* more of StrEncoding
2022-01-02 22:24:43 +00:00
Evgeny Poberezkin
5e29e3698e
binary SMP protocol encoding, split Command type to two types ( #245 )
...
* binary SMP protocol encoding (server tests fail)
* use 1 byte for bytestring length when encoding/decoding
* Encoding class, binary tags
* update server tests
* negotiate SMP version in client/server handshake
* add version columns to queues and connections
* split parsing SMP client commands and server responses to different functions
* check uniqueness of protocol tags
* split client commands and server responses/messages to separate types
* update types in SMP client
* remove pattern synonyms for SMP errors
* simplify getHandshake
* update SMP protocol encoding in protocol spec
* encode time as a number of seconds (64-bit integer) since epoch
2022-01-01 13:10:19 +00:00
Evgeny Poberezkin
c66f9efa55
merge migrations, prepare schema for multiple queues per connection ( #243 )
...
* merge migrations into initial
* update connection/queue tables in schema, simplify creating connections
* refactor create connection
* remove queue fields from connections table
* update server constraints
2021-12-29 17:55:27 +00:00
Evgeny Poberezkin
51a9750891
double ratchet algorithm implementation ( #236 )
...
* started double ratchet implementation
* initialize ratchets
* started ratchet encryption
* ratchet encryption
* simplify / narrow down Ratchet type
* double ratchet decryption "framework"
* advance receive ratched on skipped messages
* more ratchet decryption
* double ratchet encrypt/decrypt (TODO tests)
* double ratchet tests
* double ratchet tests
* use ratchet AD in header encryption, use header and ratchet AD as AD in message encryption
* change ratchet message error, remove Show instances
* Update tests/AgentTests/DoubleRatchetTests.hs
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
* Update tests/AgentTests/DoubleRatchetTests.hs
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
* Update tests/AgentTests/DoubleRatchetTests.hs
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
* Update tests/AgentTests/DoubleRatchetTests.hs
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
* Update tests/AgentTests/DoubleRatchetTests.hs
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
* Update src/Simplex/Messaging/Crypto/Ratchet.hs
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
* test in the same ratchet step
* merge tests
* Update src/Simplex/Messaging/Crypto/Ratchet.hs
* Update src/Simplex/Messaging/Crypto/Ratchet.hs
* remove HMAC comment
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
2021-12-25 17:13:53 +00:00
Efim Poberezkin
e2cd370513
certificate validation on client side; check stored fingerprint on server start-up; non-optional fingerprint parsing ( #234 , closes #155 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2021-12-22 23:24:58 +04:00
Evgeny Poberezkin
e0acb42a28
Merge branch 'stable'
2021-12-17 15:44:58 +00:00
Evgeny Poberezkin
6b5cc3d2d5
0.5.1
2021-12-17 12:33:01 +00: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
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
bfa05c9432
all tests pass!
2021-12-12 21:17:25 +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
52eef2d7c7
Merge branch 'master' into v5
2021-12-10 11:52:08 +00:00
Evgeny Poberezkin
ff2b975cd8
prepare v0.5.0 - update versions, changelog ( #219 )
...
* prepare v0.5.0 - update versions, changelog
* Update CHANGELOG.md
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
2021-12-08 15:02:28 +00:00
Evgeny Poberezkin
b116408ec3
Merge branch 'master' into v5
2021-12-04 18:55:23 +00:00
Evgeny Poberezkin
04c65d98da
support permanent connection link ("contact") in SMP agent protocols ( #143 )
...
* open/public queue extension for SMP and SMP agent protocols
* add connection mode - invitation or contact
* use ConnectionMode with REQ and ACPT agent notification/command
* parameterize ConnectionRequest with ConnectionMode
* implement Contact connection mode for permanent connection links
* tests for contact connections
2021-12-04 18:42:08 +00:00
Evgeny Poberezkin
6126e72d4f
Merge branch 'master' into v5
2021-12-02 18:06:42 +00:00
Evgeny Poberezkin
606bbf5062
URI syntax for SMP queues and connection requests ( #210 )
...
* URI syntax for SMP queues and connection requests
* fix connection request parsing/serializing
* add ConnectionRequest sqlite instances
2021-12-02 17:43:05 +00:00
Evgeny Poberezkin
057d5eeb24
AES encription with auth tag after cypher text (the order in WebCrypto etc.); upgrade GHC to 8.10.7 ( #197 )
2021-10-24 21:03:41 +01:00
Evgeny Poberezkin
33de5f6fec
include migrations in the package, update docs, versions ( #194 )
...
* include migrations in the package, update versions
* update DigitalOcean version
2021-09-11 18:36:12 +01:00
Efim Poberezkin
862f25500d
v4 ( #192 )
2021-09-09 01:30:39 +10:00
Evgeny Poberezkin
e045774caa
reconnect server and resubscribe connections after disconnection ( #178 )
2021-08-09 08:49:49 +01:00
Evgeny Poberezkin
30c36b488a
commit simplexmq.cabal to remove stack DEPRECATED warning ( #172 )
2021-07-25 20:27:09 +01:00