Evgeny Poberezkin
6a2e6b040e
additional lazy crypto for XRCP ( #890 )
2023-11-10 11:16:43 +00:00
Evgeny Poberezkin
bd06b47a9d
return TLS session on remote connection step ( #891 )
2023-11-09 22:27:30 +00:00
Evgeny Poberezkin
102487bc4f
xrcp: error handling ( #889 )
...
* xrcp: error handling
* rename
* dont lock on STM
* move catch
* controller error handling
* fail sooner on incorrect CA in host HELLO
* remove TODO lock session
* refactor
2023-11-08 16:34:56 +00:00
Evgeny Poberezkin
248144f3de
do not use previous KEM shared secret in multicast packets and in host HELLO ( #888 )
...
* do not use previous KEM shared secret in multicast packets and in host HELLO
* simplify
2023-11-08 12:06:10 +00:00
Alexander Bondarenko
ecb23c66e0
Extract public RC types ( #887 )
2023-11-07 20:30:28 +00:00
Alexander Bondarenko
c0566d37a0
add To/FromField instance to KEMShardKey ( #886 )
2023-11-07 17:09:38 +00:00
Alexander Bondarenko
1a8dfb4cbe
agent: xrcp implementation for connection via link (no multicast) ( #884 )
...
* WIP: start working on connection invites
startSession/OOB is broken now - the port isn't coming from the actualy assigned one.
* Add invite types
* clean old invite-related types
* apply renames
* Move SessionKeys from Invitation
* Stub host-side keys and handle
* move keys and handles to Types
* add Simplex.RemoteControl.Client
* more keys
* progress
* crypto for sessions
* progress to multicast
* multicast crypto
* add RC TLS server
* agent api for remote control
* WIP: tls client
* fix test
* update encoding to include nonce
* add TODO
* update
* Use network-info to find TransportHost
* request and submit tls client certificate
* WIP: add missing bits for testing RC client
* RCEncryptedHello encoding
* add block encoding
* refactor
* validate known host certificate
* remove some spaghetti
* functional API to host/ctrl clients
* refactor connectRCCtrl_
* refactor connectRCHost
* question
* add type
* fix RC session
* update doc
* update doc 2
* add block on confirmation
* remove unused parameter
* export CtrlSessKeys
* export
* fix parsing
* move test of xrcp handshake
* move KEM to HELLO step
* fix JSON
* type
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-11-07 13:05:18 +00:00
Evgeny Poberezkin
1a0c4b73de
Merge branch 'master' into xrcp
2023-11-04 18:26:01 +00:00
Evgeny Poberezkin
e9b5a849ab
update http2 to 4.2.2 ( #879 )
2023-11-01 10:57:19 +00:00
Evgeny Poberezkin
a5fed340e2
hybrid shared secret X25519 + sntrup761 ( #881 )
...
* hybrid shared secret X25519 + sntrup761
* use IORef
* enable all tests
* update
* update
* use newtype
* move withDRG
2023-11-01 10:33:15 +00:00
Evgeny Poberezkin
ce796ec225
Merge branch 'master' into xrcp
2023-11-01 09:24:06 +00:00
Evgeny Poberezkin
4660ee9cff
agent: revert to TVar ( #883 )
2023-11-01 09:15:51 +00:00
Evgeny Poberezkin
70bf665938
Merge branch 'master' into xrcp
2023-10-31 23:52:45 +00:00
Evgeny Poberezkin
b5f733d2db
agent: use IORef for DRG ( #882 )
2023-10-31 23:52:13 +00:00
Evgeny Poberezkin
c22c15a2e8
sntrup761 ( #865 )
...
* add sntrup761 source
* it compiles
* Wrap bindings in non-FFI types
Test passes with a dummy RNG.
* pass ChaChaDRG via FunPtr
* Add iOS smoke test at createAgentStore
* style
* add "ssl" library dep
Attempt to fix missing _SHA512 symbol on macos.
* remove sha512 wrapper and use openssl directly
* restore names, remove dummy RNG
* Revert "remove sha512 wrapper and use openssl directly"
This reverts commit f9f7781f09 .
* restore code from RFC
* shorter names
* enable all tests
* remove run test
---------
Co-authored-by: IC Rainbow <aenor.realm@gmail.com >
2023-10-31 22:44:46 +00:00
Evgeny Poberezkin
db1b2f77cd
rfc: SimpleX Remote Control protocol v2 ( #874 )
...
* rfc: SimpleX Remote Control protocol
* tweak rfc sections
* rfc: SimpleX Remote Control protocol v2
* add session verification
* add alternative design
* add KEM to rfc
* key agreement
* add pad
* pad
* padding
* remove marker from multicast packet
* update
---------
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2023-10-31 19:39:42 +00:00
Alexander Bondarenko
8e2ffcb297
extract xrcp protocol ( #878 )
...
* xrcp: files and folders
* extract remote up to rev-http
* Remove unused files
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-10-31 19:31:53 +00:00
Alexander Bondarenko
0410948b56
add runTransportWith ( #875 )
...
* Cut transport server to allow custom tcp servers
Allows socket inspection before wrapping up in a transport/prototocol.
* rename
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-10-27 14:40:53 +01:00
Evgeny Poberezkin
511d793b92
derive JSON instances with TH ( #869 )
...
* derive JSON instances with TH
* defaultJSON
* remove ToJSON
2023-10-26 09:20:30 +01:00
Evgeny Poberezkin
5f750a6783
docs: amend SMP protocol transmission encoding ( #843 )
...
* docs: amend SMP protocol transmission encoding
* base64 encoding
* remove "optional"
2023-10-25 17:52:02 +01:00
spaced4ndy
d920a2504b
agent: check confirmed snd queue doesn't exist before replacing ( #871 )
2023-10-25 09:48:54 +04:00
spaced4ndy
55a6157880
agent: change invLocks key type to ByteString
2023-10-24 17:20:39 +04:00
spaced4ndy
73d7f84ee3
agent: take invitation lock on join ( #870 )
2023-10-24 16:55:57 +04:00
Evgeny Poberezkin
cf8b9c12ff
remove test dependencies ( #861 )
...
* remove test dependencies
* .hlint.yaml
2023-10-22 10:50:36 +01:00
sh
9994375c16
docker: workaround for xftp quota format ( #862 )
2023-10-22 09:26:36 +01:00
Evgeny Poberezkin
9d12d76078
add fourmolu ( #868 )
...
* add fourmolu
* linebreak
* simplify
* comment
2023-10-22 09:20:14 +01:00
spaced4ndy
deb3fc7359
agent: order by internal id when retrieving pending messages ( #867 )
2023-10-19 20:17:12 +04:00
spaced4ndy
80905c0822
test concurrent send and receipts ( #866 )
2023-10-19 20:08:58 +04:00
Evgeny Poberezkin
decf25d7dc
refactor http2 file ( #864 )
...
* refactor http2 file
* move fileBlockSize to HTTP2.File
2023-10-19 10:25:21 +01:00
Evgeny Poberezkin
5e047f3199
update http2 to 4.1.4
2023-10-18 13:26:38 +01:00
spaced4ndy
1ad69cf74f
agent: always parse connection request uri as simplex:/ ( #863 )
2023-10-16 18:25:56 +04:00
Evgeny Poberezkin
696fa652a5
agent: always return simplex:/ links in invitations
2023-10-12 14:54:37 +01:00
Evgeny Poberezkin
6b0da8ac50
export JSON tags as patterns
2023-10-07 14:21:15 +01:00
Evgeny Poberezkin
9195509485
update aeson to add tag to platform-specific single field JSON encoding ( #859 )
...
* update aeson to add tag to platform-specific single field JSON encoding
* refactor
2023-10-07 12:30:26 +01:00
Alexander Bondarenko
96a38505d6
add FromJSON instances ( #856 )
...
* Add FromJSON instances
* add missing FromJSON instances
* more JSON instances
* update comments
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-10-05 15:57:53 +01:00
Alexander Bondarenko
753a6c7542
add X509 cert and TLS credentials generator ( #857 )
...
* Add X509 cert and TLS credentials generator
* Expand Crypto toolkit and rewrite tls credentials with it
* Exclude X keys from SignatureAlgorithmX509 and TLS.PrivKey
* Add helpers for DB marshalling and fingerprints
* Derive public key from private
* remove module name from selectors
* Remove StrEncoding (PrivateKey Ed25519)
* remove comment
---------
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2023-10-03 13:43:21 +01:00
Alexander Bondarenko
ec1b72cb80
Run HTTP2 sessions over existing TLS transport ( #852 )
...
* Split HTTP2 server and client setup
For attaching to an existing TLS session.
* Add genTlsCredentials
* Allow chain construction from separate credentials
So the CA may be stored and leaf ephemeral.
* Rewrap X509 fingerprint into simplex KeyHash used in transport
* Fix docstring
* Remove TLS.Credentials generator
2023-09-27 17:29:39 +01:00
Evgeny Poberezkin
fda1284ae4
agent: support closing and re-opening store ( #855 )
...
* agent: support closing and re-opening store
* add closed flag, tests
2023-09-27 12:50:24 +01:00
Evgeny Poberezkin
8d47f69083
agent: fix creating empty file for XFTP to close file ( #851 )
2023-09-21 11:57:00 +01:00
Evgeny Poberezkin
3828a9591c
unpin unix package ( #850 )
2023-09-20 18:32:03 +01:00
Evgeny Poberezkin
81385e39bf
Merge branch 'master-ghc9'
2023-09-18 21:18:45 +01:00
Evgeny Poberezkin
fee897f367
fix unix to 2.8.1.1
2023-09-18 20:59:02 +01:00
sh
f2d832fe20
Dockerfile: update cabal and ghc versions ( #848 )
2023-09-18 13:27:18 +03:00
Evgeny Poberezkin
57d08c0e36
Merge branch 'master' into master-ghc9
v5.4.0-beta.3
2023-09-17 22:30:46 +01:00
Evgeny Poberezkin
00b48babf3
5.4.0.3: ntf 1.6.2
2023-09-17 22:23:00 +01:00
Evgeny Poberezkin
0b488ceb66
ntf server: faster restoring from store log ( #846 )
...
* ntf server: faster restoring from store log
* only log sub status when changed
2023-09-17 15:16:24 +01:00
Evgeny Poberezkin
887ccbcf6c
Merge branch 'master' into master-ghc9
v5.4.0-beta.2
2023-09-10 18:00:33 +01:00
Evgeny Poberezkin
0cabe0690b
5.4.0.2: xftp 1.1.1, ntf 1.6.1
2023-09-10 17:44:37 +01:00
Evgeny Poberezkin
84ce037867
extend SMP protocol to allow creating new queues without subscriptions ( #839 )
...
* Trace auto-subs flag
* Replace Bools with SubscriptionMode
* Handle SMOnlyCreate
* Wire remaining todos
* Update tests and fix
* Bump protocol level
* Apply suggestions from code review
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
* Scrub needs_sub from agent DB
* Scrub a few more needSubs from the agent api
* change API, fix test
* agent: do not subscribe to queue when creating reply queue
* fix encoding
* WIP: SMOnlyCreate test
* Add SM guard for confirmQueue
Allows the test case to pump the allowConnection
reply without getting PROHIBITED.
* Remove tracing
* add noMessages, remove unnecessary getConnectionMessage from test
* add sending messages to the test
---------
Co-authored-by: IC Rainbow <aenor.realm@gmail.com >
Co-authored-by: Alexander Bondarenko <486682+dpwiz@users.noreply.github.com >
2023-09-10 17:07:19 +01:00
Evgeny Poberezkin
504465f8e2
xftp: add 64kb file chunk ( #842 )
...
* xftp: add 64kb file chunk
* disable chunk size 64kb in the agent
* revert rename
2023-09-08 13:31:11 +01:00