#tls #detail #client #rustls-jls

no-std rustls-jls

Rustls-jls is forked rustls implementing jls protocol

1 unstable release

new 0.23.25-1.0.2 Apr 24, 2025

#281 in #detail

48 downloads per month

Apache-2.0 OR ISC OR MIT

1.5MB
33K SLoC

Rustls-jls

This is a fork of Rustls which implements the JLS protocol.

Implementation detail

  • Use JLS v3 protocol to authenticate clienthello and servehello
  • The authentication result is stored in jls_authed variable. Some(true) for a successful authentication and Some(false) for a failed authentication. None for not handshaking.
  • For a client, a successful authentication will skip certificates verification. A failed one will not and it degenerate to be a normal tls connection.
  • For a server, authentication result makes no difference except jls_authed variable
  • No port forward is implemented since rustls makes no IO operation. It's better to implement in tokio-rustls.

Example

client

see client.

RUST_LOG=debug cargo run --bin simplejlsclient

server

see server.

RUST_LOG=debug cargo run --bin jlsserver-mio -- --certs ./test-ca/ecdsa/end.cert --key ./test-ca/ecdsa/end.key --port 4443 echo

Dependencies

~7–31MB
~760K SLoC