Evgeny Poberezkin
ebb75ced12
extract SessionVar from AgentClient to reuse ( #1099 )
2024-04-13 18:33:12 +01:00
Evgeny Poberezkin
b741b65700
use online status in network information ( #1094 )
...
* use online status in network information
* test
* refactor
* flip condition
* fix
2024-04-12 22:22:24 +01:00
spaced4ndy
3b1dd6dff9
agent: notify about available quota ( #1087 )
...
* agent: notify about available quota
* rename
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-04-11 09:38:12 +01:00
Evgeny Poberezkin
8fa9ed6317
wait for user network availability ( #1085 )
...
* ghc-options
* wait for user network availability
* test
* update
* comment
* refactor
* slow config
* line
* waitForUserNetwork in xftp and ntf workers
* refactor
* refactor with registerDelay
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-04-10 21:50:05 +01:00
Evgeny Poberezkin
1219446996
dispose agent instances, fix tests, ( #1089 )
...
* dispose agent instances in tests
* fix quota test
* tests: fix tests with -threaded (#1088 )
* fix some tests
* match RTS opts with apps
* less verbose rts stats
* enable sqlite extended error codes
* clean up
* unfocus
* remove extendedErrorCode
It's actually setExtendedResultCodes, which isn't yet available.
* diff
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* fix switch test
* fix
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-04-10 19:34:02 +01:00
Alexander Bondarenko
4c20ff6d00
xftp: negotiate protocol with ALPN ( #1047 )
...
* xftp: negotiate protocol with ALPN
* add RFC
* add handshake implementation
* implement extended handshake
* enable authentication
* update rfc
* Apply suggestions from code review
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* cleanup
* discard trailing data
* cleanup diff
* use find
* rename
* refactor
* add x509 tests
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-04-09 15:03:40 +01:00
spaced4ndy
791368c7be
export lock function ( #1073 )
...
* export lock functions
* rename with tick
* simplify
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-04-04 15:37:31 +01:00
Evgeny Poberezkin
84b8c8417b
revert base64 change ( #1081 )
2024-04-03 09:27:36 +01:00
Evgeny Poberezkin
6ded721daa
remove monad typeclasses to reduce overhead ( #1077 )
...
* remove monad typeclasses to reduce overhead
* remove unliftIO
* StrictData
* inline
* optional agent port
* avoid MonadUnliftIO instance (#1078 )
* avoid MonadUnliftIO instance
* simpler liftError'
* rename
* narrow down instance
* revert
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* logServer
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-03-31 20:50:35 +01:00
Alexander Bondarenko
ee90ea6a69
replace base64-bytestring with base64 ( #1065 )
...
* replace base64-bytestring with base64
* minify
* use bytestring-0.10 compatible fork
PR pending...
* bump base64 fork with text compat
* move compat details to modules
* switch repo
* add back module
* cleanup
* minify
* clean imports
* rename
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-03-27 23:35:09 +00:00
Evgeny Poberezkin
b32259d048
notify about critical error on agent crash ( #1062 )
...
* notify about critical error on agent crash
* waitUntilActive
* disposeAgent
* fix
2024-03-21 14:54:57 +00:00
Alexander Bondarenko
a48c22ea36
core: fix leak in serverDown handler ( #1061 )
2024-03-21 12:03:19 +00:00
spaced4ndy
293a2ca3f1
agent: remove withStoreCtx ( #1044 )
2024-03-13 13:33:59 +04:00
Alexander Bondarenko
2cad0cb201
core: check ACK handling with return type ( #1041 )
...
* core: check ACK handling with return type
* fix ratchet sync
* add SQL Locked to dbBusyLoop
* rename
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-03-11 19:06:53 +00:00
Evgeny Poberezkin
b4c90781bb
pqdr: update envelope sizes
2024-03-10 17:53:57 +00:00
Evgeny Poberezkin
851ed2d02e
pqdr: more tests, pass e2e version to rcEncrypt from config ( #1040 )
...
* pqdr: more tests, pass e2e version to rcEncrypt from config
* fix
2024-03-10 13:29:03 +00:00
Alexander Bondarenko
8cdd49b912
core: restore Eq instances ( #1038 )
...
* core: restore Eq instances
* remove duplicates from tests
2024-03-08 13:43:33 +00:00
Evgeny Poberezkin
8ff4c628b5
pqdr: make envelope sizes dependent on version, test enabling PQ ( #1035 )
2024-03-08 08:28:15 +00:00
Evgeny Poberezkin
11288866f9
pqdr: refactor
2024-03-07 12:41:10 +00:00
Evgeny Poberezkin
07fa75ec49
pqdr: agent api to confirm PQ encryption support during connection handshake, fix incorrect PQ support ( #1032 )
...
* pqdr: agent api to confirm PQ encryption support during connection handshake
* fix CONF, tests
* fix REQ, tests
* remove unused
2024-03-07 08:35:40 +00:00
Evgeny Poberezkin
4ffb6a348a
pqdr: use different newtypes for supporting and enabling PQ encryption in connections ( #1031 )
...
* pqdr: use different newtypes for supporting and enabling PQ encryption in connections
* rename field, fix test
* refactor
2024-03-06 21:28:03 +00:00
Evgeny Poberezkin
b435a4dacb
envelope sizes dependent on PQ encryption ( #1028 )
...
* envelope sizes dependent on PQ encryption (WIP)
* add "supported" flag to ratchets, update this flag on ratchet resync
* change connection PQ status on sendMessage
* comment, fix
* refactor
2024-03-06 16:38:30 +00:00
Evgeny Poberezkin
b050cf5027
double ratchet versioning for post-quantum encryption ( #1025 )
...
* correctly parse new Ratchet fields when omitted
* rfc: migrating connection versions to pqdr
* update rfc
* WIP (dont commit)
* rename versions
* update ratchet version based on PQ encryption feature flag
* remove duplicate function
* synchronize ratchet, fix tests, refactor
* comments
* test
* pattern
2024-03-05 17:07:15 +00:00
Evgeny Poberezkin
ba1bfaa5aa
Merge branch 'master' into pq
2024-03-04 20:13:01 +00:00
Evgeny Poberezkin
dd2bd11584
parameterize version scopes with phantom types ( #1026 )
...
* parameterize version scopes with phantom types
* move Version to another module
* parens
2024-03-04 19:06:51 +00:00
Evgeny Poberezkin
e06e22328f
agent: quantum-resistant double ratchet encryption ( #939 )
...
* doc
* diff
* ratchet header
* types
* ratchet step with PQ KEM, message header with KEM
* comment
* update types, remove Eq instances, store KEM keys to database
* pqx3dh
* PQ double ratchet test
* pqdr tests pass
* fix most tests
* refactor
* allow KEM proposals from both sides
* test names
* agent API parameters to use PQ KEM
* initialize ratchet state for enabling KEM
* fix/test KEM state machine to support disabling/enabling via messages
* more tests
* diff
* diff2
* refactor
* refactor
* refactor
* refactor
* remove Maybe
* rename
* add PQ encryption status to CON, MID and MSG events and sendMessage API results
* different PQ parameter when creating connection
* rename/reorganize types for PQ encryption modes
* rename
* fix testWaitDeliveryTimeout
* rename
* rename2
* ghc8107
* rename
* increase timeouts for concurrent send/receive test
* enable all tests
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-03-03 19:40:49 +00:00
Evgeny Poberezkin
ce78646c7f
refactor creating connection record ( #1021 )
2024-03-02 18:27:51 +00:00
spaced4ndy
294d7ec8dd
agent: delay connection deletion to finish delivery of pending messages ( #1015 )
...
* agent: delay connection deletion to finish delivery of pending messages (wip)
* fixes, test
* notify, test
* add tests
* comment
* add test
* timeout
* test timeout
* up
* more tests
* rename
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-02-29 18:08:58 +00:00
Evgeny Poberezkin
c9ec7ea274
Merge branch 'stable'
2024-02-27 18:07:30 +00:00
Evgeny Poberezkin
5011ac2e7c
Merge branch 'v5522' into stable
2024-02-27 17:58:08 +00:00
Alexander Bondarenko
2e3c961dab
agent: optimize execution performance of slow memory operations during (re)subscriptions ( #1013 )
...
* agent: remove redundant set building
* tests: add tRcvQueuesTests (#1016 )
* double accounting
* unit tests for invariants
* batch add queues
* ghc8107 compatibility
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-02-27 00:00:29 +00:00
Evgeny Poberezkin
e2ec737c68
stop using public keys from table ( #1014 )
...
* stop using public keys from table
* comment
2024-02-25 16:19:04 +00:00
Alexander Bondarenko
95c0914809
agent: speed up SMP clientDisconnected ( #1011 )
2024-02-24 14:59:14 +00:00
Alexander Bondarenko
385463192b
agent: extend worker summary ( #1007 )
...
* agent: extend worker summary with active/idle split
* simplify
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-02-24 13:29:36 +00:00
Evgeny Poberezkin
d7394aa762
fix ntf server version range in the client
2024-02-22 19:33:14 +00:00
Evgeny Poberezkin
0d843ea4ce
Merge branch 'stable'
2024-02-21 20:33:06 +00:00
Evgeny Poberezkin
a34da38966
Merge branch 'stable' into v5521
2024-02-21 19:28:30 +00:00
Evgeny Poberezkin
03c24c3ada
agent: fix performance leak, smp server: optimize and fix potential memory leak ( #1004 )
...
* fix agent performance leak when re-connecting clients, optimize SMP server
* let the clients remove themselves from their clientvars
* fix another test
* do not call removeSubs when AgentClient is not active
* revert some changes
* revert more, refactor
* comment
* rename
* refactor
* refactor
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2024-02-21 11:45:34 +00:00
Evgeny Poberezkin
caeeb2df9c
fix protocol in NTF server error
2024-02-17 15:32:44 +00:00
Evgeny Poberezkin
51be2fea20
agent: test NTF server ( #1000 )
2024-02-17 14:55:40 +00:00
Evgeny Poberezkin
f6acc5c240
remove test chunk after XFTP server test ( #999 )
2024-02-16 23:24:57 +00:00
Alexander Bondarenko
194a7bb58e
agent: remove redirect entries when deleting rcv files ( #995 )
...
* agent: remove redirect entries when deleting rcv files
* update schema dump
* use rcv_file primary key for redirect lookup
* allow multiple redirects
2024-02-16 19:49:50 +04:00
Evgeny Poberezkin
c179073260
remove support for old versions ( #990 )
...
* remove support for old versions (WIP)
* fix
* updates
* use version var
2024-02-16 13:28:50 +00:00
Evgeny Poberezkin
416f1b1721
smp: command authorization ( #982 )
...
* smp: command authorization
* fix encoding, most tests
* remove old tests
* authorize via crypto_box
* extract authenticator to Crypto module
* make TransmissionAuth Maybe
* rfc
* support authenticators in NTF protocol, test matrix (no backwards compatibility yet from new clients to old servers)
* fix/add tests, add version config to "small" agent
* separate client and server versions for SMP protocol
* test batching SMP v7
* do not send session ID in each transmission
* refactor auth verification in the server, split tests
* server "warm up" fixes timing test
* uncomment SUB timing test
* comments, disable two timing tests
* rename version
* increase auth timing test failure threshold
* use different algorithms to authorize snd/rcv commands, use random correlation ID
* transport: fetch and store server certificate (#985 )
* THandleParams (WIP, does not compile)
* transport: fetch and store server certificate
* smp: add getOnlinePubKey example to smpClientHandshake
* add server certs and sign authPub
* cleanup
* update
* style
* load server certs from test fixtures
* sign ntf authPubKey
* fix onServerCertificate
* increase delay before sending messages
* require certificate with key in SMP server handshake
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* remove dhSecret from THandle
* remove v8, merge all changes to one version
* parameterize THandle
* rfc: transmission ecnryption
* Revert "parameterize THandle"
This reverts commit 75adfc94fb .
* use batch syntax for ntf server commands
* separate encodeTransmission when there is no key
* typo
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* rename
* diff
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-02-16 11:45:54 +00:00
spaced4ndy
004597c764
agent: add index to file redirect migration ( #988 )
2024-02-14 18:47:39 +04:00
Alexander Bondarenko
2f7a288280
xftp: add sending and receiving via URI-encoded redirects ( #968 )
...
* xftp: add URI encoding for FileDescription
* tweak URI
* allow smaller blocks
* draft xftpReceiveFileFollow' and xftpSendFilePublic'
* add sending with redirect
* allow 64k chunks
* add migrations with redirect fields
* add test case
* fix deadlock
* revert CLI code
* WIP: working send/receive via URI
* fix field ambiguity
* cleanup
* update agent db schema
* update minimal chunk size
* add rfc
* apply suggestions from code review
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
* add createRcvFileRedirect
* extract Simplex.Messaging.ServiceScheme and reuse for files
* update db schema
* check size/digest on receive complete
* cleanup
* use SIZE/DIGEST errors for redirects too
* split digest/size errors from redirect checks
* fix redirect error encoding
* rename RedirectMeta to RedirectFileInfo
* use query encoding for file URI
* group maybe fields under RcvFileRedirect
* add extras field
* update rfc
* add extras encoding and no-redirect tests
* fix toStrict for old ghc
* extra client data in file descr URI
* remove decoded yaml file
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-02-13 14:08:49 +00:00
Evgeny Poberezkin
2ae1c9f79d
agent: only retry connecting SMP clients when there are pending subscriptions ( #981 )
...
* agent: only retry connecting SMP clients when there are pending subscriptions
* fix
* remove retry on creating clients
* simplify
2024-02-01 16:17:37 +00:00
Alexander Bondarenko
24b84106a6
core: add activity tests to workers details ( #980 )
...
* core: add activity tests to workers details
* remove names
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-02-01 11:02:31 +00:00
Alexander Bondarenko
15bc027f23
core: fix reconnection bugs ( #979 )
...
* core: fix reconnection bugs
* untangle newProtocolClient
* refactor
* report busy clientVar error
* log error
* comments
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-02-01 10:55:50 +00:00
Evgeny Poberezkin
fd4eeb36db
agent: optimize expired messages query ( #976 )
...
* agent: optimize expired messages query
* schema
* fix query
* fix
* typo
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* fix
* refactor
* comment
* refactor2
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2024-01-22 14:04:57 +00:00