<-- back to the mailing list
Minimal client
Dave Gauer dave at ratfactor.com
Mon Jul 6 15:09:17 BST 2020
- - - - - - - - - - - - - - - - - - -
On 7/1/20 6:06 PM, Phil Leblanc wrote:
Hi all,
I am looking for a solution to build a _small_, _statically linked_,
minimal gemini client. My focus at the moment is to implement the
basic communication layer (including TLS!): just enough to send a
request to a gemini host and receive a response.
I have long been planning to do the same thing, but haven't even started. The plan was to write it in Rust and use this:
https://github.com/ctz/rustls
Copied from README.md:=================================================================## Current features
- TLS1.2 and TLS1.3.* ECDSA, Ed25519 or RSA server authentication by clients.* ECDSA, Ed25519 or RSA server authentication by servers.* Forward secrecy using ECDHE; with curve25519, nistp256 or nistp384 curves.* AES128-GCM and AES256-GCM bulk encryption, with safe nonces.* ChaCha20-Poly1305 bulk encryption ([RFC7905](https://tools.ietf.org/html/rfc7905)).* ALPN support.* SNI support.* Tunable MTU to make TLS messages match size of underlying transport.* Optional use of vectored IO to minimise system calls.* TLS1.2 session resumption.* TLS1.2 resumption via tickets (RFC5077).* TLS1.3 resumption via tickets or session storage.* TLS1.3 0-RTT data for clients.* Client authentication by clients.* Client authentication by servers.* Extended master secret support (RFC7627).* Exporters (RFC5705).* OCSP stapling by servers.* SCT stapling by servers.* SCT verification by clients.=================================================================
Statically linked, yes. But I have no idea if it would meet the _small_ goal!
-Dave