* Add tlsmirror server processing routine
* Add tlsmirror server processing routine: generated
* Add tlsmirror server handshake capture
* it runs version~
* add draining copy for handshake
* refactor out base tls mirror connection
* tls mirror server side base
* add random field extraction
* add tls like encryption
* add tls like encryption (generated)
* add server side implementation for tlsmirror
* apply coding style: tlsmirror
* fix typo in mirrortls mirror crypto
* add client initial implementation for tls mirror
* add traffic generator implementation for tlsmirror
* add client processing of traffic generator originated traffic
* add embedded traffic generator support to mirrortls client
* override security setting of traffic generator if appropriate
* override security setting of traffic generator if appropriate
* apply request wait time for traffic generator
* add unsafe keyword required for linkname
* fix outbound manager registration for traffic ingress at tlsmirror client
* initial works at sticking packets together
* fix traffic generator's traffic goto logic
* fix get client and server random
* fix applying primary key
* fix log error handling for handshake random retrieval
* fix nonce generation and key derivation logic
* fix: add readPipe channel to client and server connection handlers
* fix: use detached context for persistent mirror TLS dialer
* fix: ensure proper closure of connections on context cancellation
* fix: proper detection of traffic generator originated connection
wait for connection ready before sending payload
* fix coding style
* Correctly implement QUIC sniffer when handling multiple initial packets
* Only parse token for initial packet
Signed-off-by: Vigilans <vigilans@foxmail.com>
* Update test case for QUIC sniffer
* Fix testcases
* Third packet in `Handshake[2]; packet 1-3` mistakenly copied UDP header into payload, making the payload length 1278 instead of 1250
* Introduce `protocol.ErrProtoNeedMoreData` to allow sniffer to fetch more packets until complete
---------
Signed-off-by: Vigilans <vigilans@foxmail.com>
Co-authored-by: Shelikhoo <xiaokangwang@outlook.com>
Co-authored-by: dyhkwong <50692134+dyhkwong@users.noreply.github.com>
* Update protoc binary executable files to v3.13.0
* Write proto files in more standard way
* Make go generate & vprotogen compatible with protoc-gen-gofast
* Regenerate pb.go files according to new proto files
* Clean go.sum by running go mod tidy
* Implement mustEmbedUnimplementedServiceServer for gPRC services