thekuwayama / no_eoed_0rtt_client

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

no_eoed_0rtt_client

no_eoed_0rtt_client is the replication client that does NOT send EndOfEarlyData when TLS 1.3 0-RTT Handshake.

Usage

$ cd /path/to/no_eoed_0rtt_client

You can run test server the following:

$ docker pull thekuwayama/nginx-early-data

$ docker run -v `pwd`/fixtures:/tmp -p 4433:4433 -it thekuwayama/nginx-early-data nginx -g "daemon off;" -c /etc/nginx/nginx.conf
172.17.0.1 - - [18/Aug/2022:13:24:32 +0000] "GET / HTTP/1.1" 200 3 "-" TLSv1.3 0.000 early=-
172.17.0.1 - - [18/Aug/2022:13:24:33 +0000] "GET / HTTP/1.1" 200 3 "-" TLSv1.3 0.000 early=1

You can run test client the following:

$ brew install openssl@1.1 readline

$ RUBY_CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl@1.1`" rbenv install 3.1.2

$ gem install bundler

$ bundle install

$ bundle exec client.rb localhost:4433
HTTP/1.1 200 OK
Server: nginx/1.22.0
Date: Thu, 18 Aug 2022 13:24:32 GMT
Content-Type: text/html
Content-Length: 3
Last-Modified: Wed, 17 Aug 2022 07:06:30 GMT
Connection: close
ETag: "62fc9376-3"
Accept-Ranges: bytes

OK
HTTP/1.1 200 OK
Server: nginx/1.22.0
Date: Thu, 18 Aug 2022 13:24:33 GMT
Content-Type: text/html
Content-Length: 3
Last-Modified: Wed, 17 Aug 2022 07:06:30 GMT
Connection: close
ETag: "62fc9376-3"
Accept-Ranges: bytes

OK

If you need to specify host and port, you can run the following:

$ bundle exec client.rb $HOST:$PORT

You can browse the 0-RTT handshake.

The sample pcap file and sslkeylogfile are here.

About


Languages

Language:Ruby 100.0%