4 releases (1 stable)

1.3.1 Apr 12, 2026
0.23.36-1.3.1 Feb 16, 2026
0.23.25-1.2.1 Feb 8, 2026
0.23.25-1.0.2 Apr 24, 2025

#294 in Cryptography

Download history 55/week @ 2026-02-02 342/week @ 2026-02-09 404/week @ 2026-02-16 447/week @ 2026-02-23 1030/week @ 2026-03-02 1962/week @ 2026-03-09 2672/week @ 2026-03-16 3059/week @ 2026-03-23 436/week @ 2026-03-30 831/week @ 2026-04-06 1639/week @ 2026-04-13 2981/week @ 2026-04-20 4092/week @ 2026-04-27

9,580 downloads per month
Used in 3 crates

Apache-2.0 OR ISC OR MIT

1.5MB
35K 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–35MB
~794K SLoC