Evgeny
af9ca59e51
smp server: optimize concurrency and memory usage, refactor ( #1544 )
...
* smp server: optimize concurrency and memory usage, refactor
* hide clients IntMap
* reduce STM contention
* comment
* version
* correct stats for subscriptions
* version
* comment
* remove subscribed clients from map
* version
* optimze, refactor
* version
* debug test
* enable all tests
* remove test logs
* retry failed tests with debug logging
* increase test timeout
* sync between tests
2025-05-23 12:52:18 +01:00
Evgeny
3d4e0b06c0
servers: blocking records for content moderation ( #1430 )
...
* servers: blocking records for content moderation
* update
* encode BLOCKED as AUTH in old versions
* update
* unblock queue command
* test, status command
2025-01-12 19:34:00 +00:00
Evgeny
22260cd719
agent: transport isolation mode "Session" (default) to use new SOCKS credentials when client restarts or SOCKS proxy configuration changes ( #1321 )
...
* agent: transport isolation mode "Session" (default) to use new SOCKS credentials when client restarts or SOCKS proxy configuration changes
* fix test
2024-09-22 22:22:05 +01:00
Evgeny
ce6777b68d
newtype for server entity IDs, fix TRcvQueues ( #1290 )
...
* put DRG state to IORef, split STM transaction of sending notification (#1288 )
* put DRG state to IORef, split STM transaction of sending notification
* remove comment
* remove comment
* add comment
* revert version
* newtype for server entity IDs, fix TRcvQueues
* Revert "put DRG state to IORef, split STM transaction of sending notification (#1288 )"
This reverts commit 517933d189 .
* logServer
2024-08-30 12:50:02 +01:00
Evgeny Poberezkin
c00c223f3b
remove (or make optional) client key from handshakes ( #1104 )
...
* remove (or make optional) client key from handshakes
* remove comment
2024-04-18 22:43:49 +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
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
bbc9eccf4d
xftp: prevent overwriting completed upload ( #1063 )
...
* xftp: prevent overwriting completed upload
* add size check for skipCommitted
* fix import
* fail on incorrect size
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com >
2024-03-28 18:12:48 +00: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
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
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
Alexander Bondarenko
b4495bb4f0
xftp-server: fix stats ( #944 )
...
* xftp-server: fix stats
* count file expirations
* rename
* simplify
* check files size
* store and fix fileSize check
* do
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2024-01-05 11:30:27 +00:00
Alexander Bondarenko
7eb7bd5e81
xftp-server: add inactiveClientExpiration ( #936 )
...
* xftp-server: add inactiveClientExpiration
* fix test config
* add test
* add xftpPing
* switch to PCEUnexpectedResponse
* remove watchdog when server quits
* rename, loop
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-12-27 20:31:19 +00:00
Evgeny Poberezkin
13a60d1d39
use ChaChaDRG as the source of randomness ( #920 )
...
* use ChaChaDRG as the source of randomness
* remove functions using entropy directly
* comment
2023-12-21 00:12:08 +00:00
Alexander Bondarenko
117168ccce
raise mtl version to 2.3.1 ( #912 )
...
* raise mtl version to 2.3.1
* fix test on 8.10
2023-12-02 11:43:36 +00:00
Evgeny Poberezkin
cc8b8cd10d
agent: fix hanging test ( #907 )
2023-11-28 22:25:58 +00:00
Evgeny Poberezkin
8fa369f9d3
5.4.0: xftp 1.1.3, ntf 1.6.4 ( #903 )
...
* 5.4.0: xftp 1.2.0, ntf 1.7.0
* upgrade ghc in github job
* change xftp, ntf versions
* shorter predicate for exception in test
2023-11-26 22:20:42 +00:00
Moritz Angermann
002f36dde0
5.4.0.0: use ghc 9.6.2 ( #791 )
...
* Add 9.6 compat
* compile with GHC9.6.2: dependencies, imports, code
* refactor typeclasses
* refactor record dot
* update cabal version
* update github actions
* update direct-sqlcipher
* 5.4.0.0
* update cabal.project
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-08-24 20:22:02 +01:00
Evgeny Poberezkin
83364052b1
xftp: implement server command to add file recipients ( #702 )
2023-04-03 09:33:12 +01:00
Evgeny Poberezkin
94de01a06f
xftp: use SHA256 digest for file chunks to reduce file description size ( #666 )
...
* xftp: use SHA256 digest for file chunks to reduce file description size
* enable all tests
2023-03-01 14:36:55 +00:00
Evgeny Poberezkin
249bcc7bb3
update cGet to not throw exception if returned string is shorter (trying to fix HTTP2), fix test ( #663 )
2023-02-28 19:16:35 +00:00
Evgeny Poberezkin
875a4bac5e
xftp cli: use 3 chunk sizes (256kb, 1mb, 4mb) ( #660 )
...
* xftp cli: use 3 chunk sizes (256kb, 1mb, 4mb)
* hardcode default servers
* disable rand command
* hide rand command instead of removing
2023-02-27 21:15:22 +00:00
Evgeny Poberezkin
2f15ce2662
xftp: add quota param to server CLI, restrict chunk sizes ( #659 )
...
* xftp: add quota param to server CLI
* only allow certain file sizes, fix tests
2023-02-27 18:01:18 +00:00
spaced4ndy
f20a996797
xftp: more store log tests ( #654 )
2023-02-24 18:34:01 +04:00
Evgeny Poberezkin
8c8a984c1c
xftp: add basic auth ( #653 )
2023-02-24 17:40:26 +04:00
spaced4ndy
202922bceb
xftp: server store log ( #652 )
2023-02-24 15:21:07 +04:00
Evgeny Poberezkin
3ab5e9d110
xftp: expire files on the server, track/limit used storage ( #651 )
...
* xftp: expire files on the server
* track/limit used storage
* support storage quota and disabling queue creation in CLI parameters
* fix ini file
* correction
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2023-02-24 11:09:51 +04:00
Evgeny Poberezkin
4ce4fa3423
xftp: write secret_box auth tag to the end of the file, for efficiency of ecryption/decryption ( #650 )
...
* xftp: write secret_box auth tag to the end of the file, for efficiency of ecryption/decryption
* comments
2023-02-23 18:28:20 +00:00
Evgeny Poberezkin
97b8b37325
xftp: FDEL and FACK commands ( #648 )
...
* xftp: FDEL and FACK commands
* correction
* more tests
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2023-02-22 12:32:30 +00:00
Evgeny Poberezkin
bbf9e28696
xftp: add server to client encryption layer with cryptobox ( #646 )
...
* xftp: add server to client encryption layer with cryptobox
* workarounds for http2
* update http2 commit
* remove TODOs
2023-02-22 09:03:18 +00:00
Evgeny Poberezkin
50664930cc
xftp: tests with 2 servers and 2 clients
2023-02-20 12:41:15 +00:00
Evgeny Poberezkin
4a9b5412db
xftp: refactor
2023-02-18 23:21:59 +00:00
Evgeny Poberezkin
1ecef81b4d
xftp: validate digests of file chunks in client and server
2023-02-18 22:44:44 +00:00
Evgeny Poberezkin
2bf8cba4fd
xftp: download chunks to separate files
2023-02-18 20:56:46 +00:00
Evgeny Poberezkin
acdf4f41c5
XFTP: CLI tests, output command results, info command ( #642 )
...
* XFTP: CLI tests, output command results
* info command, test
* fix test
2023-02-17 11:38:43 +00:00
Stanislav Dmitrenko
bccef0ba47
files: server and client spike - basic upload/download ( #591 )
...
* Files: main, env, stats, storeLog
* Better + transport
* Executable
* Env
* Update Client.hs, Server.hs, and 4 more files...
* Answer on request
* Delay
* Temp file
* Bypass cert check
* update package.yml, rename
* update store log
* extend HTTP2 transport
* refactor caStore
* HTTP2 body
* update server stats
* file server/client framework
* verify server commands
* process FNEW command, CLI test works
* simple XFTP server test (fails)
* fix test, refactor
* upload chunk works
* receive file chunk in the client
* remove transport handshake
* typo
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
* fix names
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com >
2023-02-13 13:36:02 +00:00