add flag for only TLSv1.3

closes #12
This commit is contained in:
Johann150 2021-02-09 11:26:55 +01:00
parent 670ccaab73
commit 03325ba1a4
No known key found for this signature in database
GPG key ID: 9EE6577A2A06F8F1
2 changed files with 10 additions and 0 deletions

View file

@ -74,6 +74,7 @@ struct Args {
silent: bool,
serve_secret: bool,
log_ips: bool,
only_tls13: bool,
}
fn args() -> Result<Args> {
@ -117,6 +118,7 @@ fn args() -> Result<Args> {
);
opts.optflag("s", "silent", "Disable logging output");
opts.optflag("h", "help", "Print this help menu");
opts.optflag("3", "only-tls13", "Only use TLSv1.3 (default also allows TLSv1.2)");
opts.optflag(
"",
"serve-secret",
@ -153,6 +155,7 @@ fn args() -> Result<Args> {
silent: matches.opt_present("s"),
serve_secret: matches.opt_present("serve-secret"),
log_ips: matches.opt_present("log-ip"),
only_tls13: matches.opt_present("only-tls13"),
})
}
@ -175,6 +178,9 @@ fn acceptor() -> Result<TlsAcceptor> {
let mut keys = pkcs8_private_keys(&mut BufReader::new(key_file)).or(Err("bad key"))?;
let mut config = ServerConfig::new(NoClientAuth::new());
if ARGS.only_tls13 {
config.versions = vec![rustls::ProtocolVersion::TLSv1_3];
}
config.set_single_cert(certs, keys.remove(0))?;
Ok(TlsAcceptor::from(Arc::new(config)))
}