I've been working on alt-tls. I have a lot of commits that haven't been pushed, which will push once I finish and test all the algorithms.

Why? I want these things:

1) I want a pure-rust solution because that will compile everywhere that rust compiles without system library version issues, people filing bugs related to linking shit that I don't care about. A pure rust solution will be a bit slower but that is OK by me.

2) I want QUIC support

3) I want to hack the CertificateVerifier to simply verify that the public key is exactly as the library consumer expects it to be, rather than trusting CAs and DN namespaces.

4) I wanted a blake3 variant cipher suite (because IMHO blake3 is just better).

A while back I created alt-tls and did (3) cert verifier and (4) blake3 cipher suite. It also satisifed (1) pure rust.

But it didn't have (2) quic support.

Surveying all the providers I could find yielded this:

Provider Quic Support

rustls internal: ring Ring Yes

rustls internal: aws_lc AWS LC Yes

boring-rustls-provider Boring Yes

rustls-graviola Graviola No

rustls-openssl OpenSSL Yes

rustls-rustcrypto Rust Crypto No (barely started and stalled)

rustls-mbedtls-provider mbedtls No

rustls-symcrypt Microsoft SymCrypt No

rustls-wolfcrypt-provider wolfcrypt No

I currently have full quic support working and tested against RFC 9001 appendix test vectors for :

TLS13_CHACHA20_POLY1305_BLAKE3 (non-standard)

TLS13_CHACHA20_POLY1305_SHA256

What is left to complete is:

TLS13_AES_128_GCM_SHA256

TLS13_AES_256_GCM_SHA384

It is the smaller keysize of AES 128 that requires the next refactor.

It is working now. I probably should test end-to-end all cipher suites one at a time with a sample client and server. https//github.com/mikedilger/alt-tls

Reply to this note

Please Login to reply.

Discussion

No replies yet.