summaryrefslogtreecommitdiffstats
path: root/README.md
blob: 13965f3389d3acb5affd23f1abcc05318a7f92bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# solec

* [Protocol documentation](https://git.rctt.net/solec/plain/docs/rfc.txt?h=main)
* [Data format diagram](https://git.rctt.net/solec/plain/docs/protocol.svg?h=main)

## Running the daemon

You'll need Go toolchain. Get it [here](https://go.dev/dl/)

```
git clone https://git.rctt.net/solec
cd solec
go run cmd/daemon/main.go
```

## Development

Use following to setup Git hooks:
`git config --local core.hooksPath hooks`

* `tools/run.sh` - build and start server and few clients
* `tools/run-many.sh` - build and start two servers and two clients
* `tools/build-spec.sh` - build Kaitai spec
* `GOPROXY=proxy.golang.org go list -m go.rctt.net/solec@v_._._` - publish Go module

## Wireshark plugin

To build wireshark plugin you'll need Kaitai Struct Compiler.
KSC currently doesn't support Wireshark plugin generation but
[there is a discussion]("https://github.com/kaitai-io/kaitai_struct/issues/50#issuecomment-1485044090").
After building foked KSC use `./tools/build_spec.sh` to build the plugin and then put
it into Wireshark plugins directory.

There is a problem with dissecting specific payloads.

## TLS

To enable TLS start daemon with following flags:

`solecd -tls -tls-cert cert.pem -tls-key key.pem`

For testing you can use `tools/key-gen.sh` and `/tools/run-tls.sh`.

Client have to be started with `-tls` flag or `-tls -tls-insescure` if the key is self signed.