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

#328 in Cryptography

Download history 268/week @ 2026-02-04 280/week @ 2026-02-11 359/week @ 2026-02-18 429/week @ 2026-02-25 1498/week @ 2026-03-04 2483/week @ 2026-03-11 2994/week @ 2026-03-18 1748/week @ 2026-03-25 496/week @ 2026-04-01 1331/week @ 2026-04-08 1916/week @ 2026-04-15 4340/week @ 2026-04-22 1909/week @ 2026-04-29 2365/week @ 2026-05-06

10,644 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
~793K SLoC