crypto_*.py
... DH鍵共有やChaCha20-Poly1305暗号化などmain_*.py
... ClientやServer側の処理protocol_*.py
... パケットフォーマットなどtype.py
... RFCで登場する型の定義meta*.py
... RFCで登場する構造体の定義
pip install -r requirements.txt
サーバ側
python main_server.py
クライアント側
python main_client.py
単体テスト
python -m unittest discover tests "test_*.py"
OpenSSLローカルビルド
cd ~
mkdir -p local/download
cd local/download
curl -L https://github.com/openssl/openssl/archive/refs/tags/openssl-3.0.9.zip -O
file openssl-3.0.9.zip
unzip openssl-3.0.9.zip
cd openssl-openssl-3.0.9
./Configure --prefix=~/local/openssl --openssldir=~/local/ssl
make -j4
make install_sw install_ssldirs
サーバとして実行
~/local/openssl/bin/openssl s_server -accept 50007 \
-cert ./cert/server.crt -key ./cert/server.key -tls1_3 -state -debug
クライアントとして実行
~/local/openssl/bin/openssl s_client -connect 127.0.0.1:50007 -state -debug -tls1_3