agate

Simple gemini server for static files
git clone https://github.com/mbrubeck/agate.git
Log | Files | Refs | README

commit df41668b158a6344e0cbf57651877131e45e2b4f
parent 75cf6024b63bc1f990500c3412a18174318214e2
Author: Matt Brubeck <mbrubeck@limpet.net>
Date:   Thu,  7 Mar 2024 15:16:56 -0800

Use rustls via tokio-rustls re-export

Diffstat:
MCargo.lock | 1-
MCargo.toml | 3+--
Msrc/certificates.rs | 13+++++++------
Msrc/main.rs | 9++++++---
Mtests/tests.rs | 1+
5 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock @@ -33,7 +33,6 @@ dependencies = [ "once_cell", "percent-encoding", "rcgen", - "rustls 0.22.2", "tokio", "tokio-rustls 0.25.0", "url", diff --git a/Cargo.toml b/Cargo.toml @@ -22,8 +22,7 @@ mime_guess = "2.0" once_cell = "1.19" percent-encoding = "2.3" rcgen = { version = "0.12.1", default-features = false, features = ["ring"] } -rustls = "0.22.2" -tokio-rustls = "0.25.0" +tokio-rustls = { version = "0.25.0", default-features = false, features = ["logging", "ring", "tls12"] } tokio = { version = "1.36", features = ["fs", "io-util", "net", "rt-multi-thread", "sync"] } url = "2.5.0" diff --git a/src/certificates.rs b/src/certificates.rs @@ -1,16 +1,17 @@ use { - rustls::{ - crypto::ring::sign::any_supported_type, - pki_types::{self, CertificateDer, PrivateKeyDer}, - server::{ClientHello, ResolvesServerCert}, - sign::{CertifiedKey, SigningKey}, - }, std::{ ffi::OsStr, fmt::{Display, Formatter}, path::Path, sync::Arc, }, + tokio_rustls::rustls::{ + self, + crypto::ring::sign::any_supported_type, + pki_types::{self, CertificateDer, PrivateKeyDer}, + server::{ClientHello, ResolvesServerCert}, + sign::{CertifiedKey, SigningKey}, + }, }; /// A struct that holds all loaded certificates and the respective domain diff --git a/src/main.rs b/src/main.rs @@ -10,7 +10,6 @@ use { once_cell::sync::Lazy, percent_encoding::{percent_decode_str, percent_encode, AsciiSet, CONTROLS}, rcgen::{Certificate, CertificateParams, DnType}, - rustls::server::ServerConfig, std::{ borrow::Cow, error::Error, @@ -28,7 +27,11 @@ use { runtime::Runtime, sync::Mutex, }, - tokio_rustls::{server::TlsStream, TlsAcceptor}, + tokio_rustls::{ + rustls::{server::ServerConfig, version::TLS13}, + server::TlsStream, + TlsAcceptor, + }, url::{Host, Url}, }; @@ -408,7 +411,7 @@ static TLS: Lazy<TlsAcceptor> = Lazy::new(acceptor); fn acceptor() -> TlsAcceptor { let config = if ARGS.only_tls13 { - ServerConfig::builder_with_protocol_versions(&[&rustls::version::TLS13]) + ServerConfig::builder_with_protocol_versions(&[&TLS13]) } else { ServerConfig::builder() } diff --git a/tests/tests.rs b/tests/tests.rs @@ -6,6 +6,7 @@ use std::net::{SocketAddr, ToSocketAddrs}; use std::path::PathBuf; use std::process::{Command, Stdio}; use std::sync::atomic::{AtomicU16, Ordering}; +use tokio_rustls::rustls; use url::Url; static BINARY_PATH: &str = env!("CARGO_BIN_EXE_agate");